当前位置:首页 > 湖南省07-12年高考C语言真题
long s=0,t=1;
for(j=0;j for(j=1;j return(s); } 2)函数fun()的功能是将单向链表结点数据域为偶数的值累加起来,并作为函数的返回值。 #include int data; struct aa *next; }NODE; int fun(NODE *h) {int sum=0; NODE *p; p=0; while(p) { if(p->data%2==0) sum+=p->data; p++; } return sum; } 六、 程序设计题(15*3=45) 58、已知abc+cba=1333,其中a,b,c均为互不相同的一位数,例如617+716=1333,编程求所有符合条件的a,b,c,并输出。 59、编写函数,对从键盘输入n个字符串从大到小输出。 60、从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。 选考题(共2小题,每题15分,共30分) 63、以下程序的功能是反向输出一个链表。 #include \#include \struct list { int data; struct list *next; }; typedef struct list node; typedef node *link; void main() { ____________________; int num,i; tail=(_____________)malloc(sizeof(node)); tail->next=NULL; ptr=tail; printf(\ for(i=0;i<=4;i++) { scanf(\ ptr->data=num; head=(link)malloc(sizeof(node)); head->next=ptr; ptr=head; } ptr=_____________; while(ptr!=NULL) { printf(\ ptr=ptr->next; }} 64、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四 位双平方数”。例如:由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。求所有“四位双平方数”的个数。 9 2012年对口高考试题 20.以下正确的C语言自定义标识符是 A.int B.a.3 C._7c D.5d_ 21.已知i=3,执行j=i++后,i和j的值分别为 A.i=4 -2 B.i=4 j=3 C.i=3 j=3 D.i=3 j=2 22.C语言中,以下语句能跳过循环体中未执行的语句,接着执行本循环下一次迭代的语 句是 A.空语句 B.break语句 C.return语句 D.continue语句 31.30人参观博物馆共花50美元,其中成年男子门票为3美元/人,成年女子2美元/人,小孩1美元/人。编程输出成年男子、成年女子和小孩人数的所有组合。 题目分析如下: 设x,y,z分别代表成年男子、成年女子和小孩人数。按题目要求,可得下面方程: x+y+z=30 (1) 3x+2y+z=50 (2) 用程序求此不定方程的非负整数解,可先通过(2)-(1)式得: 2x+y=20 (3) 由(3)式可知,x变化范围是 ① 根据以上分析编写程序如下: #include int x,y,z; /*x,y,z分别代表成年男子、成年女子、小孩人数*/ printf(\ Women Chlidren\\n\; for(x=0; ② ;x++) {_______③_______; /*按照(3)式根据x求y*/ _______④_______; /*由(1)式求得z*/ if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/ printf(\%d %d %d\n\; } } 四、程序分析题(本大题共3小题,共75分) 33.阅读程序,写出运行结果(每空5分,共25分) (1) #include { int a=3,b=4; a%=b+=a+=(a+b); printf(\%d,%d\,a,b); } 运行结果是______ (2) #include {int x=2,y=7,z=5; switch(x>2){ case 1:switch(y>0){ case 1:printf(\;break; case 2:printf(\;break; } case 0:switch(z==5){ case 0:printf(\;break; case 1:printf(\;break; default:printf(\;break; } default:printf(\; 10 } } 运行结果是______ (3) #include { int a=8,y=0; do{ a+=2: y+=a; if(y>30) break; }while(a=10); printf(\%d y=%d\n\,a,y); } 运行结果是______ (4) #include func(int a,int b) { return a=a+b,a%b; } main() { int x=9,y=7,z=3,rels; rels=func(func(x,y),z); printf(\%d\\n\,l< 运行结果是______ (5) #include { char ch[2][5]={\,\,*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=1;j<=3;j+=2) s=10*s+p[i][j]-'0'; printf(\%d\,s); } 运行结果是______ 34.程序填空。按照题目要求,将正确内容填入答题卡相应位置,使程序完整(每空5分, 共25分) (1)下面程序输出x,y,z三个数中的最大值。 #include { int x=3,y=7,z=6; int a,b; a=x } (2)下面程序接受键盘上的输入,直到按回车键为止,然后将输入的字符串输出,输出时如果原输入字符是英文大写字母则转成小写字母输出,如果是小写字母则转成大写字母输出,如果有连续的一个以上的空格时只输出一个空格。 #include { char cx,pre='\\0'; while( ③ !='\\n') { if(cx!=' ') if(cx>='a'&&cx<='z') putchar(cx-32); else if(cx<'z'&&cx>='A') _____④_____ ; else putchar(cx); else if(pre!=' ') putchar(cx); ____⑤_____; }; } 35.阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误所在的行号,并给出该 L2 main() L3 { L4 char *array[]={\,\,\,\; L5 char (**pt)[] ; L6 int j; L7 pt=array+3; L8 for(j=3;j>=0;j--) L9 printf(\%s \,*(pt)[j]); L10 } 五、程序设计题(本大题25分,每空5分) 36.Merge函数用于将两个升序的链表head1和head2合并成一个链表,并保持合并后链表依然升序。排序的依据为结构体类型Node中的data成员,合并中不得删除节点。下面行修改后的程序代码。(每空5分,共25分) (1)以下程序用于输入两个学生的姓名和成绩,然后输出这两个学生的平均成绩, 运行结果如图7所示。程序中存在3处错误。 put scores of student1 name:Lily score:05 input scores of student2 name:Lucy score:09 avg score is : 07.0 图 7 Ll #include L5 char name[4]; L6 float score; L7 }; L8 main() L9 { L10 struct Student stu[N]; L11 int i=0; L12 for(;i (2)以下程序将数组中元素逆序输出,运行结果如图8所示。程序中存在2处错误。 dd cc bb aa 图8 L1 #include 给出Merge函数的主体框架,在空出的五个位置补充该主体框架缺失的代码段。注意:不能定义新的变量,可不用已定义的某些变量。 typedef struct Node { int data; struct Node *next; }Node; Node *Merge(Node *head1,Node *head2) { if ( head1==NULL) return head2; if(head2==NULL) return headl; Node *head=NULL;//head指针用于指向合并后链表的头结点 Node *pl=NULL; Node *p2=NULL; if(headl->data head=headl; ______①______ p2=head2; }else{ head=head2; ______②______ pl=headl; } } Node *pcurrent=head; while(p1!=NULL&&p2!=NULL) { if(pl->data<=p2->data){ pcurrent->next=p1; ______③______ p1=pl->next; }else{ pcurrent->next=p2; ______④______ p2=p2->next; } } if(pl!=NULL) ______⑤______ if(p2!=NULL) pcurrent->next=p2; return head; } 11
共分享92篇相关文档