《C语言程序设计》试题十二及答案.doc
C语言程序设计试题十二1一、 填空与选择1二、 读程序(结果写在试卷的右边)2三、 程序填空:(根据题意,将空缺的语句补上。)4四、改错:5五、编程:6C语言程序设计试题十二答案7C语言程序设计试题十二一、 填空与选择1 C语言从源程序的书写到上机运行输出结果要经过_四个步骤。2 C语言的表达式与语句的区别在于_。3 C语句_ (有、没有)输入、输出语句。4 结构化程序的编写有_三种程序结构。5 表达式10/3*9%10/2的值是_。6 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_。7 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是_。8 变量Y满足以下两条件中的任意一个:能被4整除,但不能被100整除;能被400整除。请用逻辑表达式表示所给条件。_9. 逻辑运算符“&&、|、 !”中的优先级是_10. C语言是由_基本单位组成的。 A过程 B.语句 C.函数 D.程序11.有如下语句: X+Y*Z>39 && X*Z|Y*Z是什么表达式_ A.算术表达式 B.逻辑表达式 C.关系表达式 D.字符表达式 12下面几种说法中哪个是正确的?_Aelse语句需与它前面的if语句配对使用;B. else语句需与前面最接近它的if语句配对使用;C. else语句需与前面最接近它,且没有和其它else语句配对的if语句配对;D.以上都正确。13有说明语句:char a =“this is a book”。请问该数组到底占了几个字节? A.11 B.12 C.14 D.1514设整型变量a为5,使b不为2的表达式是_ A. b=a/2 B. b=6-(-a) C. b=a%2 D.b=a>3?2:115设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_ A.0 B.2 C.-4 D. 416执行语句“x=(a=3,b=a-)”后,x,a,b的值依次为_ A. 3, 3, 2 B. 3,2,2 C.3,2,3 D.2,3,217如果X=5,执行语句X*=X+=X*3后,则X的值为_ A.100 B. 400 C. 450 D. 90018下列常量中哪个是不合法的_ A2e32.6 B. 0.2e-5 C. “basic” D. 0x4b0019下列标识符错误的是_ A. x1y B._123 C. 2ab D. _ab20. c语言中int型数-8在内存中的存储形式为_ A.11000 B. 01000 C. 01000 D. 10111二、 读程序(结果写在试卷的右边)1 写出下列程序段的输出结果:main()int x=5; int y=10;printf("%dn",x+); printf("%dn",+y); 2 下面程序的输出结果是什么?#include "stdio.h"main() int x=3; switch(x) case 1: case 2:printf("x<3n"); case 3:printf("x=3n"); case 4: case 5:printf("x>3n"); default:printf("x unknown"); 3根据源程序,写出相应的数学表达式#include “stdio.h”main() int x,y; scanf(“%d”,&x); if (x<0) y= -1; else if (x= = 0) y=0; else y=1;printf(“x=%d,y=%dn”,x,y); 4. 读出下列程序的输出结果: main() int a=1,b=1,c=1; printf(“%d,%d,%dn”,a,b,c) a+=b+=+c; printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a+,-b,+c); printf(“%d,%d,%dn”,a,b,c); 三、 程序填空:(根据题意,将空缺的语句补上。)1 下列程序的功能是计算圆的面积,将程序补充完整。#define PI = 3.14159main() float r,s; printf(“Enter a number r:”);_s=PI*r*r_; 2 该程序完成的功能是求1+2+3+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。#include "stdio.h"main() _i=1,sum=0; for(; i<=10;) sum+=i;_ printf("%dn",sum); 四、改错:求Fibonacci数列40个数。这个数列有如下特点:第1,2 两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n3)程序如下,请改正: main() long int f1,f2 int i; f1=f2=1; for (i=1, i<=20 , i- -); printf(“%12ld %12ld”,f1,f2); if (i%4=0) printf(“n”); f1=f1+f2 f2=f2+f1; 五、编程:1 给定一个正整数,判断它是否能同时被3、5、7整除。2计算分段函数: 3从键盘录入10个数到数组A,请将它们进行由小到大的排序(方法不限)。C语言程序设计试题十二答案一、 填空与选择1. 编辑、编译、连接、执行 2. “表达式”未尾加“;”号就成“语句”3. 没有 4. 顺序、分支、循环 5 3 6. 9 7. 3 8. y%4= =0 && y%100!=0 | y%400=0 9 ! &&| 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.C B C D C C C B A C A二、 读程序1. 5 2. X=3 4. 1,1,1 11 X>3 4,3,2 X unknow 4,2,35,2,33 三、 程序填空:(根据题意,将空缺的语句补上。) 1 下列程序的功能是计算圆的面积,将程序补充完整。#define PI = 3.14159main()float r,s; printf(“Enter a number r:”);_scanf(“%f”,&r);_s=PI*r*r_printf(“s=%f ”,_s); 2. int I , sum I+;四、 改错: main() long int f1,f2; int i; f1=f2=1; for (i=1;i<=20; i+); printf(“%12ld %12ld”,f1,f2); if (i%4=0) printf(“n”); f1=f1+f2; f2=f2+f1; 五、 编程:(略)1main() int a; scanf(“%d”,&a); if(a%3=0&&a%5=0&&a%7=0)printf(“%d”,a); 2#include<math.h>main() float x,y; scanf(“%f”,&x); if(x>20)y=x*x+3*x+2;if(x>=10&&x<20) y=sqrt(3*x)-2;if(x>10) y=1/x+fabs(x);printf(“%f”,y); 3 main() int a10=10,9,8,7,6,5,4,3,2,1; int b,c,d; for(b=0;b<9;b+) for(c=0;c<9-b;c+) if(ab>ac) b=ab;ab=ac;ac=d;for(b=0;b<9;b+)printf(“%d”,ab); bsp;