《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案《全国计算机等级考试二级教程——C语言程序设计》课后题及参
考答案
(教育部考试中心)高等教育出版社 出版 (第一章、第二章、第三章)
第一章 程序设计基本概念
1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。 答案:.exe
1.2 C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。 答案:.c .obj .exe
1.3 结构化程序由_____、_____、_____三种基本结构组成。 答案:顺序、选择、循环 第二章 C程序设计的初步知识
一、选择题
2.1 以下选项中正确的整型常量是
A)12. B)-20 C)1,000 D)4 5 6 答案:B
2.2 以下选项中正确的实型常量是
A)0 B)3. 1415 C)0.329×10(2)(10的2次方) D).871 答案:D
2.3 以下选项中不正确的实型常量是
A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 答案:B
2.4 以下选项中不合法的用户标识符是
A)abc.c B)file C)Main D)PRINTF 答案:A
2.5 以下选项中不合法的用户标识符是
A)_123 B)printf C)A$ D)Dim 答案:C
2.6 C语言中运算对象必需是整型的运算符是
A)% B)/ C)! D)** 答案:A
2.7 可在C程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B
2.8 若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B
2.9 以下叙述中正确的是
A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。 B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。
C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。 答案:B
2.10 以下叙述中正确的是
A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。 B)C程序由主函数组成。 C)C程序由函数组成。
D)C程序由函数和过程组成。 答案:C
2.11 TURBO C中int类型变量所占字节数是
A)1 B)2 C)3 D)4 答案:B
2.12 不合法的八进制数是
A)0 B)028 C)077 D)01 答案:B
2.13 不合法的十六进制数是
A)oxff B)0Xabc C)0x11 D)0x19 答案:A
二、填空题
2.14 若k为int整型变量且赋值11。请写出运算k++后表达式的值A)_____和变量的值B)_____。 答案:11、12
2.15 若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)_____。 答案:4.2、4.2
2.16 函数体由符号____开始,用符号____结束。函数体的前面是____部分,其后是____部分。 答案:{、}、定义、执行
2.17 C语言中的标识符可分为____、____、和预定义标识符三类。 答案:关键字、用户标识符
2.18 在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。 答案:int、float、double
2.19 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。 答案:float a1=1.0,a2=1.0;
2.20 C程序中定义的变量,代表内存中的一个____。 答案:存储单元
2.21 表达式3.5+1/2的计算结果是____。 答案:3.5
2.22 对以下数学式,写出三个等价的C语言表达式____、____、____。 a×b ——
c
答案:a*b/c、a/c*b、b/c*a 2.23 表达式s=10应当读做“____”。 答案:将10赋给变量s
2.24 计算机中内存储器的最小存储单位称____,其中能容纳的数是____。 答案:位、0或1
2.25 通常一个字节包含____个二进制位。在一个字节中能存放的最大(十进制)整数是____,它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。 答案:8、255、1111 1111、-128、1000 0000
2.26 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小(十进制)整数是____,它的二进制数的形式是____。
答案:65535、-32768、1000 0000 0000 0000
2.27 在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(\
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(\ }
答案:C
3.5 若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是 A) read(a,b,c); B) scanf(\
C) scanf(\ D) scanf(\ 答案:D
3.6 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是 A) 10
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(\
答案: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(\
答案:B
3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210
C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765,c=4321.0
main() {
int a; float b,c;
scanf(\
printf(\}
答案: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(\}
答案:D
3.13 若int类型占两个字节,则以下程序段的输出是
A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535 int a=-1;
printf(\
答案:D
3.14 以下程序段的输出是
A) *496 * B) * 496* C) *000496* D)输出格式符不合法 int x=496;
printf(\
答案:A
3.15 以下程序段的输出是
A) |3.1415| B) | 3.0| C) | 3| D) | 3.| float a=3.1415;
printf(\
答案:C
3.16 以下程序段的输出是
A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf(\
答案:C
3.17 以下程序段的输出是
A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666;
printf(\
答案:C
3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是 A) scanf(\ B) scanf(\ C) scanf(\ D) scanf(\ 283.1900
答案:由于印刷错误,本题没有正确答案。改正意见:
把选项A改为:scanf(\或者把选项D改为:scanf(\则可分别选择A或者D为正确答案。 3.19 若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(□代表空格) A) 3.12□□9.0
3.20 以下程序的输出结果是
A) 9 8 B) 8 9 C) 6 6 D) 以上三个都不对
#include \main()
{ double a=-3.0, b=2;
printf(\}
答案:B
二、填空题
3.21 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。 (1)____(2)____(3)____
int i=-200,j=2500;
printf(\
printf(\ printf(\
答案: -200 2500
i=-200, j=2500 i=-200 j=2500
3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf(\当执行第一个输入语句,从键盘输入: 12.3
则变量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(\
printf(\
答案:
(1) 100 25.81 1.89234 (2) 100 25.81
(3) 100
printf(\ 答案:x=127,x= 127,x= 177,x= 7f,x= 127 3.27 以下程序段的输出结果是____。 int x=0177;
printf(\ 答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d 3.28 以下程序段的输出结果是____。 double a=513.789215;
printf(\答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500 第四章、选择结构
一、 选择题
4.1 下列运算符中优先级最高的运算符是
A) ! B) % C) -= D) && 答案:A
4.2 下列运算符中优先级最低的运算符是
A) || B) != C) <= D) + 答案:A
4.3 为表示关系x≥y≥z,应使用的C语言表达式是
A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) (x>=y>=z) D) (x>=y)&(y>=z) 答案:A
4.4 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是
A) a&&b B) a<=b C) a||b+c&&b-c D) !((a
4.5 以下程序的输出结果是
A) 0 B) 1 C) 2 D) 3
main()
{ int a=2,b=-1,c=2; if(a
if(b<0) c=0;