全国计算机等级考试C语言2级笔试题21.docx

上传人:b****7 文档编号:10346960 上传时间:2023-02-10 格式:DOCX 页数:20 大小:22.98KB
下载 相关 举报
全国计算机等级考试C语言2级笔试题21.docx_第1页
第1页 / 共20页
全国计算机等级考试C语言2级笔试题21.docx_第2页
第2页 / 共20页
全国计算机等级考试C语言2级笔试题21.docx_第3页
第3页 / 共20页
全国计算机等级考试C语言2级笔试题21.docx_第4页
第4页 / 共20页
全国计算机等级考试C语言2级笔试题21.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试C语言2级笔试题21.docx

《全国计算机等级考试C语言2级笔试题21.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试C语言2级笔试题21.docx(20页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试C语言2级笔试题21.docx

全国计算机等级考试C语言2级笔试题21

2007年4月全国等级考试题目

第25次(已经修改)

一、选择题

11.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。

这属于算法的()

C)确定性

(12-50),C语言综合单向选择题

12.以下叙述中错误的是()

D)后缀为.obj和.exe的二进制文件都可以直接运行

13.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()

B)连接符

14.以下叙述中错误的是()

C)使用三种基本结构构成的程序只能解决简单问题

15.对于一个正常运行的C程序,以下叙述中正确的是()

A)程序的执行总是从main函数开始,在main函数结束

16.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

以下所示的输入形式中正确的是(注:

口代表空格字符)()

D)10X<回车>20Y<回车>

17.若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()

C)sqrt(fabs(pow(n,x)+exp(X)))

18.设有定义:

intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()

A)k++

19.有以下程序,其中%u表示按无符号整数输出

main()

{

unsignedintx=0xFFFF;/*x的初值为+六进制数*/

printf("%u\n",x);

}

程序运行后的输出结果是()

B)65535

20.设变量x和y均已正确定义并赋值。

以下if语句中,在编译时将产生错误信息的是()

C)if(x>0)x-elsey++;

21.以下选项中,当x为大于1的奇数时,值为0的表达式是()

D)x%2==0

22.以下叙述中正确的是()

C)break语句只能用在循环体内和switch语句体内

23.有以下程序

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:

n+=1;k--;break;

default:

n=0;k--;

case2:

case4:

n+=2;k--;break;

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是()

A)235

24.有以下程序

main()

{inti,j;

for(i=1;i<4;i++)

{

for(j=i;j<4;j++)

printf("%d*%d=%d",i,j,i*j);

printf("\n");

}

}

程序运行后的输出结果是()

B)1*1=11*2=21*3=32*2=42*3=63*3=9

25.以下合法的字符型常量是()

A)'\x13'

26.在C语言中,函数返回值的类型最终取决于()

A)函数定义时在函数首部所说明的函数类型

27.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。

以下不能将变量c中的大写字母转换为对应小写字母的语句是()

D)c=('A'+c)%26-'a'

28.有以下函数

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s);

}

该函数的功能是

B)计算s所指字符串占用内存字节的个数

29.设已有定义:

floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是()

D)float*p=&x;

30.有以下程序

#include

main()

{intn,*p=NULL;

*p=&n;

printf("Inputn:

");

scanf("%d",&p);

printf("outputn:

");

printf("%d\n",p);

}

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()

A)intn,*p=NULL;

31.以下程序中函数f的功能是:

当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。

voidf(intb[],intn,intflag)

{inti,j,t;

for(i=0;i

for(j=i+1;j

if(flag?

b[i]>b[j]:

b[i]

{t=b[i];b[i]=b[j];b[j]=t;}

}

main()

{inta[10]={5,4,3,2,1,6,7,8,9,10},i;

f(&a[2],5,0);

f(a,5,1);

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

printf("%d,",a[i]);

}

程序运行后的输出结果是()

B)3,4,5,6,7,2,1,8,9,10,

32.有以下程序

voidf(intb[])

{inti;

for(i=2;i<6;i++)

b[i]*=2;

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10),i;

f(a);

for(i=0;i<10,i++)

printf("%d,",a[i]);

}

程序运行后的输出结果是()

B)1,2,6,8,10,12,7,8,9,10,

33.有以下程序

typedefstruct{intb,p;}A;

voidf(Ac)/*注意:

c是结构变量名*/

{intj;

c.b+=1;

c.p+=2;

}

main()

{inti;

Aa={1,2};

f(a);

printf("%d,%d\n",a.b,a.p);

}

程序运行后的输出结果是()

D)1,2

34.有以下程序

main()

{inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

for(i=0;<4:

i++)

for(j=0;j<3;j++)

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]

{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf("%d,",a[i][i]);

}

程序运行后的输出结果是()

A)1,6,5,7,

35.有以下程序

main()

{inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;

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

for(k=i+1;k<4;k++)

if(a[i][i]

{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}

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

printf("%d,",a[0][i]);

}

程序运行后的输出结果是()

B)6,4,3,2,

36.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)

(*q)++;

}

main()

{inta[5]={1,2,3,4,5},i;

f(a);

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

printf("%d,",a[i]);

}

程序运行后的输出结果是

B)6,2,3,4,5,

37.有以下程序

#include

main()

{charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";

strcpy(p+strlen(q),r);

strcat(p,q);

printf("%d%d\n",sizeof(p),strlen(p));

}

程序运行后的输出结果是()

A)209B)99C)2011D)1111

38.有以下程序

#include

main()

{charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";

strcat(p,r);

strcpy(p+strlen(q),q);

printf("%d\n",strlen(p));

}

程序运行后的输出结果是()

B)6

39.有以下程序

#include

voidf(charp[][10],intn)/*字符串从小到大排序*/

{chart[10];inti,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0)

{strcpy(t,p[i]);

strcpy(p[i],p[j]);

strcpy(p[j],t);

}

}

main()

{charp[5][10]={"abc","aabdfg:

,"abbd","dcdbe","cd"};

f(p,5);

printf("%d\n",strlen(p[0]));

}

程序运行后的输出结果是()

C)6

40.有以下程序

voidf(intn,int*r)

{intr1=0;

if(n%3==0)r1=n/3;

elseif(n%5==0)r1=n/5;

elsef(--n,&r1);

*r=r1;

}

main()

{intm=7,r;

f(m,&r);

printf("%d",r);

}

程序运行后的输出结果是()

A)2

41.有以下程序

main(intargc,char*argv[])

{intn=0,i;

for(i=1;i

n=n*10+*argv[i]-'0';

printf("%d\n",n);

}

编译连接后生成可执行文件tt.exe。

若运行时输入以下命令行tt12345678。

程序运行后的输出结果是()

D)136

42.有以下程序

inta=4;

intf(intn)

{intt=0;staticinta=5;

if(n%2)

{inta=6;t+=a++;}

else

{inta=7;t+=a++;}

returnt+a++;

}

main()

{ints=a,i=0;

for(;i<2;i++)s+=f(i);

printf("%d\n",s);

}

程序运行后的输出结果是()

B)28

43.有一个名为init.txt的文件,内容如下:

#defineHDY(A,B)A/B

#definePRINT(Y)printf("y=%d\n",Y)

有以下程序

#include"init.txt"

main()

{inta=1,b=2,c=3,d=4,k;

k=HDY(a+c,b+d);

PRINT(k);

}

下面针对该程序的叙述正确的是()

D)运行结果为y=6

44.有以下程序

main()

{

charch[]="uvwxyz",*pc;

pc=ch;

printf("%c\n",*(pc+5));

}

程序运行后的输出结果是()

A)z

45.有以下程序

structS{intn;inta[20];};

voidf(structS*p)

{inti,j,t;

for(i=0;in-1;i++)

for(j=i+1;jn;j++)

if(p->a[i]>p->a[j])

{t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}

}

main()

{inti;

structSs={10,{2,3,l,6,8,7,5,4,10,9}};

f(&s);

for(i=0;i

printf("%d,",s.a[i]);

}

程序运行后的输出结果是()

A)1,2,3,4,5,6,7,8,9,10,

46.有以下程序

structS{intn;inta[20];};

voidf(int*a,intn)

{inti;

for(i=0;i

}

main()

{inti;

structSs={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a,s.n);

for(i=0;i

printf("%d,",s.a[i]);

}

程序运行后的输出结果是()

A)2,4,3,9,12,12,11,11,18,9,

47.有以下程序段

typedefstructnode{intdata;structnode*next;}*NODE;

NODEp;

以下叙述中正确的是()

C)p是指向structnode结构变量的指针

48.有以下程序

main()

{

unsignedchara=2,b=4,c=5,d;

d=a|b;

d&=c;

printf("%d\n",d);

}

程序运行后的输出结果是()

B)4

49.有以下程序

#include

main()

{FILE*fp;

intk,n,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);

fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);

fclose(fp);

fp=fopen("d2.daf","r");

fscanf(fp,"%d%d",&k,&n);

printf("%d%d\n",k,n);

fclose(fp);

}

程序运行后的输出结果是()

D)123456

50.有以下程序

#include

main()

{FILE*fp;

inti,a[6]={1,2,3,4,5,6};

fp=fopen("d3.dat","w+b");

fwrite(a.sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);

/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp);

fclose(fp);

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

printf("%d,",a[i]);

}

程序运行后的输出结果是()

A)4,5,6,4,5,6,

二、填空题

6.执行以下程序后的输出结果是【6】。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

a=14

7.当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行【7】次。

#include

main()

{charch;

while((ch=getchar())=='0')prinft("#");

}

0

8.以下程序的运行结果是【8】。

intk=0;

voidfun(intm)

{m+=k;

k+=m;

printf("m=%dk=%d",m,k++);

}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

m=4k=4i=5k=5

9.以下程序的运行结果是【9】。

main()

{inta=2,b=7,c=5;

switch(a>0)

{case1:

switch(b<0)

{case1:

printf("@");break;

case2:

printf("!

");break;

}

case0:

switch(c==5)

{case0:

printf("*");break;

case1:

printf("#");break;

case2:

printf("$");break;

}

default:

printf("&");

}

printf("\n");

}

#&

10.以下程序的输出结果是【10】。

#include

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

9

11.已定义charch='$';inti=1,j;,执行j!

=ch&&i++以后,i的值为【11】。

1

12.以下程序的输出结果是【12】。

#include

main()

{chara[]={'\1','\2','\3','\4','\0'};

printf("%d%d\n",sizeof(a),strlen(a));

}

54

13.设有定义语句:

inta[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【13】。

0

14.以下程序的功能是:

求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。

请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for(【14】;i<10;i++)

a[i-1]=x[i]+【15】;

for(i=0;i<9;i++)printf("%d",a[i]);

printf("");

}

[14]i=1[15]x[i-1]

15.以下程序的功能是:

利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。

请填空。

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【16】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);

}

*pmax=*px

16.以下程序的输出结果是【17】。

intfun(int*x,intn)

{if(n==0)

returnx[0];

else

returnx[0]+fun(x+1,n-1);

}

main()

{inta[]={1,2,3,4,5,6,7};

printf("%d\n",fun(a,3));

}

10

17.以下程序的输出结果是【18】。

#include

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;

*s2=20;

m=*s1+*s2;

printf("%d\n",m);

}

40

18.设有说明

structDATE{intyear;intmonth;intday;};

请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:

【19】。

structDATEd={2006,10,1};

[解析]本题考查结构体变量初始化的问题。

正确的语句应为“structDATEd={2006,10,1};”。

19.设有定义:

FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。

fw=fopen("readme.txt",【20】);"a"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1