打印本文 打印本文  关闭窗口 关闭窗口  
《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案3
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:37:39  文章录入:杜斌  责任编辑:杜斌

第三章、顺序结构 
一、选择题 

3.1 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 

A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++); 

答案:C 

3.2 以下选项中不是C语句的是 

A) {int i; i++; printf("%d\n", i); } B) ; C) a=5,c=10 D) { ; } 答案:C 

3.3 以下合法的C语言赋值语句是 

A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i; 答案:D 

3.4 以下程序的输出结果是 

A) 0 B) 1 C) 3 D)不确定的值 main() { int x=10,y=3; printf("%d\n", y=x/y); } 答案:C 

3.5 若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是 

A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c); 

答案:D 

3.6 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予

33,以下不正确的输入形式是 

A) 10<CR> 22<CR> 33<CR> B) 10.0,22.0,33.0 C) 10.0<CR> 22.0 33.0 D) 10 22<CR> 

33 scanf("%f %f %f", &a, &b, &c); 

答案:B

 3.7 若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是 

A) a=a+b,b=a-b,a=a-b; B) t=a,a=b,b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t; 

答案:C 

3.8 若变量已正确定义,以下程序段的输出结果是 

A) 输出格式说明与输出项不匹配,输出无定值 B) 5.17000 C) 5.168000 D) 5.169000 
x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000); 
答案:D 

3.9 若有以下程序段,c3中的值是 

A) 0 B) 1/2 C) 0.5 D) 1 
int c1=1,c2=2,c3; c3=c1/c2; 
答案:A 

3.10 若有以下程序段,其输出结果是 

A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10 
int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c); 
答案:B 

3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210<CR>(此处<CR>代表Enter),则程序的输出结果是 

A) a=98,b=765,c=4321

 B) a=10,b=432,c=8765 

C) a=98,b=765.000000,c=4321.000000 

D) a=98,b=765,c=4321.0 
main() { int a; float b,c; scanf("-?O",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); } 
答案:C 

3.12 以下程序的输出结果是 

A) a=%2,b=%5

 B) a=2,b=5 

C) a=%%d,b=%%d 

D) a=%d,b=%d 
main() { int a=2,b=5; printf("a=%%d,b=%%d\n",a,b); } 
答案:D 

3.13 若int类型占两个字节,则以下程序段的输出是 A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535 
int a=-1; printf("%d,%u\n",a,a); 
答案:D 

3.14 以下程序段的输出是 A) *496 * B) * 496* C) *000496* D)输出格式符不合法 
int x=496; printf("*%-06d*\n",x); 
答案:A 

3.15 以下程序段的输出是 A) |3.1415| B) | 3.0| C) | 3| D) | 3.| 
float a=3.1415; printf("|%6.0f|\n",a); 
答案:C 

3.16 以下程序段的输出是 A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf("|.5f|\n",12345.678); 
答案:C 

3.17 以下程序段的输出是 A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666; printf("*0.2f*\n",a); 
答案:C 

3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是 A) scanf("%f",c); B) scanf("%8.4f",&c); C) scanf("%6.2f",&c); D) scanf("%8",&c); 283.1900<CR> <CR>表示Enter键 
答案:由于印刷错误,本题没有正确答案。改正意见: 把选项A改为:scanf("%f",&c);或者把选项D改为:scanf("",&c);则可分别选择A或者D为正确答案。 

3.19 若变量已正确说明,要求用以下语句给a赋予

3.12、给b赋予9.0,则正确的输入形式是(□代表空格) A) 3.12□□9.0<CR> B) a=□□3.12b=□□□9<CR> C) a=3.12,b=9<CR> D) a=3.12□□,b=9□□□□<CR> scanf("a=%f,b=%f",&a,&b); <CR>表示Enter键 答案:C 

3.20 以下程序的输出结果是 

A) 9 8 B) 8 9 C) 6 6 D) 以上三个都不对 
#include "math.h" main() { double a=-3.0, b=2; printf("%3.0f %3.0f\n",pow(b,fabs(a)),pow(fabs(a),b)); } 
答案:B 


二、填空题 

3.21 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。 (1)____(2)____(3)____ int i=-200,j=2500; printf("(1) %d %d",i,j); printf("(2) i=%d, j=%d\n",i,j); printf("(3) i=%d\n j=%d\n",i,j); 
答案: -200 2500 i=-200, j=2500 i=-200 j=2500 

3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf("%d",&i); scanf("%d",&j); scanf("%d",&k); 当执行第一个输入语句,从键盘输入: 12.3<CR> <CR>表示Enter键则变量i、j、k的值分别是____、____、____。 
答案:12、0、0 

3.23 复合语句在语法上被认为是____。空语句的形式是____。 

答案:一条语句、 ; 

3.24 C语句的最后用____结束。 答案:; 

3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。 int k; float a; double x; scanf("%d%f%lf",&k,&a,&x); printf("k=%d,a=%f,x=%f\n",k,a,x); 
答案: (1) 100 25.81 1.89234 (2) 100 25.81<CR>1.89234 (3) 100<CR> 25.81<CR> 1.89234<CR> 

3.26 以下程序段的输出结果是____。 int x=0177; printf("x==,x=m,x=$%6o,x=%6x,x=%6u\n",x,x,x,x,x); 
答案:x=127,x= 127,x= 177,x= 7f,x= 127 

3.27 以下程序段的输出结果是____。 int x=0177; printf("x=%-3d,x=%-6d,x=$%-06d,x=$d,x=%d\n",x,x,x,x,x); 
答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d 

3.28 以下程序段的输出结果是____。 double a=513.789215; printf("a=%8.6f,a=%8.2f,a=.8f,a=.8lf\n",a,a,a,a); 
答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500

打印本文 打印本文  关闭窗口 关闭窗口