C语言程序设计试题第2套
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计试题(第2套)
一、单项选择题(45分,每题3分)
1.构成一个C程序的是_______。
A、一个主函数和若干个非主函数
B、若干个主函数和若干个非主函数
C、一个主函数和最多一个非主函数
D、若干个主函数和最多一个非主函数
2.以下选项中合法的字符常量是_______。
A、"B"
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= "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 k=(k k=(k 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() { 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("%d", *p++); } 15. 修改高级语言源程序的是_______。 A、调试程序 B、连接程序 C、编译程序 D、编辑程序二.程序填空题(20分,每空2分) 1.实现以下数学关系 -1 (x<0) y= 0 (x=0) 1 (x>0) 的程序如下,请填空。 main() { float x; int y; scanf("%f",&x); if( ①) y=-1; if(x==0) y=0; if( ②) y=1; printf("%d\n", y); } 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("%d\n",s); 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("p=%d\n", p); } 2. 写出程序运行的结果: main ( ) { int i,j; i=2; j=4; printf("%d,%d\n", i,j); printf("%d,%d \n", i++,j--); } 3. 写出程序运行的结果: main() { int num= 0; while(num<=2) { num++; print f(“%d\n”,num); }