云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 湖南省07-12年高考C语言真题

湖南省07-12年高考C语言真题

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 22:45:43

long s=0,t=1;

for(j=0;j

for(j=1;j

return(s); } 2)函数fun()的功能是将单向链表结点数据域为偶数的值累加起来,并作为函数的返回值。 #include typedef struct aa {

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 main() {

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 main()

{ int a=3,b=4;

a%=b+=a+=(a+b);

printf(\%d,%d\,a,b);

}

运行结果是______ (2) #include main()

{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 main()

{ 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 main()

{ 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 main()

{ int x=3,y=7,z=6;

int a,b;

a=x

}

(2)下面程序接受键盘上的输入,直到按回车键为止,然后将输入的字符串输出,输出时如果原输入字符是英文大写字母则转成小写字母输出,如果是小写字母则转成大写字母输出,如果有连续的一个以上的空格时只输出一个空格。 #include main()

{ 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 L2 define N2 L3 struct Student L4 {

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->datadata){

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

搜索更多关于: 湖南省07-12年高考C语言真题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

long s=0,t=1; for(j=0;jdata%2==0) sum+=p->data; p++; } return sum; }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com