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

A.对 B.错

17.假定已有整型变量初始化语句int x=2;,那么表达式x++,x *=2+1的值为9。

A.对 B.错

18.假定已有变量定义语句:int m=3,n=2;,那么(float)(m/n)表达式的值是1.5。

A.对 B.错 19.C语言中,表达式1/2*2的值为0。

A.对 B.错

20.若scanf函数的格式说明中有一个空格,在输入时也一定要在对应位置输入一个空格。

A.对 B.错 (二)选择题

1.数字字符0的ASCII值为48,则以下程序运行后的输出结果是______。

#include main()

{ char a='1',b='2'; printf(\A.3,2 B.50,2 C.2,2 D.2,50 2.以下程序运行后的输出结果是______。 #include main()

{ int m=12,n=34;

printf(\ printf(\

A.12353514 B.12353513 C.12343514 D.12343513

3.若整型变量a、b、c、d中的值依次为1、2、3、4。则表达式a+b/d*c的值是______。 A.1 B.2.5 C.0.25 D.2 4.以下程序运行后的输出结果是______。 #include main()

{ int a,b,c;

a=10; b=20; c= a%b+a/b;

printf(\A.10200 B.10 20 10 C.102011 D.10 20 1

5.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。 #include main()

{ int r; float s; scanf(\s=*p*r*r;

printf(\

A.注释语句书写位置错误 B.存放圆半径的变量r不应该定义为整型

9

C.s=*p*r*r;语句中使用了非法变量 D.输出语句中格式描述符非法 6.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是______。 A.k=k+=k B.-k++ C.k%int(f) D.f=k%m

7.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。 A.a%b%c B.a/b/c C.a=b=c D.a,b,c

8.有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3 9.以下程序运行后的输出结果是______。

#include main()

{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);

printf(\A.2 20 B.2 20.000000 C.100 10 D.50 10.000000 10.已知字母A的ASCII码为65,则以下程序运行后的输出结果是 ______。

#include main() { char a,b;

a='A'+'5'-'3'; b=a+'6'-'2'; printf(\A.6771 B.67G C.CG D.C71 11.表达式3.6-5/2+1.2+5%2的值是______。

A.3.3 B.3.8 C.4.3 D.4.8

12.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。

A.++x,y=x-- B.x+1=y (反了) C.x=x+10=x+y (x+10=x+y赋值报错) D.double(x)/10

13.以下程序运行后的输出结果是________。 #include main()

{ int x,y,z; x=y=1;

z=x++,y++,++y;

printf(\A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 14.以下选项中,值为1的表达式是________。

A.1-'0' B.1-'\\0' C. '1'-0 D. '\\0'-'0' 15.设有定义:int k=0;,以下选项的________与其他三个表达式的值不相同。 A.k++ B.k+=1 C.++k D.k+1 16.执行以下程序后的输出结果是________。

10

#include 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 (右边表达式的值为1.9,赋值给z舍弃小数) B.1.9 C.2 30.以下程序运行后输出的结果是________。 #include main()

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

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

11

D.2.4

printf(\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<回车> ,则叙述正确的是______。

12

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