1、一、选择正确答案填空。1以下叙述不正确的是 D 。A) 一个 C 源程序必须包含一个 main 函数B) 一个 C 源程序可由一个或多个函数组成C) C 程序的基本组成单位是函数D) 在 C 程序中,注释说明只能位于一条语句的后面2一个 C 语言程序是由 B 。A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成3若 x、i、j、k 都是 int 型变量,则计算下面表达式后,x 的值为 C 。x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 524已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句 c2A+
2、3 后,c2中的值为 B 。A) 字符 B B) 68 C) 不确定的值 D) 字符C5设有说明:char w; int x; float y; double z;则表达式 w*x+z-y 值的数据类型为 D 。A) float B) char C) int D) double6设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab) B) ch=0; C) ch=7+9; D) ch=5+9;9 printf 函数中用到格式符%5s ,其中数字 5 表示输出的字符串占用 5 列。如果字符串长度大于 5,则输出按方式 B ;如果字符串长度小于 5,则输出按方式 C 。A)
3、 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出C) 右对齐输出该字符串,左补空格 D) 输出错误信息二、计算下列表达式的值。 (设 a=3,b=6,c=9)1. a/b _0_2. (a+b)%c _0_3. a+b,a-c,a=b/c,a+b+c _15_4. c=a+ _3_5. (int)a+(float)a/b _3_6. (a=a+b)-(-c) _1_三、分析程序,写出结果。以下程序段的输出结果是_x=1 y=2 * sun-* =310 Squared is : 100_.main() int x=1,y=2;printf(“x=%d y=%d * sum *
4、=%dn”,x,y,x+y);printf(“10 Squared is : %dn”,10*10);四、编程。1. 编程完成从键盘上输入三角形的底和高,输出三角形面积的 C 语言程序。#include“stdio.h“main() float s,a,b;printf(“请输入直角三角形的底和高n“);scanf(“%f %f“,s=a*b/2.0;printf(“%f“,s);2. 从键盘输入本学期所有课程的成绩,输出课程成绩、总成绩和平均成绩。如下显示:课程:C 程序设计 大学英语 高数 计应基础 体育 成绩:98.0 67.0 70.0 88.0 65.0总成绩:329.0平均成绩:6
5、5.8#include“stdio.h“main()float avg,s,a,b,c,d,e;scanf(“%f %f %f %f %f“,s=a+b+c+d+e;avg=s/5.0; printf(“C 程序设计 大学英语 高数 计应基础 体育n“);printf(“%-.2ft %-.2f %4f %-.2f %-.2fn“,a,b,c,d,e);printf(“总成绩:%.2fn“,s);printf(“平均成绩:%.2fn“,avg);模块 3一、选择题1以下不正确的 if 语句是 C 。A) if(xyB) if(x!=y) x+=y;C) if(x!=y)(x+;y+;)D) i
6、f(x=y) sacnf(“%d,%d“,2变量定义为 int x=1,y=2,z=3;以下语句执行后 x、y、z 的值是 B 。if(xy)z=x; x=y; y=z; A) x=1,y=2,z=3B) x=2,y=3,z=3C) x=2,y=3,z=1D) x=2,y=3,z=23以下程序的运行结果是 B 。int m = 5;if ( m + + 5) printf(“%dn”, m);else printf(“%dn”,m - - );A) 4 B) 5 C) 6 D) 74有一分段函数如下表:下面程序段中能正确表示上面关系的是 D 。A)y = x + 1; B) y = x 1;
7、C) if ( x =0 ) if (x ! = 0 ) if (x 0) y = x - 1; if (x 0 x+1if ( n1=Zelset=b;if(tc);elset=c;printf(“%d“,t);3商场进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下:消费金额 折扣P 100 0%100 P 200 5%200 P 500 10%500 P 1000 15%P 1000 20%编写程序,从键盘输入消费金额,输出折扣率和实付金额(f) ,分别用 if 语句和 switch 语句来实现 (要求绘制流程图)。1.#include“stdio.h“main() floa
8、t p,f,d; scanf(“%f“, if (p100) d=0.; else if(p200) d=0.05; else if(p500) d=0.1; else if(p1000) d=0.15; else d=0.2; f=p*(1-d); printf(“d=%d%,f=%.2fn“,(int)(d*100),f); 2.#include“stdio.h“ main() float p,f,d; int c; scanf(“%f“, c=p/100; switch(c) case 0:d=0.;break; case 1:d=0.05;break; case 2: case 3:
9、case 4:d=0.1;break; case 5: case 6: case 7: case 8: case 9:d=0.15;break; default :d=0.2; f=p*(1-d); printf(“d=%d%,f=%.2fn“,(int)(d*100),f); 模块 41. 单选题(1)C 语言中 while 与 do-while 语句的主要区别是 ( A )A)do-while 的循环体至少无条件执行一次B)do-while 允许从外部转到循环体内C)do-while 的循环体不能是复合语句D)while 的循环控制条件比 do-while 的循环控制条件严格(2)假定 a 和 b 为 int 型变量,则执行以下语句后 b 的值为( B )a=1; b=10;do b-=a; a+; while (b-0) ;A) 9 B) 2 C) 1 D) 8(3)以下程序段( A )x = -1 ;do x=x*x;