《C程序设计》自测题1参考答案
- 格式:doc
- 大小:66.00 KB
- 文档页数:5
第1页,共5页 《C程序设计》自测题1参考答案 一、 选择题(共20题,每题2分,本题共40分。) (1)C语言规定:源程序中main函数的位置:( C ) (A)必须在最开始 (B)必须在系统调用的库函数的后面 (C)可以任意 (D)必须在后面 (2) main() { printf("Y\b=\n"); } 在打印机上输出结果为:( C ) (A)= (B)Y (C)¥ (D)\n (3)下面不正确的字符常量是( A ) (A)“C” (B)‘?’ (C)‘W’ (D)‘\101’ (4)已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-’3’;后,c2中的值为( A )。
(A)D (B) 68 (C)不确定的值 (D)C (5)若有定义int j=3; printf("%d, %d",++j ,j++); 运行结果为: ( C ) (A)4,3 (B)3,3 (C)4,4 (D)4,5 (6)main() {int x,y=7; float z=4; x=(y=y+6,y/z); printf("%d\n",x); }
运行结果:( D ) (A)7 (B)13 (C)1 (D)3 (7)下列浮点数用指数形式表示正确的是:( A ) (A)123E2 (B).e4 (C) e-5 (D)1.2E-3.5 (8)设有定义int a,b;当执行scanf("%2d•%*3d•%2d",&a,&b);语句时,从第 一列输入数据12•345•67↙,则b的值为:( D ) (A)34567 (B)34 (C)345 (D)67 (9)以下程序的输出结果是:( B ) main() {int x=2,y=-1,z=2; if(x if(y<0) z=0; else z+=1; printf("%d\n",z); } (A) 3 (B)2 (C)1 (D)0 (10) 若k为整型,以下while循环执行( B )次。 k=2; while(k=0) { printf("%d",k); k--; } printf("\n"); (A) 无限次 (B) 0次 (C) 1次 (D) 2次
(11)以下两个程序运行结果分别是:( B ) main() main() {int i=11,sum=0; {int i=11,sum=0; do while(i<=10) {sum+=i; {sum+=i; 第2页,共5页
i++; i++; }while(i<=10); } printf("%d",sum); printf("%d",sum); } } (A) 11,11 (B)11,0 (C)0,11 (D)0,0 (12)下面这个程序的输出是( B ) int a,b,c; a=7;b=8;c=9; if(a>b) a=b;b=c;c=a; printf("a=%d b=%d c=%d\n",a,b,c); (A) a=7 b=8 c=7 (B) a=7 b=9 c=7 (C) a=8 b=9 c=7 (D) a=8 b=9 c=8 (13) 以下对数组的定义方式哪个是正确的?( A ) (A)#define size 10 (B) int n; int a[size] ; int a[n]; (C)char name[-10]; (D) float weight[10.3]; (14) 以下对二维数组a的正确说明是( C )。 (A) int a[3][]; (B)float a[][4]; (C)double a[3][4]; (D)float a(3)(4); (15)若有定义char array[]=”child”;则数组array所占存储空间的字节数为:( C ) (A) 4 (B)5 (C)6 (D)7 (16)在调用函数时,如果实参是简单变量,则它与对应形参之间的数据传递方式是( A )。 (A)单向值传递 (B)地址传递 (C)由实参传给形参,再由形参传给实参 (D)传递方式由用户指定 (17)若有以下函数调用语句: fun(a+b,(x,y),ab(n+k,d,()a,b))); 则在此函数调用语句中实参的个数是( D )。 (A) 4 (B)5 (C)6 (D)3 (18)若定义了int i,j,*p,*q;下面( D )的赋值是合法的。 (A) i=&j (B)*q=&j (C)q=&p (D)p=&i (19) 若定义了int a[10],i=3,*p=&a[5];下面不能表示为a数组元素是( D )。
(A) p[-5] (B)a[i+5] (C)*p++ (D)a[i-5] (20)设有以下说明语句 struct stu {int a; float b; }stutype; 则下面的叙述不正确的是:( C ) (A) struct是结构体类型的关键字(B)struct stu是用户定义的结构体类型 (C) stutype是 用户定义的结构体类型名 (D)a和b都是结构体成员名
二、填空题(共5小题,每空2分,本题共10分。) (21)一个C程序一般由若干个函数构成,其中至少应包含一个 main或 主 函数。 (22)表达式3>2>1的值为_ 0 。 (23)若x为int型变量,则执行以下语句后x的值是____-16_____。 x=8; x+=x-=x+x;。 (24)定义int a[3][5]={{0,1,2,3,4},{3,2,1,0},{0}};则初始化后a[1][2]的值是___1____。 第3页,共5页
(25)无返回值的函数应定义为_ void 类型。 三、分析程序运行结果(共6题,每题3分,本题共18分。) (26) 下列程序运行结果: a=2,b=1 main() {int a=0;b=0,x=1,y=0; switch(x) {case 1: switch(y) {case 0: a++;break; case 1: b++;break; } case 2:a++; b++;break; } printf("a=%d,b=%d",a,b); } (27) 下列程序运行结果: x=8 main() {int i,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<4;j++) {if(j%2)break; x++; } x++; } printf("x=%d\n",x); } (28)下列程序运行结果: 5 4 3 2 1 #define N 5 main() { int i; int a[N]={1,2,3,4,5}; for(i=0;i
main() {int x3=10,x4=20; sub(x3,x4); sub(x2,x1); printf("%d,%d,%d,%d\n",x3,x4,x1,x2); 第4页,共5页
} sub(int x,int y) {x1=x; x=y; y=x1; } (31)写出下面这个程序的输出结果: max=9, min=5 main() { int *p1, *p2, *p,a=5,b=9; p1=&a;p2=&b; if(ay) { t=x;x=y;y=t;或t=y;y=x;x=t; } /*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;} /*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;} /*交换z,y的值*/ printf("small to big: %d %d %d\n",x,y,z); } (33)打印出所有的水仙花数 main() {int i,j,k,n; for(n=100;n<1000;n++) {i=n/100;j=n/10-i*10;k=n%10; if(___n==i*i*i+j*j*+k*k*k 或 i*100+j*10+k= =i*i*i+j*j*+k*k*k ) /*各位上的数字立方和等于该数本身*/ printf("%d",n); } printf("\n"); } (34) 以下程序的功能是判断输入的年份是否是闰年。请在 内填入正确的内容。
main() {int y,f; scanf(“%d”,&y); if(y%400==0)f=1; else if( y%4= =0 && y%100!=0 )f=1; else f=0 ; if(f)printf("%d is ",y); else printf("%d is not",y); printf("a leap year\n"); }
五、编写下列程序(共2题,本题共17分。) (35) 请编写一个程序,实现打印下列图案。(7分)