非常好的C语言章节习题集带答案

main()

{ int a=10; a=(3*5,a+4);

printf(\A.a=10 B.a=14 C.a=15 D.a=19

17.若变量均已正确定义并赋值,以下合法的C语言赋值语句是________。 A.x=y=5; B.x=n%2.5; C.x+n=i; D.x=5=4+1; 18.设变量已经正确定义并赋值,以下正确的表达式是________。

A.x=y*5=x+z B.int(15.8%5) C.x=y+z*5,++y D.x=25%5.0 19.以下不能正确表示代数式2ab/cd的C语言表达式是________。

A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d

20.设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式________。 A.a=a-a+b B.a-a=b C.a=a-(a+b) D.a=-a+b 21.设有定义:int x=2;,以下表达式中,值不为6的是________。

A.x*=x+1 B.x++,2*x C.x*=(1+x) D.2*x,x+=2 22.表达式(int)((double)9/2)-(9)%2的值是________。 A.0 B.3 C.4 D.5 23.若有定义 int x=10;,则表达式x-=x+x的值为________。

A.-20 B.-10 C.0 D.10

24.若有定义double a=22;int i=0,k=18;,则以下有错的语句是________。

A.a=a++,i++; B.i=(a+k)/(k-i); C.i=a; D.i=!a; 25.以下程序运行后的结果是________。 #include main()

{ int a=2,b=2,c=2; printf(\A.0 B.1 C.2 D.3

26.若有定义int a;long b; double x,y;,则以下选项中正确的表达式是________。 A.a%(int)(x-y) B.a=b=x,y; C.(a*y)%b D.y=x+y=x 27.表达式a+=a-=a=9的值是________。 A.-9 B.0 C.9 D.18

28.若有定义int a=3,b=2,c=1;,以下选项中错误的赋值表达式是________。 A.a=(b=4)=3 B.a=b=c+1; C.a=(b=4)+c; D.a=1+(b=c=4); 29.若有定义int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为________。 A.1 B.1.9 C.2 D.2.4 30.以下程序运行后输出的结果是________。 #include main()

{ int a=0,b=0,c=0;

c=(a-=a-5);(a=b,b+=4);

printf(\

11

A.0,4,5 B.4,4,5 C.4,4,4 D.0,0,0

31.设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是________。 A.x++; printf(\C.++x; printf(\D.n=x++; printf(\32.以下程序运行后输出的结果是________。 #include main()

{ int a=1,b=0; printf(\A.0,0 B.1,0 C.3,2 D.1,2 33.以下程序运行后输出的结果是________。 #include

main(){ int k=011; printf(\

A.12 B.11 C.10 D.9 34.有以下程序:

#include main()

{ int m,n,p;

scanf(\ printf(\

若想使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。 A.m=123n=456p=789 B.123,456,789 C.m=123,n=456,p=789 D.123 456 789 35.以下程序运行后输出的结果是________。 #include main()

{ int a,b,d=25; a=d/10%9; b=a+-1; printf(\A.6,1 B.2,1 C.6,0 D.2,0 36.以下叙述中正确的是______。

A.调用printf函数时,必须要有输出项

B.使用putchar函数时,必须在之前包含头文件stdio.h

C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 37.程序如下,下叙述中正确的是______。 #include main()

{ char a1='M',a2='m'; printf(\A.程序输出大写字母M B.程序输出小写字母m

C.格式说明符不足,编译出错 D.程序运行时产生出错信息 38.以下程序运行时若输入:a<回车> ,则叙述正确的是______。 #include

12

main()

{ char c1='1',c2='2'; c1=getchar(); c2=getchar();putchar(c1); putchar(c2); } A.变量c1被赋予字符a,c2被赋予回车符 B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2 D.变量c1被赋予字符a,c2中将无确定值

39.设有定义:int a; float b;,执行scanf(\语句时,若从键盘输入:876

543.0,a和b的值分别是________。 A.876和543.0 B.87和6.0 C.87和543.0 D.76和543.0

40.若在定义语句:int a,b,c;之后,接着执行以下选项中的语句,则能正确执行的语句是

________。

A.scanf(\B.scanf(\ C.scanf(\ D.scanf(\

41.已知字符'A'的ASCII码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句

printf(\后,输出结果是________。 A.A,B B.A,68 C.65,66 D.65,68

42.程序段:int x=12; double y=3.141593;printf(\的输出结果是________。 A.12 3.141593 B.123.141593 C.12,3.141593 D.123.1415930 43.若要求从键盘读入含有空格字符的字符串,应使用函数________。 A.getc() B.gets() C.getchar() D.scanf() 44.有以下程序,其中%u表示按无符号整数输出,程序运行后的输出结果是______。 #include main()

{ unsigned int x=0xFFFF; printf(\A.-1 B.65535 C.32767 D.0XFFFF (三)、编程题

1.编写一个程序,从键盘输入圆的半径,计算并输出该圆的周长、面积和体积。 2.输入四个季度的销售额(整型),计算并输出各季度自年初起的累计销售额,计算并输出第一季度外的三个季度的环比增长率(环比增长率是本期与相比上一期的增长率,针对本题目,即为本季度对上季度的增长率)。

3.从键盘输入四门课程的(整数)分数,输出成绩信息,计算并输出平均分数。要求输入输出有一定提示,输出的平均分数保留二位小数。

四、习题答案

(一)是非题

1.B 2.A 3.A 4.B 5.B 6.B 7.A 8.A 9.B 10.B 11.A 12.A 13.A 14.B 15.B 16.B 17.A 18.B 19.A 20.B (二)选择题

1.C 2.A 3.A 4.B 5.C 6.C 7.B 8.A 9.B 10.B 11.B 12.A 13.C 14.B 15.A 16.B 17.C 18.C 19.D 20.C

13

21.D 22.B 23.B 24.C 25.B 26.A 27.B 28.A 29.A 30.A 31.D 32.D 33.D 34.A 35.B 36.B 37.B 38.A 39.B 40.B 41.C 42.A 43. C 44.B

14

第3章 选择结构

二、习题

(一)、是非题

1.关系运算符是双目运算符,其功能是将两个运算对象进行大小比较。

A.对 B.错

2.对于与运算“&&”,只有当两个运算对象都为真时运算结果才为真。

A.对 B.错

3.使用条件表达式可以构成各种各样的两路选择结构。

A.对 B.错

4.条件可以是任何类型的表达式,如逻辑型,关系型,数值型等,单个已赋过值的变量或常

量也可以作为表达式的特例。 A.对 B.错

5.else子句不能单独作为语句使用,它是if语句的一部分,必须与if配对使用。

A.对 B.错

6.C语言规定,else总是与它上面最远的if配对。

A.对 B.错

7.在switch语句中,每一个case后的常量表达式的值不能相同,因为选择结构中只允许一

个分支所对应的语句组被执行。 A.对 B.错

8.在执行switch选择结构时,从匹配表达式的相应case处入口,一直执行到break语句或

到达switch的末尾为止 A.对 B.错

9.在C语言中,运算符“=”与“==”的含义都是等于。

A.对 B.错

10.当进行比较的运算对象是字符型数据时,则按字符的ASCII码值从左到右逐个对应比

较,先大为大。 A.对 B.错

11.判断字符变量ch的值是否为数字字符的表达式为(ch>='0') && (ch<='9')。

A.对 B.错

12.条件运算符“? :”是C语言中唯一的一个三目运算符,该运算符可以嵌套使用。

A.对 B.错

13.在C语言中用0表示逻辑值“真”,用非0表示逻辑值“假”。

A.对 B.错

14.在C语言中,所有的逻辑运算符的优先级都一样。

A.对 B.错

15

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4