考试课程 计算机应用基础与程 成序设计(C语言)1 考试日期 2010年1月 日 绩 课程号 教师号 任课教师姓名 考生姓名 学号 年专级 业 说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。
试题一 判断题 (共10分) (用‘√’或‘×’标注对错) 1. 计算机的所有计算都是在内存中进行的。
2. 二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 3. 八进制数126对应的十进制数是86。
4. ASCII码值从小到大的排列规律是:阿拉伯数字、小写英文字母、大写英文字母。 5. 外存上的信息可直接进入CPU处理。 6. 按字符的ASCII码值比较,“A”比“a”大。 7. 格式符“%lf”不能用于double类型数据的输入。 8. 表示数学式0 试题二、单选题,从A、B、C、D中,选择一个正确的选项(共20分) 1. 计算机硬件一般包括( )和外部设备。 A.运算器和控制器 B.存储器 C.主机 D.中央处理器 2. 在计算机内部,一切信息的存取、处理和传送都是以( )形式进行的。 A.EBCDIC码 B.ASCII码 C.十六进制 D.二进制 3. 十进制数124转换成二进制数是( )。 A.111010 B.1111100 C.1011111 D.1111011 4. 下列数据中,有可能是八进制数的是( )。 A.488 B.317 C.597 D.189 5. 下列逻辑运算正确的是( )。 A.0+1=0 B.1+0=0 C.1+1=1 D.1+1=0 6.若有定义语句:char c='\\102';则变量c( )。 A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 定义不合法 7.下列变量定义合法的是( )。 A.int b=e-3 B.char x=”a” C.double b=1e-3 D.float 2b=1e-3 8. x、y是整型变量,执行语句scanf(\"x=%d,y=%d\);使x和y的值分别为3和5,正确的输入是( )。 A. 3 5 B. 3,5 C. x=3,y=5 D. x=3 y=5 9.判断char型变量c为小写英文字母的正确表达式为( )。 A. „a‟<=c<=‟z‟ B. c>=‟a‟||c<=‟z‟ C. c>=‟a‟&&c<=‟z‟ D. c>=a&&c<=z 10.执行下列程序段后,变量a,b,c的值分别是( )。 int x=10,y=9,a,b,c; a=(--x= =y++)?--x:++y; b=x++; c=y; A. a=9,b=9,c=9 B. a=8,b=8,c=10 C. a=9,b=10,c=9 D. a=1,b=11,c=10 11.设有定义int a;float f;则下列表达式中正确的是( )。 A. (int)a%f B. (int)f%a C. (int)(a%f) D. int (a%f) 12.执行下面程序段后,x的值是( )。 int a=14,b=15,x; char c=‟A‟; x=(a&&b)&&(c<‟B‟); A.true B.false C.0 D.1 13.判断下面的循环体执行多少次( )。 i=0; k=10; while( i=8 ) i=k--; A. 8次 B. 10次 C. 2次 D. 无数次 14.设x,y,t为int型变量,则执行语句:x=y=2;t=++x||++y;后,y的值是( )。 A. 不确定 B.1 C.2 D.3 15.执行下面程序段,若从键盘输入58后,其输出结果是( )。 int x; scanf(“%d”,&x); if(x>60) printf(“%d”,x); if(x>40) printf(“%d”,x); if(x>30) printf(“%d”,x); A.585858 B.5858 C.58 D.58 58 16. 执行下面程序后结果是( )。 #include \"stdio.h\" void main() {int a=16,b=21,m=0; switch(a%3) 第 1 页 共 4页 {case 0:m++;break; case 1:m++; switch(b%2) {default:m++; case 0:m++;break; } } 2.将float类型变量x保留三位小数(不四舍五入)的表达式。 3.将数学代数式(y5+5x+3)/(2a)写成C程序的算术表达式。 4. 设int m=2,n=1,a=1,b=2,c=3;执行语句d=(m=a= =b)&&(n=b>c);后,m和n的值分别为。 5. 程序段 int s,i;for(i=1;i<=10;i++)s+=i;是否总能计算1~10的和?如果能计算,写出计算结果,如果不能计算写出原因。 试题四 程序阅读题(共16分) 说明:阅读下列程序,在每小题提供的若干可选答案中,挑选一个正确答案。 printf(\"%d\\n\} A. 1 B. 2 C. 3 D. 4 17.执行下面程序后,其结果是( )。 #include \"stdio.h\" void main() {int y=10; while(y--);printf(\"y=%d\\n\} A. y=-1 B.y=1 C. y=0 D.无限循环 18. 执行for(i=0;i<10;i++);结束后,i的值是( )。 A. 10 B. 11 C. 9 D. 12 19. 执行下面程序后,其结果是( )。 #include \"stdio.h\" void main() {int i,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<=3;j++) {if(j%2) continue; x++;} } printf(\"x=%d\\n\ } A.x=6 B.x=4 C.x=12 D.x=6 20.程序中调用了库函数exit(0),必须包含头文件( )。 A. stdlib.h B. math.h C. ctype.h D. string.h 试题三 按题目的意思,写出正确的内容。(共10分) 1. 设a=3,b=4,c=5,写出!(a+b)+c-1&&b+c/2逻辑表达式的值。 1. #include \"stdio.h\" void main() {int a; float b,c; scanf(\"%2d%3f%4f\ //输入12345654321 printf(\"a=%d,b=%.1f,c=%.1f\\n\} A.a=12,b=345,c=6543 B.a=12,b=123,c=1234 C.a=12,b=345.0,c=6543.0 D.a=12.0,b=345.0,c=6543.0 2.#include scanf(\"%d\输入2 switch(x+1) { case 1: y+=1; printf(\"%d#\ case 3: y+=3; printf(\"%d#\ case 5: y+=5; printf(\"%d#\ default: y+=7; printf(\"%d#\ } } A . 1# B. 3#8# C. 7# D. 3# 3. #include \"stdio.h\" void main() {int n=1,s=0; for(;n<=10;n++) { if(n%2==0) continue; if(n%10==7) break; s+=n; } printf(\"s=%d\\n\} 第 2 页 共 4页 A.s=24 B.s=9 C.s=s=51 D=15 4.#include #include char a,b,x; int i; do x=getchar(); //运行时输入:aBC while (isupper(x)==0); for(a='A'; a<=x; a++){ for(b='A'; b<'A'+x-a; b++) putchar(' '); for(i=1;i<=2*(a-'A')+1;i++) printf(\"%d\ } putchar(„\\n‟); } A. 1123 B. 1 C. 1 12312345 D. 1 123 123 12345 试题五 程序填空。 (共18分) 说明:阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确答案。 1.【程序说明】 向变量n输入任意一个4位正整数,然后将其反序输出(例如输入1234,输出4321)。 【程序】 #include printf(\"Enter n:\"); (1) ; while( (2) ) { x=n%10; (3) ; printf(\"%d\ } } 【供选择的答案】 (1) A、scanf(“%d”,&n) B、scanf(“%d”,n); C、scanf(“%d\\n”,&n) D、n=getchar() (2) A、n B、n>=0 C、n=0 D、n=n+1 (3)A、n=n%10 B、n=n/10 C、x=x%10 D、x=x/10 2.【程序说明】 计算e=1+1/1!+1/2!+1/3!+…..+1/n!,要求直到最后一项小于10-6为止。 #include \"stdio.h\" void main() { int n,t; float s; n=t=1; (4) ; do{ t=t*n; s=s+ (5) ; n++; }while( (6) ); printf(“e=%f\\n”,s); } 【供选择的答案】 (4) A.s=0 B.s=1 C.s=1e-6 D.s=10^6 (5) A.1/t B.1.0/t C.1/n D.1.0/n (6) A.1/t>=1e-6 B. 1.0/t>=1e-6 C.1/n>=1e-6 D. 1.0/n>=1e-6 3. 【程序说明】 计算输出200~300之间全部素数的和。 #include void main() { int i,j,f,s=0; for(i=201;i<300;i++) {f= (7) ; for(j=2;j<=i/2;j++) if(i%j==0) {f=0; (8) ; } if( (9) ) s+=i; } printf(“200~300之间全部素数的和=%d\\n”,s); } (7)A. true B. false C.0 D.1 第 3 页 共 4页 (8)A. continue B. exit(0) C.break D.default (9)A.f=1 B.f==1 C.f==0 D.f=0 试题六 编程序 (共 26分) 杭州电子科技大学信息工程学院学生考试卷(A)卷参考答案 试题一 判断题(用‘√’或‘×’标注对错。共10分) 1.× 2.√ 3.√ 4.× 5.× 6.× 7.× 8.× 9.× 10.× 1.输入三角形的底和高,求三角形面积。 2.从键盘上输入x,计算分段函数f(x)的值。 2x+|x| x<5 f(x)= 3x2-2x+1 5≤x<20 x/5 x≥20 3.输入一批学生的成绩,遇负数则输入结束,要求统计并输出优秀(大于等于85)、通过(60~84)和不及格(小于60)的学生人数。 运行示例: Enter scores: 88 71 68 70 59 81 91 42 66 77 83 -1 >=85人数:2 60-84人数:7 <60人数:2 试题二、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共20分) 1.C 2.D 3.B 4.B 5.C 6.A 7.C 8.C 9.C 1011.B 12.D 13.D 14.C 15.B 16.C 17.A 18.A 19.A 20 试题三、按题目的意思,写出正确的内容(共10分) 1.1 2. (int)(y*1000)/1000.0 3.(pow(x,5)+5*x+3)/(2*a)或(y*y*y*y*y+5*x+3)/(2*a) 4.m=0 n=1 5. 不能,s变量没赋初值 试题四、读程序写出程序执行结果(共16分) 1.C 2. B 3.B 4.A 试题五、程序填空,按程序完成的功能,在划线部分填写适当的内容(共18分) (1) A (2) A (3) B (4) B (5) B (6)B (7) D (8)C (9)B 试题六 编程序(共26分) 1. #include double a,h,s; printf(“请输入三角形的底,高\\n”); scanf(“%lf,%lf”,&a,&h); s=a*h/2; printf(“三角形面积=%f\\n”,s); } 第 4 页 共 4页 .B .A 2. #include double x,y; printf(“请输入一个实数\\n”); scanf(“%lf”,&x); if(x<5) y=2*sqrt(x)+fabs(x); else if(x<20) y=3*x*x-2*x+1; else y=x/5; printf(“f(%.2f)=%.2f\\n”,x,y); } 3. #include { float score; int g=0,p=0,f=0; printf(“Enter scores:”); scanf(“%f”,&score); while(score>0) { if(score>=85) g++; else if(score>=60&&score<=84) p++; else if(score<60) f++; scanf(“%f”,&score); } printf(“>=85:%d\\n60-84:%d\\n<60:%d\\n”,g,p,f); } 第 5 页 共 4页 因篇幅问题不能全部显示,请点此查看更多更全内容