2013年计算机二级考试C语言第三章课后题及参考答案
第三章、顺序结构
一、选择题
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
计算机二级C语言章节练习在线测试 | ||
第3章 | 顺序结构 |
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("%2d%3f%4f",&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("|%10.5f|\\n",12345.678);
答案:C
3.17 以下程序段的输出是
A) *0000057.66*
B) * 57.66*
C) *0000057.67*
D) * 57.67*
float a=57.666;
printf("*%010.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("%8f",&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
计算机二级C语言章节练习在线测试 | ||
第3章 | 顺序结构 |
二、填空题
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=%3d,x=%6d,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=$%06d,x=%%06d\\n",x,x,x,x,x);
答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=%06d
3.28 以下程序段的输出结果是____。
double a=513.789215;
printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\\n",a,a,a,a);
答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
计算机二级C语言章节练习在线测试 | ||
第3章 | 顺序结构 |