高三11月份月考C语言考试题
一、选择题:(30分)
1.在每一个C程序中都必须包含一个名为()的函数.
A.main
B. MAIN
C. name
D. function
2.以下叙述正确的是().
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号{和}只能作为函数体的定界符
C.构成C程序的基本单位是函数, 所有函数名都可以由用户命名
D.分号是C语句之间的分隔符, 不是语句的一部分
3.若有定义int a; 变量a占用内存的2个字节, 则a所能存储数据的最
小值是().
A.0
B. -32767
C. -32768
D. -65535
4.在下列4组八进制和十六进制数中, 全部正确的是().
A.123 089 0x23af 0xbd
B. 0a21 056 0xabc 0x789
C.010 052 0xdfa 0xff14
D. 0x123 0283 0xabc 0x25f
5. 设有定义”int x=8,y,z;”执行”y=z=x++; x=y==z;”后,变量x的值是()
A. 0
B. 1
C. 8
D. 9
6. 能正确表示关系3 A. x>3 and x<5 B. 3 C. X>3||X<5 D. x>3&&x<5 7. 下面表达式正确的是() A. a+b=5 B. 56=a11 C. 5.6+6.2%3.1 D. a=5,b=6,c=7 8. 已知a为整型变量,表达式a!=0真假情况不同的表达式是() A. a>0||a<0 B. a C. !a==0 D. !a 9. 下面程序的输出结果是() main() { int x=’\23’; printf(“%d\n”,--x); } A.19 B. 18 C. 23 D. 24 10. 以下运算符优先级别最低的是() A. ++ B. , C. ?: D. / 11. 下面程序如果在运行时输入18,18,那么b的值是() main() { int a,b; scanf(“%d,%o”,&a,&b); b+=a; printf(“%d”,b); } A. 36 B. 34 C. 输入错误,b的值不确定 D. 18 12. 有以下程序,执行后输出的结果是() main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d”,d); } A. 2 B. 无输出 C. 5 D. 有语法错误,编译不能通过 13. 执行下面程序段的输出结果是()。 int x=4, y=-55; if(x>0) if(y>0) printf(“AA”); else printf(“BB”); A. AA B. BB C. 无输出 D. 程序错误 14.以下程序的输出结果是()。 main() { if(2==3-1<=8!=4*3) printf(“true\n”); else printf(“false”); } A. true B. false C. T D. F 15.选择i正确的运行结果是() int i=10; switch(i) { case 9: i+=1; break; case 10: i+=1; break; case 11: i+=1; default: i+=1; } A.10 B. 11 C. 12 D. 13 二、填空题(30分) 1.设变量num和变量x的数据类型均为float, num的值为 2.5, 则执行 语句x=(int)num+3.2E-1;后, num的值为______,x为_______。 2.C语言规定: 在每一个字符串结尾加上个______,以便根据此判断是否 结束。 3.当a=6,x=6.8,b=4时,表达式x+a%7(int)x+8/3+b的值是 _____ 4.执行int x=4,y; y=x--+3; 语句后,变量x的值是, y 的值是。 5.在C语言中逻辑运算符的优先级算术运算符. 6.若有语句int i=-19,j=i%4; printf(“%d”,j); 则输出的结果是. 7.C语言规定了运算符的优先级和结合性, 其结合性分为和 . 8.在C语言中, 数据类型分为基本数据类型和,基本数据类 型包括整型, 和字符型3种. 9. 若有定义int i=10,j=0; 则执行完语句if(j=0) i++; else i--; 后i 的值为. 10. 分支语句if(x>=y)max=x; else max=y; 用含条件运算符的赋值语句表 示为. 11. 执行循环结构或switch结构中的语句能够立即退出该结构. 三、写出下面程序的运行结果(12分) 1. 下面程序在执行后,屏幕上显示。 main() { int a; float b; a=4; b=9.587; printf(“a=%d, b=%4.2f\n”,a,b); } 2. 有下面程序段,若输入5和2:结果为。 #include main() { int s,t,a,b; scanf(“%d,%d”,&a,&b); s=1; t=1; if(a>0) s=s+1; if(a>b) t=t+s; else if(a==b) t=5; else t=2*s; printf(“s=%d, t=%d\n”, s, t ); } 3. 下面程序的运行结果是。 main() { int I; for(i=1; i<=5;i++) { if(i%2) printf(“*”); else continue; printf(“#”); } printf(“$\n”); } 四、补全程序(20分) 1. 从键盘上输入一个正整数,求这个数的阶乘。 main() { int n,i1,p; Scanf(“%d”,&n); For( , i1<=n; i1++) ; printf(“n=%d,n!=%d\n”,n,p); } 2. 有以下程序段: s=1.0 for(k=1; k<=n; k++) s=s+1.0/(k*(k+1)); printf(“%f\n”, s); 使下面程序段的功能与上面完全等同。 s=0.0; k=0; do { s=s+d; d=1.0/(k*(k+1)); }while ; printf(“%f\n”,s); 五、编程题(8分) 1.键盘输入20个数,求它们的平方和。 答案 一.AACCB DDDBB BBBAB 二.1. 2.5 2.32 2.‘\0’ 3. 48.8 4. 3 7 5.低于 6. -3 7. 左结合右结合 8. 导出数据类型浮点型 9. 9 10.max=x>=y?x:y 11.break 三、1.a=4,b=9.59 2.s=2,t=3 3.*#*#*#$ 四、 1. i1=1,p=1 p=p*i 2.d=1.0; k++; k 五、main() { int i,n,s=0; for(i=1;i<=20;i++) {scanf(“%d”,&n);s=s+n*n;} printf(“s=%d\n”,s); }