1、二级 C语言程序设计-1 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:23,分数:46.00)1.以下选项中正确的整型常量是 A.12. B.-20 C.1,000 D.4 5 6(分数:2.00)A.B.C.D.2.以下选项中正确的实型常量是 A.0 B.3.1415 C.0.329102 D871(分数:2.00)A.B.C.D.3.以下选项中不正确的实型常量是 A.2.607E-1 B.0.8103e 2 C.-77.77 D.456e-2(分数:2.00)A.B.C.D.4.以下选项中不合法的用户标识符是 A.abc.c B.file C.Main
2、D.PRINTF(分数:2.00)A.B.C.D.5.以下选项中不合法的用户标识符是 A._123 B.printf C.A $ D.Dim(分数:2.00)A.B.C.D.6.C语言中运算对象必须是整型的运算符是 A.% B./ C.! D.*(分数:2.00)A.B.C.D.7.可在 C程序中用作用户标识符的一组标识符是 A.void define WORD B.as_b3 _123 If C.For -abe case D.2c DO SIG(分数:2.00)A.B.C.D.8.若变量已正确定义并赋值,符合 C语言语法的表达式是 A.a=a+7; B.a=7+b+c,a+ C.int(1
3、2.3%4) D.a=a+7=c+b(分数:2.00)A.B.C.D.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(分数:2.00)A.B.C.D.10.以下叙述中正确的是 A.在 C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的
4、表示 B.C程序由主函数组成 C.C程序由若干函数组成 D.C程序中只允许包含一个函数(分数:2.00)A.B.C.D.11.VC6.0中 int类型变量所占字节数是 A.1 B.2 C.3 D.4(分数:2.00)A.B.C.D.12.合法的八进制数是 A.0 B.028 C.-077 D.01.0(分数:2.00)A.B.C.D.13.不合法的十六进制数是 A.oxff B.0Xabc C.0x11 D.0x19(分数:2.00)A.B.C.D.14.若 a、b、c、d 都是 int型变量且初值为 0,以下选项中不正确的赋值语句是 A.a=b=c=100; B.d+; C.c+b; D.d
5、=(c=22)-(b+);(分数:2.00)A.B.C.D.15.下列选项中不是 C语句的是 A.int i; i+; printf(“%d/n“, i); B.; C.a=5, c=10 D.;(分数:2.00)A.B.C.D.16.合法的 C语言赋值语句是 A.a=b=58 B.k=int(a+b); C.a=58,b=58 D.-i;(分数:2.00)A.B.C.D.17.有以下程序:#includestdio.hmain()int x=10, y=3;printf(“%d/n“, y=x/y);执行后的输出结果是 A.0 B.1 C.3 D.不确定的值(分数:2.00)A.B.C.D.
6、18.若变量已正确定义为 int型,要给 a、b、c 输入数据,正确的输入语句是 A.read(a, b, c); B.scanf(“%d%d%d“, a, b, c); C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, (分数:2.00)A.B.C.D.19.若变量已正确定义为 float型,要通过输入语句:scanf(“%f %f% %f, B.t=a, a=b, b=t; C.a=t; t=b; b=a; D.t=b; b=a; a=t;(分数:2.00)A.B.C.D.21.若有正确定义语句:double x=5.16894; 语句 printf(“%f/n“,
7、(int)(x*1000+0.5)/(double)1000);的输出结果是 A.输出格式说明与输出项不匹配,输出无定值 B.5.170000 C.5.168000 D.5.169000(分数:2.00)A.B.C.D.22.若有以下程序段:int c1=1, c2=2, c3;c3=c1/c2;printf(“%d/n“, c3);执行后的输出结果是 A.0 B.1/2 C.0.5 D.1(分数:2.00)A.B.C.D.23.若有以下程序段:int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3);printf(“%d, %d, %d/n“, a, b, c);执行
8、后的输出结果是 A.3,0,-10 B.0,0,5 C.-10,3,-10 D.3,0,3(分数:2.00)A.B.C.D.二、B填空题/B(总题数:18,分数:36.00)24.在 VC6.0环境中用 RUN命令运行一个 C程序时,这时所运行的程序的后缀是 1。(分数:2.00)填空项 1:_25.语言源程序文件名的后缀是_;经过编译后,生成文件的后缀是_;经过连接后,生成文件的后缀是_。(分数:2.00)填空项 1:_26.结构化程序由_、_、_三种基本结构组成。(分数:2.00)填空项 1:_27.若 k为 int型变量且赋值 11。请写出运算 k+后表达式的值_和变量 k的值_。(分数
9、:2.00)填空项 1:_28.若 x为 double型变量,请写出运算 x=3.2,+x 后表达式的值_和变量 x的值_。(分数:2.00)填空项 1:_29.函数体由符号_开始,到符号_结束。函数体内的前面是_部分,后面是_部分。(分数:2.00)填空项 1:_30.C语言中的标识符可分为_、_和预定义标识符三类。(分数:2.00)填空项 1:_31.在 C语言程序中,用关键字_定义基本整型变量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。(分数:2.00)填空项 1:_32.把 a1、a2 定义成双精度实型变量,并赋初值 1的定义语句是 1。(分数:2.00)填空项 1:
10、_33.C程序中定义的变量,代表内存中的一个 1。(分数:2.00)填空项 1:_34.表达式 3.5+1/2的计算结果是 1。(分数:2.00)填空项 1:_35.对数学式 (分数:2.00)填空项 1:_36.表达式 s=10应当读做“ 1”。(分数:2.00)填空项 1:_37.若有以下定义,请写出以下程序段中输出语句执行后的输出结果_。 int i=-200, j=2500; printf(“(1)%d, %d“, i, j); printf(“(2)i=%d, j=%d/n“, i, j); printf(“(3)i=%d/nj=%d/n“, i, j);(分数:2.00)填空项 1
11、:_38.变量 i、j、k 已定义为 int型并均有初值 0,用以下语句进行输入时: scanf(“%d“, i); scanf(“%d“, j); scanf(“%d“, k); 从键盘输入: 12.3CR (CR代表 Enter键) 则变量i、j、k 的值分别是_、_、_。(分数:2.00)填空项 1:_39.复合语句在语法上被认为是_。空语句的形式是_。(分数:2.00)填空项 1:_40.C语句的最后用 1 结束。(分数:2.00)填空项 1:_41.以下程序段要求通过 scanf语句给变量赋值,然后输出变量的值。写出运行时给 k输入 100,给 a输入 15.81,给 x输入 1.8
12、9234时的三种可能的输入形式_、_、_。 int k; float a; double x; scanf(“%d%f%If“, k, printf(“k=%d, a=%f, x=%f/n“, k, a, x);(分数:2.00)填空项 1:_三、B上机改错题/B(总题数:2,分数:18.00)42.请指出以下 C程序的错误所在: #include stdio, h; main(); / * main function * / float r, s; /*/*risradius*/,/* sis area of circular*/ */ r = 5.0; s = 3.14159 * r *r
13、; printf (“%f /n“, s )(分数:9.00)_43.请指出以下 C程序的错误所在: main / * main function * / float a, b, c , v ; /* a, b, e are sides, v is volume of cube */ a = 2.0 ; b = 3.0 ; c = 4.0 v=a* b * c; prinff (“ %f /n “, v ) (分数:9.00)_二级 C语言程序设计-1 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:23,分数:46.00)1.以下选项中正确的整型常量是 A.12
14、. B.-20 C.1,000 D.4 5 6(分数:2.00)A.B. C.D.解析:2.以下选项中正确的实型常量是 A.0 B.3.1415 C.0.329102 D871(分数:2.00)A.B.C.D. 解析:3.以下选项中不正确的实型常量是 A.2.607E-1 B.0.8103e 2 C.-77.77 D.456e-2(分数:2.00)A.B. C.D.解析:4.以下选项中不合法的用户标识符是 A.abc.c B.file C.Main D.PRINTF(分数:2.00)A. B.C.D.解析:5.以下选项中不合法的用户标识符是 A._123 B.printf C.A $ D.Di
15、m(分数:2.00)A.B.C. D.解析:6.C语言中运算对象必须是整型的运算符是 A.% B./ C.! D.*(分数:2.00)A. B.C.D.解析:7.可在 C程序中用作用户标识符的一组标识符是 A.void define WORD B.as_b3 _123 If C.For -abe case D.2c DO SIG(分数:2.00)A.B. C.D.解析:8.若变量已正确定义并赋值,符合 C语言语法的表达式是 A.a=a+7; B.a=7+b+c,a+ C.int(12.3%4) D.a=a+7=c+b(分数:2.00)A.B. C.D.解析:9.以下叙述中正确的是 A.a是实型
16、变量,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(分数:2.00)A. B.C.D.解析:10.以下叙述中正确的是 A.在 C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示 B.C程序由主函数组成 C.C程序由若干函数组成 D.C程序中只允许包含一个函数(分数:2.
17、00)A.B.C. D.解析:11.VC6.0中 int类型变量所占字节数是 A.1 B.2 C.3 D.4(分数:2.00)A.B.C.D. 解析:12.合法的八进制数是 A.0 B.028 C.-077 D.01.0(分数:2.00)A. B.C.D.解析:13.不合法的十六进制数是 A.oxff B.0Xabc C.0x11 D.0x19(分数:2.00)A. B.C.D.解析:14.若 a、b、c、d 都是 int型变量且初值为 0,以下选项中不正确的赋值语句是 A.a=b=c=100; B.d+; C.c+b; D.d=(c=22)-(b+);(分数:2.00)A.B.C. D.解析
18、:15.下列选项中不是 C语句的是 A.int i; i+; printf(“%d/n“, i); B.; C.a=5, c=10 D.;(分数:2.00)A.B.C. D.解析:16.合法的 C语言赋值语句是 A.a=b=58 B.k=int(a+b); C.a=58,b=58 D.-i;(分数:2.00)A.B.C.D. 解析:17.有以下程序:#includestdio.hmain()int x=10, y=3;printf(“%d/n“, y=x/y);执行后的输出结果是 A.0 B.1 C.3 D.不确定的值(分数:2.00)A.B.C. D.解析:18.若变量已正确定义为 int型
19、,要给 a、b、c 输入数据,正确的输入语句是 A.read(a, b, c); B.scanf(“%d%d%d“, a, b, c); C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, (分数:2.00)A.B.C.D. 解析:19.若变量已正确定义为 float型,要通过输入语句:scanf(“%f %f% %f, B.t=a, a=b, b=t; C.a=t; t=b; b=a; D.t=b; b=a; a=t;(分数:2.00)A.B.C. D.解析:21.若有正确定义语句:double x=5.16894; 语句 printf(“%f/n“, (int)(x*1
20、000+0.5)/(double)1000);的输出结果是 A.输出格式说明与输出项不匹配,输出无定值 B.5.170000 C.5.168000 D.5.169000(分数:2.00)A.B.C.D. 解析:22.若有以下程序段:int c1=1, c2=2, c3;c3=c1/c2;printf(“%d/n“, c3);执行后的输出结果是 A.0 B.1/2 C.0.5 D.1(分数:2.00)A. B.C.D.解析:23.若有以下程序段:int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3);printf(“%d, %d, %d/n“, a, b, c);执行后
21、的输出结果是 A.3,0,-10 B.0,0,5 C.-10,3,-10 D.3,0,3(分数:2.00)A.B. C.D.解析:二、B填空题/B(总题数:18,分数:36.00)24.在 VC6.0环境中用 RUN命令运行一个 C程序时,这时所运行的程序的后缀是 1。(分数:2.00)填空项 1:_ (正确答案:.exe)解析:25.语言源程序文件名的后缀是_;经过编译后,生成文件的后缀是_;经过连接后,生成文件的后缀是_。(分数:2.00)填空项 1:_ (正确答案:.C .obj .exe)解析:26.结构化程序由_、_、_三种基本结构组成。(分数:2.00)填空项 1:_ (正确答案:
22、顺序结构 选择结构 循环结构)解析:27.若 k为 int型变量且赋值 11。请写出运算 k+后表达式的值_和变量 k的值_。(分数:2.00)填空项 1:_ (正确答案:11 12)解析:28.若 x为 double型变量,请写出运算 x=3.2,+x 后表达式的值_和变量 x的值_。(分数:2.00)填空项 1:_ (正确答案:4.2 4.2)解析:29.函数体由符号_开始,到符号_结束。函数体内的前面是_部分,后面是_部分。(分数:2.00)填空项 1:_ (正确答案: 定义和说明 语句)解析:30.C语言中的标识符可分为_、_和预定义标识符三类。(分数:2.00)填空项 1:_ (正确
23、答案:关键字 用户标识符)解析:31.在 C语言程序中,用关键字_定义基本整型变量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。(分数:2.00)填空项 1:_ (正确答案:int float double)解析:32.把 a1、a2 定义成双精度实型变量,并赋初值 1的定义语句是 1。(分数:2.00)填空项 1:_ (正确答案:double a1=1,a2=1;)解析:33.C程序中定义的变量,代表内存中的一个 1。(分数:2.00)填空项 1:_ (正确答案:存储单元)解析:34.表达式 3.5+1/2的计算结果是 1。(分数:2.00)填空项 1:_ (正确答案:3.5
24、)解析:35.对数学式 (分数:2.00)填空项 1:_ (正确答案:a*b/c (a*b)/c a*(b/c))解析:36.表达式 s=10应当读做“ 1”。(分数:2.00)填空项 1:_ (正确答案:将 10赋给变量 s)解析:37.若有以下定义,请写出以下程序段中输出语句执行后的输出结果_。 int i=-200, j=2500; printf(“(1)%d, %d“, i, j); printf(“(2)i=%d, j=%d/n“, i, j); printf(“(3)i=%d/nj=%d/n“, i, j);(分数:2.00)填空项 1:_ (正确答案:(1)-200,2500 (
25、2)i=-200,j=2500 (3)i=-200 j=2500)解析:38.变量 i、j、k 已定义为 int型并均有初值 0,用以下语句进行输入时: scanf(“%d“, i); scanf(“%d“, j); scanf(“%d“, k); 从键盘输入: 12.3CR (CR代表 Enter键) 则变量i、j、k 的值分别是_、_、_。(分数:2.00)填空项 1:_ (正确答案:12 0 0)解析:39.复合语句在语法上被认为是_。空语句的形式是_。(分数:2.00)填空项 1:_ (正确答案:一条语句 ;(分号))解析:40.C语句的最后用 1 结束。(分数:2.00)填空项 1:
26、_ (正确答案:;(分号))解析:41.以下程序段要求通过 scanf语句给变量赋值,然后输出变量的值。写出运行时给 k输入 100,给 a输入 15.81,给 x输入 1.89234时的三种可能的输入形式_、_、_。 int k; float a; double x; scanf(“%d%f%If“, k, printf(“k=%d, a=%f, x=%f/n“, k, a, x);(分数:2.00)填空项 1:_ (正确答案:可以用以下三种方式输入(CR 代表 Enter键) 100 15.81 1.89234CR 100CR 15.81 1.89234CR 100CR 15.81CR 1
27、.89234CR)解析:三、B上机改错题/B(总题数:2,分数:18.00)42.请指出以下 C程序的错误所在: #include stdio, h; main(); / * main function * / float r, s; /*/*risradius*/,/* sis area of circular*/ */ r = 5.0; s = 3.14159 * r *r; printf (“%f /n“, s )(分数:9.00)_正确答案:(第一行的末尾有多余的分号“;” 第一行的文件名 stdio.h缺双引号“或括住 第二行主函数 main的末尾有多余的“;” 第二行的注释有错,C
28、 语言规定“/”与“*”之间不能有空格 main 函数体缺函数体括号“” 第三行的注释有错,C 语言规定:注释内容由一对“/*”和“*/”括注,并且“/*”总是与离它最近的“*/”配对,由此可以看出,该行注释中有一个多余的“,”,末尾的“*/”由于没有“/*”与之配对,因此也是多余的。 第六行语句 printf(“%f/n“, s)缺分号“;”)解析:43.请指出以下 C程序的错误所在: main / * main function * / float a, b, c , v ; /* a, b, e are sides, v is volume of cube */ a = 2.0 ; b = 3.0 ; c = 4.0 v=a* b * c; prinff (“ %f /n “, v ) (分数:9.00)_正确答案:(在程序开始缺#include “stdio.h“ 第二行 main函数缺() 第三行末尾缺分号“;” 第五行语句末尾缺分号“;”)解析: