1、第一章 1.以下叙述中错误的是 ( )B.C语言编写的每个函数都可以进行独立编译并执行 2. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是 ( ) A.C 语言程序仅可以编译执行 3. C语言规定:在一个源程序中 ,main的位置 ( ) A.可以任意 4. 一个 C语言程序是由 ( ) C.函数组成 5. 以下关于结构化程序设计的叙述中正确的是 ( ) B.c语言中,程序的模块化是利用函数实现的 6. 以下叙述正确的是 ( ) C.c语言本身没有输入 和输出语句 7. 以下叙述中错误的是 ( ) A.C语言编写的每个函数都可以进行独立编译并执行 8. 以下叙述正确
2、的是 ( )B.c程序中注释部分可以单独占一行 9. 以下叙述正确的是 ( ) D.c 语言函数可以嵌套调用,如 fun(fun(x) 10. 一个 C程序的执行是从 ( ) D.本程序 main 函数开始,到 main 函数结束 11. 以下叙述不正确的是 ( ) A在 c 程序中,注释说明只能位于一条语句后面 第二章 单项选择 1以下选项中非法的字符常量是 ( ) (B /019) 2设变量 a是整型, f是实型, i是双精度型,则表达式 10+a+i*f值的数据类型为( ) (C double) 3判断字符型变量 c1是否为数字字符的正确表达式为 ( ) (A (C1=0) else i
3、f(x int fun(int x,int y,int z) int j,t,n,m; /*ERROR*/ j=1; t=m=n=1; /*ERROR*/ while (t!=0 t=j%x; m=j%y; n=j%z; return j; void main() int x1,x2,x3,j; printf(“Input x1 x2 x3: “); scanf(“%d%d%d“, printf(“x1=%d,x2=%d,x3=%d n“,x1,x2,x3); j=fun(x1,x2,x3); printf(“The minimal common multiple is: %dn“,j); 参
4、考答案 j=0; while (t!=0 | m!=0 | n!=0) 3/*下列程序中函数 fun的功能是 :计算正整数 num各位上的数字之积。例如 ,若输入 252,则输出应该是 20。若输入 202,则输出应该是 0。 请改正程序中的错误 ,使它能得出正确的结果。 注意 :不要改动 main函数 ,不得增行或删行 ,也不得更改程序的结构。 试题程序 :*/ #include #include long fun(long num) /*ERROR*/ long k; do k *=num%10; /*ERROR*/ num =10; while(num); return(k); void
5、 main() int n; printf(“Please enter a number: “); scanf(“%ld“, printf(“n%ldn“,fun(n); 参考答案 long k=1; num/=10; 4/*下列给定程序中 ,函数 fun()的功能是 :根据整 型形参 m的值 ,计算如下公式的值 : t = 1 - 1 / ( 2 2 ) 1 / ( 3 3 ) . . . 1 / ( )mm 请改正函数 fun()中的错误 ,使它能得出正确的结果。 注意 :不要改动 main函数 ,不得增行或删行 ,也不得更改程序的结构。 试题程序 : */ #include #inclu
6、de double fun(int m) double y=1.0; int i; /*ERROR*/ for(i=2;i #include int fun(int k) int m=0,mc=0, j; while(k=2) int i; for(i=2;i #include double fun(int n) double result =1.0; /*ERROR*/ if n=0 return 1.0; while(n1 while (k #include int main ( ) double s=0.0,eps,t=1.0; int n ; scanf (“%lf“, for (n=
7、1 ; t=fabs(eps); n+) s+=t ; /*FILL*/ t= 1 ; /*FILL*/ 2 ; return 0; 参考答案 t*n/(2*n+1) printf(“%lfn“,2*s) 2/*请补充 main函数 ,该函数的功能是 :打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。 本题的结果为 : 111 222 333 444 555 666 777 888 999。 注意 :部分源程序给出如下。 请勿改动 main函数和其他函数中的任何内容 ,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序 :*/ #include #inclu
8、de void main() int g, s, b; for(g=1; g #include void main() int i,g; for(i=1;i int fun(int a,int b,int c) int t; /*FILL*/ t=(ab)?(bc?b:(ac?c:【 1】 ) /*FILL*/ :(ac)?【 2】 /*FILL*/ :(bc)?c:【 3】 ); return t; void main() int a1=3,a2=5,a3=4,r; r=fun(a1,a2,a3); printf(“nThe middle number is: %dn “,r); 参考答案
9、t=(ab)?(bc?b:(ac?c:a) :(ac)?a :(bc)?c:b); 5/*给定程序的功能是 :求二分之一圆面积 ,函数通过形参得到圆的半径 ,函数返回二分之一的圆面积 (注 :圆面积公式为 :Sr 2,在程序中定义的变量名要与公式的变量相同 )。 例如 ,输入圆的半径值 :19.527,输出为 :s=598.949991。 注意 :部分源程序给出如下。 请勿改动 main函数和其他函数中的任何内容 ,仅在横线上填入所编写的若干表达式或语句。 试题程序 : */ #include double fun( double r) /*FILL*/ return 3.14159*1 /2
10、.0; void main() double x; printf(“Enter x: “); /*FILL*/ scanf(“%lf“, 2 ); /*FILL*/ printf(“s=%lfn“,fun( 3 ); 参考答案 return 3.14159*r*r/2.0; scanf(“%lf“, printf(“s=%lfn“,fun(x); 6例如 ,在主函数中从键盘给 n输入 30后 ,输出为 :s=1.226323。 注意 :部分源程序给出如下。 请勿改动 main函数和其他函数中的任何内容 ,仅在函数 fun的横线上填入所编写的若干表达式或语句。 试题程序 : */ #include double fun(int n) int i; double sum=0.0; /*FILL*/ for(i=1; 1 ;i+) /*FILL*/ if(i%3=0 2 i%7=0) /*FILL*/ sum+= 3 /i; return sum; void main()