计算机等级历年真题(二级C语言)2011年05月01日计算机等级考试习题集-2-2010年秋季考试(真题汇总)一、选择题部分1.述一个算法可以有不同的方式,常见的有()。A.高级语言、自然语言和伪代码B.机器语言、汇编语言和高级语言C.汇编语言、高级语言和低级语言D.自然语言、流程图和伪代码2.下列四个运算符,按优先级别由高到底排列的是()A.!、%、=、==B.%、!、==、=C.!、=、%、==D.!、%、==、=3.若已定义:inti=5,m=1;则下列语句不会产生无限循环。A.do{m+=3;B,for(;i10;)}while(i==5);m+=3;C.while(i=1)D.for(;i0;i--)m+=3;m+=3;4.下列程序段的运行结果是()。Intarr[][4]={1,2,3,4,5,6,7,8,9,10,11,12};Printf(“%d\n”,arr[1][3]);A.3B.12C.8D.115.下列叙述正确的是()。A.函数的定义和调用都不允许嵌套B.函数的定义和调用都允许嵌套C.函数的定义允许嵌套,但函数的调用不允许嵌套D.函数的定义不允许嵌套,但函数的调用允许嵌套6.若已定义:inta[5]={1,2,3,4,5},*p=a;且p值未发生变化,下列不能表示a[1]地址的是()。A.a+1B.++pC.p+1D.a++7.若已定义:structstudent{intnum;floatscore;}stu[4];以下错误的语句是()。A.printf(“%d”,(*stu).num);B.*(stu)=*(stu+1);C.stu[0]-num=101;D.stu[0]=stu[1];8.下列对枚举类型的定义正确的是()。A.enuma{“A”,”B”,”C”};B.enuma{x=-2,y=1,z=3};计算机等级考试习题集-3-C.enuma={A,B,C};D.enuma={“A”,”B”,”C”};9.下列合法的浮点数的是()A.2E0.5B.65C.123D.E210.若已定义:doublex,y;则下列表达式不能正确计算(x-2)/3*y的是()A.y*(x-2)/3B.(x-2)*y*1/3C.y/3*(x-2)D.(1/3)*(x-2)*y11.下列当x的值在5至10之间为“假”,否则为“真”的逻辑表达式为()Ax=5&&x=10B!(5=x&&x=10)Cx=5&&x=10D!(5=x=10)12若已定义:charstr1[20]=”guangzhou”,str[20]=”2010”;能形成字符串“GUANGZHOU2010”的语句是()Astrcat(strupr(str1),str2);Bstrcpy(str2,strupr(str1));Cstrcpy(strupr(str1),str2);Dstrcat(str2,strupr(str1));13下列叙述正确的是()A为提高程序运行速度可在源程序中加入一些宏定义B一个C语言源程序只能有一条预处理命令C宏定义不占用程序运行时间,但与程序中的语句一样需要编程D宏定义中的宏名必须用大写字母表示14下列程序的运行结果是()voidfn(int*p,intn){intj;for(j=0;ji;j++)*(p+j)+=10;}voidmain(){inta[5]={1,2,3,4,5};inti;fn(a,5);for(i=0;i=5;i++)printf(“%d”,*(a+i);A.12345B.123415C.112345D.111213141515.下列不合格的字符常量的是()。A.‘\t’B.’\\’C.‘\n’D.“a”16.若已定义:intx=2,y;则执行语句y=x%2+(--x);后y的值是()。A3B.1C.0D.217.若已定义intk;下列()语句与其他三条语句不等价。A.if(k!=0)B.if(k==0)Printf(“yes!\n”);printf(“No!\n”);elseelse计算机等级考试习题集-4-printf(“No!\n”);printf(“Yes!\n”);C.if(k!=0)D.if(k)Printf(“Yes!\n”);printf(“Yes!\n”);elseelseprintf(”No!\n);printf(”No!\n”);18.下列程序段的运行结果是()inta[]={8,7,6,5,4,3,2,1},i,sum=0;for(i=0;i8;i++);if(i=3)sum+=a[i];printf(“%d\n”,sum);A.15B.0C.10D.1619.若已定义charstra[50],strb[50];能正确从键盘读入字符串的是()A.scanf(“%s%s”,stra[50],strb[50]);B.gets(strb,stra);C.getch(stra,strb);D.scanf(“%s%s”,stra,strb);20.下列程序的运行结果是()#defineK5voidmain(){inta=3,b=4;printf(“%d\n”,K*(a+b));}A.5B.20C.15D.3521.下列程序的运行结果是()。Voidmain();{charstr[]=“abcd“,*p=str;inti;while(*p)printf(“%c”,*(p++));}A.AbcB.abcdC.cdD.bcd22.若已定义:inta[3]={3,6,9},*p=a;则对数组元素a[1]错误引用的是()。A.*(a+1)B.*p+1C.*(&a[1])D.p[1]23.若已定义:FILE*fp;若要打开d盘的temp文件夹下的file11.txt文件,该文件既能读也能写,则正确的语句是()。A.fp=fopen(“d:\temp\file1.txt”,”rw”);B.fp=fopen(“d:\temp\file1.txt”,”rb”);C.fp=fopen(“d:\\temp\\file1.txt”,”rb”);D.fp=fopen(“d:\\temp\\file1.txt”,”rw”);24.下列是结构化程序设计应遵循的原则。A.根据需要可使用嵌套基本控制结构表示程序逻辑。计算机等级考试习题集-5-B.应使用顺序、选择、循环三种基本控制结构表示程序逻辑。C.选用的控制结构可有多个入口和一个出口。D.为提高程序效率,应尽量使用goto语句。25.若已知定义:intx;则逗号表达式x=5,3+x,x=x*2的值是()。A.10B.16C.15D.526.若已知定义:intx=2,y=3;则执行语句y=x+++(--y);后,y的值为()。A.6B.4C.5D.327.若已定义:intx=5,y=7;正确实现输出形式:5+7=12的语句是()。A.printf(“x+y=%d”,x+y);B.printf(“%d+%d=%d”,x,y,x+y);C.printf(“%d+%d=x+y”,x,y);D.printf(“x+y=x+y”);28.判断char型变量c1是否为小写字母的正确表达式为()。A.(‘a’=c1)&&(‘z’=c1)B(c1=a)&&(c1=’z’)C.(c1=’a’)&&(c1=’z’)D.’a’=c1=’z’29.下列()不能当作一条语句。A.if(k0);B.m=1,n=2,k=3;C.if(k==0)m=1;n=2;D.if(k0)m=1;elsen=2;30.循环语句的循环体中,continue语句的作用是()。A.结束本次循环,跳出循环体B.立即终止程序运行C.继续执行continue语句之后的循环体各语句D.结束本次循环31.下列程序段的运行结果是()。Inta[]={8,7,6,5,4,3,2,1},i,sum=0;For(i=0;i8;i++)If(i=3)Sum+=a[];ElseSum-=a[i];Printf(“%d\n”,sum);A.16B.10C.15D.032.下列不属于C语言数据类型的是()。A.双精度型B.复数类型C.长整型D.枚举类型33.若已定义:intx=2,y;则逗号表达式y=3,x+=x+(++y)%x的值是()。A.4B.2C.3D.534.若已定义:intx=2,y=3;则下列表达式值为假的是()A.x==(y=x)B.!x||!yC.x&&yD.xy||xy35.若已定义intk=4,s=10;则下列程序段的运行结果是()if(2*k9)s=k+5printf(“%d\n”,s+k);计算机等级考试习题集-6-A19B13C10D1436.若已定义:inta[8],k=2;无法正确引用数组a中元素的是()Aa[8-k]Ba[8+k]Ca[0]Da[8/k]37.若已定义charstra[50],strb[50];能正确从键盘读入字串的是()Ascanf(“%s%s”,stra[50],stra[50]);Bgets(stra,stra);Cgetch(stra,stra);Dscan(“%s%s”,stra,stra);38.下列程序段的运行结果是()。Inta[]={0,1,2,3,4,5,6,7,8,9},i=0,t;While(i=7){t=a[i];a[i]=a[i+2];a[i+2]=ti+=2;}for(i=0;i10;i++)Printf(“%d”,a[i]);A.2143658709B.1357924680C.2468013579D.012345678939.下列程序段的运行结果是()。Chars1[7]=”abcdef”,s2[4]=”123”;Strcpy(s1,s2)’Printf(“%s%c”,s1,s1[4]);AabcBabceC123Dabce40.二维数组元素在内存的存放顺序是()。A由用户自定义B由编译器决定C按列优先D按行优先41.以下程序段运行后,c的二进制是()。Inta=2,b=3,c=10;c=a|b;A00000001B00000010C01010000D0010100042.若定义;intx=11;doubley=3.5;则表达式y/2+x%2/2的值是()。A1.5B3.5C1.0D1.7543.若已定义:intx=2,y=4;则表达式(double)x/y+y%x的值是()。A、8B、2C、0.5D、2.544.下列程序段运行后m的值为()。Inti,j,m=0;For(i=1;i=3;j++)计算机等级考试习题集-7-For(j=2;j=4;j++)m=m+i+jA.45B.30C.33D.2745.对二维数组arr初始化正确的是()。A.intarr[2][]={1,2,3,4,5};B.intarr[2][3]={{1,2},{3,4}};C.intarr[2][3]={{1,2},{3,4},{0}};D.intarr[][]={{1},{3,4,5}};46.下列程序段中函数调用语句tnk((a,b),m+n);的实参值是()。Inta=1,b=2,m=3,n=4;Tnk((a,b),m+n);A.1和7B.3和7C.2和7D.2和347.若已定义:inta=5,*p1=&a;floatf=6.5,*p2=&f;则下列正确的赋值语句是()。A.f=*p1+*p2B.p2=p1C.p2=&aD.p1=&f48.下列程序段的运行结果是()。Uniondata{inta;charb;}data1;data1。b=`A`;data1。a++;printf(“%c\n”,data1.b);A.65B.AC.66D.B49.main()函数的位置()。A.可位于用户自定义函数之前,也可位于自定义函数之后B.必须位于用户自定义函数自后面C.必须位于程序文件的最前面D.必须位于用户自定义行数之前面50.要使用以下程序段给三个整变量x1,x2,x3分别赋值1,2,3,正确的数据输入格式是()