1、全国计算机等级二级C语言模拟试题及答案2011年全国计算机等级二级C语言模拟试题及答案一、单项选择题(共30分,每题1分) 1在PC机中,n在内存占用的字节数是() A1B2C3D4 2字符串“ABC”在内存占用的字节数是() A3B4C6D8 3在C语言中,合法的长整型常数是() A0LB4962710C0.054838743D2.1869e10 4执行语句“x=(a=3,b=a-)”后,x,a,b的值依次是() A3,3,2B3,2,2C3,2,3D2,3,2 5设有语句inta=3;,则执行了语句a+=a-=a*a后,变量a的值是() A3B0C9D-12 6设intk=32767;执行
2、k=k+1;后k值为() A32768B-32768C0D-1 7下列正确的标识符是() Ahot_doBa+bCtest!D%y 8设inta=5,使b不为2的表达式是() Ab=6-(-a)Bb=a%2Cb=a/2Db=a3?2:1 9执行x=(6*7%8+9)/5;后,x的值为() A1B2C3D4 10执行语句x=(a=3,b=a-)后,x,a,b的值依次为() A3,2,3B2,3,2C3,3,2D3,2,2 11设a=-3;执行(a0)?a:-a;后,a的值为() A3B1C0D-3 12设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值为() A7B8C9D2 13
3、下面正确的字符常量是() A”c”BCWD. 14若有代数式3ae/bc,则不正确的c语言表达式是() Aa/b/c*e*3B3*a*e/b/cC3*a*e/b*cDa*e/c/c*3 15在C语言中,要求运算数必须是整型的运算符是() A/B+C!=D% 16若有说明语句:charc=72;则变量c() A包含1个字符B包含2个字符 C包含3个字符D说明不合法,c值不确定 17sizeof(float)是() A一个双精度型表达式B一个整型表达式 C一种函数调用D一个不合法的表达式 18设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型是() AintBfolatC
4、doubleD不确定 19若有定义inta10,*p=a;,则p+5表示() A元素a5的地址B元素a5的值 C元素a6的地址D元素a6的值 20以下与int*q5;等价的定义语句是() Aintq5;Bint*qCint(q5)Dint(*q)5 21若有定义inta5,*p=a;则对a数组元素地址的正确引用是() AP+5B*a+1C&a+1D&a0 22凡是函数中未指定存储类别的局部变量,其隐含的存储类别是() AautoBstaticCexternDregister 23若用数组名作为函数调用的实参,传递给形参的是() A数组的首地址B数组第一个元素的值 C数组中全部元素的值D数组元素
5、的个数 24C语言允许函数值类型缺省定义,此时该函数值隐含的类型是() AfloatBintClongDdouble 25以下对二维数组a的正确说明是() Ainta3Bfloata(3,4) Cdoublea14Dfloata(3)(4) 26若有说明inta34;则对a数组元素的正确引用是(A) Aa24Ba1,3Ca1+10Da(2)(2) 26语句while(!E);中的表达式!E等价于() AE=0BE!=1CE!=0DE=1 27C语言中while和dowhile循环的主要区别是() Adowhile的循环体至少无条件执行一次 BWhile的循环控制条件比dowhile的循环控制条
6、件严格 Cdowhile允许从外部转到循环体内 Ddowhile循环体不能是复合语句28为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定:else子句总与()配对 A缩排位置相同的ifB其之前最近的if C其之后最近的ifD同一行上的if 29判断char型变量ch是否为大写字母的正确表达式是() AA=ch=A)&(ch=A)&(ch=ZD(A=ch) 30以下能正确定义整型变量a、b、c并为其赋初值5的语句是() Ainta=b=c=5;Binta,c,c=5; Ca=5,b=5,c=5;Da=b=c=5;二、填空(20分,每空1分) 1C语言中的实型变量分为两种类型,它们是(
7、)和()。 2C语言中的标识符只能由三种字符组成,它们是()、()和()。 3若有定义:charc=010;则变量c中包含的字符个数是()。 4C语言提供的三种逻辑运算符是()、()、()。 5设y为int型变量,请写出描述“y是奇数”的表达式()。 6设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式()。 7在C语言中,二维数组元素在内存中的存放顺序是()。 8若有定义:doublex35;则x数组中行下标的下限为(),列小标的上限为()。9若有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是(),a22得到的初值是()。10若自定义函
8、数要求返回一个值,则应在该函数体中有一条()语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符()。11函数中的形参和调用时的实参都是数组名时,传递方式为(),都是变量时,传递方式为()。 三、读程序(30分) 1main() inta=2,b=3,c; c=a; if(ab)c=1; elseif(a=b)c=0; elsec=-1; printf(“%dn”,c);运行结果: 2main() inta=2,b=7,c=5; switch(a0) case1:swithch(b0) case1:printf(“”);break; case2:printf(“!”);bre
9、ak; case0:switch(c=5) case0:printf(“*”);break; case1:printf(“#”),break; default:printf(“#”);break; default:printf(“&”);运行结果: printf(“n”); 3#include main() inti; for(i=1;i=5;i+) switch(i%5) case0:printf(“*”);break; case1:printf(“#”);break; default:printf(“n”); case2:printf(“&”);运行结果: 4main() inti,b,k
10、=0; for(i=1;i=0)k+; 运行结果: printf(“%d,%d”,k,b); 5.#include main() charch7=“12ab56”; inti,s=0; for(i=0;chi=0&chi=9;i+=2) s=s*10+chi-0;运行结果: printf(“%dn”,s); 6.main() inta=2,i; for(i=0;i3;i+) printf(“M”,f(a); f(inta) intb=0;staticintc=3; b+;c+;运行结果: return(a+b+c); 四、编写程序(20分) 1从键盘输入的10个整数中,找出第一个能被7整除的数
11、。若找到,打印此数后退出循环;若未找到,打印“notexist”。 2已有变量定义和函数调用语句:intx=57;isprime(x);函数isprime()用来判断一个整数a是否是素数,若是素数,函数返回1,否则返回0。请编写isprime函数。 insprime(inta) ;参考答案一、 单项选择题(共30分,每题1分)1A2B3A 4. C 5. D 6. B 7. A 8. B 9. B 10. A 11. D 12. A 13. C 14. C 15. D 16. A 17. B 18. C 19. A 20. D 21. D 22. A 23. A 24. B 25. C 26.
12、 A 27. A 28. B 29. C 30. A二、 填空(20分,每空1分)1 单精度,双精度 2 数字、下划线、英文字母3 1个4 与&、或|、非!5 y%2!=06 xZ|YZ7 行列8 0,49 0,810return,void11地址传送,值传送三、 读程序(30分)1-1 2&3#& *48,-2 51 6. 7 8 9四、 编写程序(20分)1#includemain()int i,a;for (i=1;i10) printf (“not exist”);2insprime(int a) int i; for (i=2;i=a-1;i+) if (i%2= =0)return(0); =0)return(0); return(1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1