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

2026/4/27 14:48:45

main()

{ int i,sum=0; for(i=100;i>=5;i--) { if ( )

{ sum=i+i-2;

} }

printf(\%d\\n\,sum); }

32、程序改错,不得增行或删行。以下每个程序中均有两处错误,请将错误处的行号及正确语句填入答题卡相应位置中。(每小题10分,共20分)

(1)以下程序的功能是:从一个整数队列中找出值最大的数,若有多个则取最先得到的那一个。 L1 #include L2 int *findMax(int a[],int n) L3 { L4 int i,j,max;

L5 for(i=1,j=0,max=a[0];imax) L7 { j=i; L8 max=a[i];}

L9 }

L10

return *(a+j);}

L11 main() L12 { L13 int i,a[50]

L14 printf(\enter array: \); L15 for(i=0;i<50;i++) L16

scanf(\%d\,&a[i]);

L17 printf(\%d\,findMax(a,50));

L18 }

(2)以下程序的功能是:读入一个字符串(长度<80),将该字符串中的所有字符按ASCII码降序排序后输出。 L1 #include L2 #inclued L3 void fun(char t[]) L4 { char c; L5 int i,j

L6 for(i=0;i

for(j=i+1;j

L8 if(t[i]

L9 { L10 c=t[j] L11 t[j]=t[i++] L12 t[i]=c; L13

}}

L14 main() L15 { char s[81];

L16 printf(\\\nPlease enter a character string: \) L17

gets(s);

L18 printf(\\\n\\nBefore sorting:\\n %s\,s); L19 fun(s);

L20

printf(\\\nAfter sorting decendingly:\\n\ %s,s);}

六、程序设计题(本大题共1题,共15分)

33、某学校操场上有一些学生,老师想知道有多少人,

便让学生排队报数:按从1到5报,最后一名学生报的数为1;按从1到6报,最后一名学生报的数为5;按从1到7报,最后一名学生报的数为4;最后再按从1到11报,最后一名学生报的数为10。编写程序求操场上共有多少学生。

选考题第二组 程序方向

36、以下程序的功能是:输入某公司50名职员的工号、姓名和地址并存入名为“company.txt”的磁盘文件。请将正确的内容填入答题卡相应位置中,使程序完整(每空5分,共15分) struct employee { int empid;

char empname[10]

char empadd[30]

} emp[50] save() {

; int i;

if((fp=fopen(\company.txt\,\wb\))==NULL)

5

{ printf(\cannot open file\\n\);return; } for(i=0;i<50;i++)

{ if(fwrite( )!=1) } main() {

int i;

for(i=0;i<50;i++)

scanf(\%d,%s,%s\, ,emp[i].empname,emp[i].empadd);save();}

37、将自然数1~100按顺时针围成一圈,首先取出1,然后按顺时针方向以步长30取数,(已取出的数还再参加计数),直到所有的数取完为止。编程求最后一个取出的数是多少?(共15分)

printf(\file write error\\n\);

湖南省2010年

一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共20小题,每小题5分,共100分) 17、下列不是C语言合法标识符的是( )

A、_124 B、124abc C、sum124 D、a_124 18、若有如图1所示存储结构,且变量定义为struct node{int data;struct node* next;}*p,*q,*r,

若要实现图2所示的存储结构,可选用的赋值语句是( )

{

int n=5;

int s=CUBE(++n); printf(“%”,s);

}

(3)#include void fun(int a,int* b) { a=*b*2; *b=a*5; }

main()

{ int x=10, *y; y=&x; fun(x,y);

printf(“%d,%d”,x,*y); }

(4)#include void fun(int *a)

{ *a=*(a-1)+*(a+1); } main()

{ int i=0,s=0,arr[5]={1,3,5,7,9}; fun(arr+2); for(;i<5;i++) s+=arr[i]; printf(“%d”,s); }

40、程序填空。请按题目要求,将正确的内容填入答题卡相应位置中,使程序完整,(每空5分,共30分)

(1)下列函数rtrim_str实现的是删除字符串str尾部的所有空格。

char* rtrim_str(char* str)

{ int n= ① ; if(n<1) return 0; while(n>0)

{ if(*(str+n)!=‵‵)

A、p=r; B、p=q- >next;

C、p- >next=q; D、p- >next=q- >next; 五、程序分析题(本大题共3小题,共60分) 39、阅读程序,写出运行结果。(每小题5分)

(1)#include main() {

double x,y;

printf(\%.2f\,(x=5,y=x+3/2)); }

(2)#include

#define CUBE(x) (x*x*x) main()

6

{

② ; break; } else

③ ; }

return str;

}

(2)某超市推行会员优惠购物,其中VIP会员八八折,金牌员九折,银牌会员九三折,普通会员九六折,非会员不打折。以下程序实现了超市购物的结算,其中非会员、普通会员、银牌会员、金牌会员、VIP会员分别用0,1,2,3,4表示。

# include

double compute(int n,int grade) {

int amount,i;

doublesum,price,discount[5]={ ④ }; sum=0,0;

for(i=0;i

printf(\请输入商品单价和数量:\\ n\); scanf(\

/*price:商品单价;amount:商品数量;*/

七、选考题(考生可根据自己的专业方向,从三组题中任选

一组,多选则只计前一组的成绩。每组2小题,每小题20分,共40分)

程序设计方向

45、设文件studs.dat中存放着学生的基本信息,基本

信息由以下结构体来描述: struct student {

long int num; /* 学号*/ sum+=price*amount; }

return ⑤ ;} main()

{ int n,grade; /*n;商品种数;grade;会员等级*/

printf(“请输入商品种数和会员等级:\\n”); scanf(\%d%d\,&n,&grade);

printf(\%2lf\\n\, ⑥ ); }

41、以下程序的功能是:任意输入一个小于256的正整数,将其转换成二进制数并输出。程序中有两处错误,请将错误处的行号及正确语句填入答题卡相应位置中,不得增行或删行。(每处错误5分,共10分) L1 main() L2 {

L3 int x,i=0,j=0 L4 int result[8];

L5 printf(\请输入一个小于256的正整数:\\n\); L6 sanf(\%d\,&x) L7 do{

L8 result[i]=x%2; L9 i++; L10 x=x%2; L11 }while(x>=1);

L12 for(j=i-1;j>=0;j++)

L13 printf(\%d\,result[j]); L14 printf(\\\n\); L15 } 六、程序设计题(本大题12分)

42、在全国青年歌手大奖赛中,有20个评委为参赛选手打分。分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余18个分数的平均值。请编写程序实现,输入20个评委评分,求出选手最后得分。

char name[20]; /* 姓名*/ char major[25];}; /* 专业*/

下列程序的功能是:输入要读取的学生人数,利用malloc动态分配内存来存储从文件中读取的学生信息(以方便进一步处理),并输出读取的学生的学号,姓名,专业。请将正确的内容填入答题卡相应位置中,使程序完整(每空5分,共20分) #include #include struct student { long int num; char name[20]; char major[25];}; FILE *fp; main()

{ struct student st,*pst; int i,num,realnum;

printf(“请输入读取的学生数:”); scanf(\%d\,&num);

pst=(struct student*)malloc( ① ); if(!pst) return;

fp=fopen(\studs.dat\,\rb\); if(NULL==fp)

{ ② ;return; } realnum=0;

printf(\%s\\t%s\\t%s\\t%s\\n\,\number\,

\name\,\major\ ));

/*文件包含的学生数量可能少于输入的人数 */ for(i=0;i< ③ ;i++) { fread(pst+i,sizeof(struct student),l,fp); realnum++;

④ ; printf(\%d\\t%ld\\t%s\\t%s\\n\,realnum,

st.nu m,st.name,st.major);

}

free(pst);fclose(fp); }

46、编写程序,输入5行5列整数方阵,计算并输出该方阵两条对角线上各元素的平方和。(共20分)

7

湖南省2011年普通高等学校对口招生考试

29、若有定义语句:int a[2][3],*p[3];,则以下语句正确的是( ) A、p=a; B、p[0]=a; C、p[0]=&a[1][2]; D、p[1]=&a; 30、有以下程序段: typedef struct NODE {int num;struct NODE *next; }OLD;

以下叙述中正确的是_____

A、以上的说明形式非法 B、NODE 是一个结构体类型 C、OLD是一个结构体类型 D、OLD是一个结构体变量 for(k=0;k<5;k++) printf(\%s\\n\,qstr[k]); }

3)有以下程序:

#include

main(int argc,char *argv[]) { int i,len=0;

for(i=1;i

经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abcd efg h3 k44 执行后输出的结果是

45、以下选项中属于字符常量的是( )

A、’C’ B、’\\018’ C、’\\xCC’ D、’\\072’ 五、程序分析题(35分)

55、分析程序运行结果(3*5`=15) 1)main()

{int a=2,b=7,c=5; switch(a>0)

{ case 1:switch(b<0)

{case 1:printf(\@\);break; case 2:pritnf(\!\);break; }

case 0:switch(c==5)

{case 0:printf(\*\);break; case 1:printf(\#\);break; case 2:printf(\$\);break; }

default:printf(\&\);

}

printf(\\\n\); }

2)若有以下输入,则下面程序的运行结果是

basic<回车> fortran<回车> pascal<回车> c++<回车> java<回车>

#include main() { int j,k;

char *qstr[5],str[5][10],*change; for(k=0;k<5;k++) qstr[k]=str[k];

printf(\enter 5 strings(1 string on each line)\\n\);

for(k=0;k<5;k++) scanf(“%s”,qstr[k]); for(k=0;k<5;k++) { for(j=k+1;j<5;j++)

{ if(strcmp(*(qstr+k),*(qstr+j))>0) { change=*(qstr+k); *(qstr+k)=*(qstr+j); *(qstr+j)=change; } } }

printf(\The sorted strings are:\\n\);

56、程序填空(10)

1)函数min()的功能:在带头结点的单链表中查找数据域中值最小的结点。

#include struct node {int data;

struct node *next; };

int min(struct node *first) { struct node *p;int m;

p=first;m=p->data;p=p->next;

for(;________①___;p=___②______) if(p->datadata; return m; }

2)设有5个学生,每个学生考4门课,以下程序能检查这些学生有无考试不及格的课程。若某一学生有一门或一门以上课程不及格,就输出该学生的序号(序号从0开始)和其全部课程成绩。请填空:

main()

{int score[5][4]={{62,87,67,95},{95,85,98,73}, {66,92,81,69},{78,56,90,99},{60,79,82,89}};

③ ; int j,k,flag; p=score;

for(j=0;j<5;j++) {flag=0;

for(k=0;k<4;k++)

if( ④ ) flag=1; if(flag==1)

{printf(\No.%d is fail,scores are:\\n\,j); for(k=0;k<4;k++)

printf(\]\, ⑤ ); printf(\\\n\); } } }

57、程序改错(10)

1)以下函数的功能是:求s=aa??aa-??-aaa-aa-a(此处aa??aa表示n个a,a和n的值在1~9之间)。例如a=3,n=6,则以上表达式为a=333333-33333-3333-333-33-3。其值是296298。

#include long fun(int a,int n) { int j;

8


湖南省07-12年高考C语言真题.doc 将本文的Word文档下载到电脑
搜索更多关于: 湖南省07-12年高考C语言真题 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219