C语言程序设计试题(第2套) 一、单项选择题(45分,每题3分)
1.构成一个C程序的是_______。
A、一个主函数和若干个非主函数 B、 若干个主函数和若干个非主函数 C、 一个主函数和最多一个非主函数 D、 若干个主函数和最多一个非主函数 2.以下选项中合法的字符常量是_______。
A、\ B、 'B' C、68 D、 '\\B' 3. 在C语言中,不合法的实数是_______。
A、1.23 B、 e-5 C、 3.245E3 D、-.187 4. 已知a是int型变量,下面不正确的赋值语句是_______。 A、a = 65;
B、 a =1.2;
C、a= \
D、 a= 'A' +32;
5. 广义地说,为解决一个问题而采取的方法和步骤,称为_______。
A、迭代 B、增量 C、递归 D、算法 6. 以下叙述中正确的是_______。
A、 C程序中注释部分可以出现在程序中任意合适的地方 B、 花括号\和\只能作为函数体的定界符
C、 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D、 分号是C语句之间的分隔符,不是语句的一部分
7.若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是_______。 w=1; x=2; y=3; z=4; k=(w A、1 B、2 C、3 D、4 8. 以下程序段,说法正确的是_______。 x=-1; do { x=x*x; } while(! x); A、 是死循环 B、 循环执行二次 C、 循环执行一次 D、 有语法错误 9.用语句float x[3][100];定义数组x后,则下标最大的一个数组元素是 A、 x[3][100] B、 x[2][99] C、 x[2][100] D、 x[3][99] 10.若i、j已定义为int型,则以下程序段中,循环体的总的执行次数为_______。 for(i=5;i>0;i--) for(j=0;j<4;j++) { n=n+1;} A、20 B、24 C、 25 D、30 11. 以下程序编译、运行的结果是 A、 5,5 B、 5.0,5.0 C、 5.0 5.0 D、 5 5 #define MIN 2 #define MAX 7 main() {printf(\ 12.下列符号中可以作为函数名的是_______。 A、x—a B、sysf C、5ac D、$bc 13. 以下正确的函数形式是_______。 A、double fun1(int x, int y) B、fun1(int x, y) cheng { z=x+y; return z; } { int z; return z; } C、fun1(x, y) { int x, y; double z; z=x+y; return z; } D、double fun1(int x, int y) { double z; z=x+y; return z; } 14.以下程序的输出结果是 A、20 B、 30 C、 21 D、 31 main() { int a[5]={10,20,30,40,50} , *p ; p=&a[1]; printf(\ } 15. 修改高级语言源程序的是_______。 A、调试程序 B、 连接程序 C、编译程序二.程序填空题(20分,每空2分) 1.实现以下数学关系 -1 (x<0) y= 0 (x=0) 1 (x>0) 的程序如下,请填空。 main() { float x; int y; scanf(\ if( ① ) y=-1; if(x==0) y=0; if( ② ) y=1; printf(\} 2.以下函数用以求x的y次方,y为正整数。请填空。 double fun (double x , double y ) {int i ; double p=1; for (i=1; i ③ ; i+ +) p = ④ ; return ( p ); } 3.求数组所有元素的积,请填空。 main() {int s,i,a[4]={1,2,3,4}; s= ⑤ ; for(i=0;i<4;i++) s= ⑥ ; printf(\ cheng D、编辑程序 cheng 4.以下函数用于找出一个2×4矩阵中的最大元素值,请填空。 max_value(int arr[ ][4]) { int i, j, max; max=arr[0][0]; for (i=0; i<2; i++) for (j=0; j< ⑦ ; j++) if (arr[i][j]>max) max= ⑧ ; return(max); } 5.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。 含有switch语句的程序段: int s, t, m; t=(int)(s/10); switch( t ) {case 10: m=5; break; case 9: m=4; break; case 8: m=3; break; case 7: m=2; break; case 6: m=1; break; default: m=0; } 含有非嵌套if语句的程序段: int s, m; if ((s<110)&&(s>=100)) m=5; if ((s<100) && (s>=90)) m=4; if ((s<90) && (s>=80)) m=3; if ((s<80) && (s>=70)) ⑨ ; if ((s<70) && (s>=60)) ⑩ ; if ((s<60)||(s>=110)) m=0; 三.程序运行结果题(20分,每题4分) 阅读下列各程序,将程序编译、运行输出的结果写在题目右边。 1. 写出程序运行的结果: main ( ) { float a=2.5,b=3.5; int x=3,y=2,p; p=(x+y)%2+(int)a/(int)b; printf(\ } 2. 写出程序运行的结果: main ( ) { int i,j; i=2; j=4; printf(\ cheng