1、到国家计算机二级c语言历年真题及答案2012年3月全国计算机等级考试二级C语言真题(考试时间90分钟,满分100分)一、 选择题12、关于C语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码15、设有以下语句Char ch1,
2、ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A、A和B之间用逗号间隔 B、A和B之间不能有任何间隔符C、A和B之间可以用回车间隔 D、A和B之间用空格间隔16、以下选项中非法的字符常量是A、102 B、65 C、xff D、01917、有以下程序#include Main()Int A=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d, %d, %dn”,A,B,C)程序运行后输出的结果是A 0,4,5 B 4,4,5 C 4,4,4 D 0,0,018、设变量均已正确定义并且赋值
3、,以下与其他三组输出结构不同的一组语句是A、x+; printf(“%dn”,x); B、n=+x; printf(“%dn”,n);C、+x; printf(“%dn”,x); D、n=x+; printf(“%dn”,n);19、以下选项中,能表示逻辑值“假”的是A 1 B 0.000001 C 0 D 100.020、有以下程序#include Main() int a;Scanf(“%d”,&a);If(a+9) printf(“%dn”,a);Else printf(“%dn”,a-);程序运行时键盘输入9,则输出的结构是A、10 B 11 C 9 D 821、有以下程序#inclu
4、de Main()int s=0,n; For (n=0;n3;n+)switch(s) case 0;Case 1;s+=1;Case 2;s+=2;break;Case 3;s+3;Case 4;s+=4;printf(“%dn”,s);程序运行后的结果是A 1,2,4 B 1,3,6 C 3,10,14 D 3,6,1022、若k是int类型变量,且有以下for语句For(k=-1;k0;k+) printf(*n”);下面关于语句执行情况的叙述中正确的是A、循环体执行一次 B、循环体执行两次C、循环体一次也不执行 D、构成无限循环23、有以下程序#include Main()char
5、A,B,C;B=1;C=AFor(A=0;A6;A+)if(A%2) putchar(B+A);Else putchar(C+A);程序运行后输出的结果是A 1B3D5F B ABCDFE C A2C4E6 D 123456二、 填空题6、设变量a和b已定义为int类型,若要通过scanf(”a=%d,b=%d”,&a,&b);语句分别给a和b输入1和2,则正确的数据输入内容是( )。7、以下程序的输出结果是( )。#include mian() int a=37;a+=a%=9; printf(“%dn”,a);8、设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c=a+|b+;
6、语句后,变量b的值是( ).9、有以下程序段s=1.0;for(k=1,k=n;k+) s=s+1.0(k*(k+1);printf(“%fn”,s);请填空,使以下程序段的功能与上面的程序段完全相同。s=1.0; k=1;while( ) s=s+1.0(k*(k+1); k=k+1;printf(“%fn”,s);10、以下程序段的输出结果是( )#include mian() char a,b; for(a=0;ak2)&(k2=k2k1)后,k1和k2的值分别为( )。A)0和1 B)0和20 C)10和1 D)10和20(18)有以下程序 #include main() int a=
7、1,b=0; if(-a) b+; else if(a=0)b+=2: else b+=3: printf(dn,b); ) 程序运行后的输出结果是( )。A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是( )。A)if(a)printf(d-n,x); else printf(dn,y);B)if(a0)printf(dn,y); else printf(dn,x);C)if(a!=0)p由tf(dn,x); else printf(dn,y);D)if(a=0)printf(dn,x); else printf(dn,y);(20)有以下程序#include
8、main()int a=7;while(a-);printf(dn,a);)程序运行后的输出结果是( )。A)-1 B)0 C)1 D)7(21)以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)A)printf(cn,a-32); B)printf(dn,A);c)printf(cn,65); D)print-f(cn,B-1);二、填空题(每空2分,共30分)(6)若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a、b值的语句 【6】 。*a=10b=20*(7)以下程序运行后的输出结果是 【7】 。#includemain()int
9、 a=37;a=9;printf(dn,a);)(8)以下程序运行后的输出结果是 【8】 。#includemain()int i,j;for(i=6;i3;i-)j=i;printf(”ddn”,i,j); (10)以下程序运行后的输出结果是 【10】 。 #include main() chara; for(a=0;a0) switch(s) case1:printf(%d,s+5);case2:printf(%d,s+4); break;case3:printf(%d,s+3);default:printf(%d,s+1);break;scanf(%d,&s);运行时,若输入1 2 3
10、4 5 0,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i=0&si15) printf(%d,x-5);if(x10) printf(%d,x); if(x5) printf(%dn,x+5);若程序运行时从键盘输入12,则输出结果为 【7】 。(8)有以下程序(说明:字符0的ASCII码值为48) 09#includemain() char c1,c2;scanf(%d,&c1);c2=c1+9; printf(%c%cn,c1,c2); 若程序运行时从键盘输入48,则输出结果为 【8】 。(13)以
11、下程序运行后的输出结果是 【13】 。 13715#includemain() int i,n5=0;for(i=1;i=4;i+) ni=ni-1*2+1; printf(%d,ni); printf(n);2010 年9 月全国计算机等级考试二级笔试试卷(13)以下叙述中错误的是 A)C 程序在运行过程中所有计算都以二进制方式进行 B)C 程序在运行过程中所有计算都以十进制方式进行 C)所有C 程序都需要编译链接无误后才能进行 D)C 程序中整型变量只能存放整数,实型变量只能存放浮点数 (14)有以下定义:int a;long b;double x,y; 则以下选项中正确的表达式是 A)a
12、%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x (15)以下选项中能表示合法常量的是 A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠: D)字符串:”007” (16)表达式a+=a-=a=9 的值是 A)9 B)-9 C)18 D)0 (17)若变量已正确定义,在if(W)printf(“%dn”,k);中,以下不可替代W的是 A)ab+c B)ch=getchar() C)a=b+c D)a+ (18)有以下程序 #include main() int a=1,b=0; if(!a) b+; else if(a=0) if(a) b+=2;
13、 else b+=3; printf(“%dn”,b); 程序运行后的输出结果是 A)0 B)1 C)2 D)3 (19)若有定义语句int a,b; double x; 则下列选项中没有错误的是 A) switch (x%2) case 0: a+; break;case 1: b+; break; default: a+; b+; B) switch (int)x/2.0) case 0: a+; break; case 1: b+; break; default : a+; b+; C) switch(int)x%2) case 0: a+; break;case 1: b+; brea
14、k; default : a+; b+; D)switch(int)(x)%2) case 0.0: a+; break; case 1.0: b+; break; default : a+; b+; (20)有以下程序 #include main() int a=1,b=2; while(a0) switch(s) case1:printf(%d,s+5);case2:printf(%d,s+4); break;case3:printf(%d,s+3);default:printf(%d,s+1);break;scanf(%d,&s);运行时,若输入1 2 3 4 5 0,则输出结果是A)6
15、566456 B)66656 C)66666 D)6666656(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+) printf(*n);下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#include main() char b,c; int i;b=a; c=A;for(i=0;i15) printf(%d,x-5);if(x10) printf(%d,x);if(x5) printf(%dn,x+5);若程序运行时从键盘输入12,则输出结果为 【7】 。(8)有以下程序(说明:字符0的ASCII码值为48)#include main() char c1,c2;scanf(%d,&c1);c2=c1+9;printf(%c%cn,c1,c2);若程序运行时从键盘输入48,则输出结果为 【8】 。(10)以下程序运行后的输出结果是 【10】 。#include main() int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(%d %dn,x,y);2011年3 11-15 ADAAA16-20 ADCAD 21-25 BDBCD 26.CD二,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1