C语言选择题题库2 下载本文

5.s是int型变量,且S=6,则下面表达式:s%2+( s+1)%2的值为 1 6.若a是int型变量,则计算表达式:a=25/3%3后a的值为 2

7.若x和n均是int型变量,且x和n的初值均为5,则计算表达式:x+=n++后x的值为10,n的值为6。

8.假设所有变量均为整型,则表达式:(a=2,b=5,a++,b++,a+b)的值为9。

9.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为'f'

10.假设m是一个三位数,从左到右用a,b,c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是(m/10)*100+m/100*10+m 11.若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式: (float)(a+b)/2+(int)x%(int)y的值为3.500000 12.执行语句“printf(“%d”,(a=2)&&(b=-2));”后的输出结果是 1。 13.已知int y=4,x=6,=2,d;执行语句d=(++x,y++),z+2后d的值为 4。

14.定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是1.500000表达式 y+=x++的值是6.700000。

15.定义;int m=5,n=3;则表达式m=(m=1,n=2,n-m)的值1,不知道m+=m-=(m=1)*(n=2)的值是-2。若再进行下述赋值;m=1,2,n++;则m的值是1,n 的值是4。 16。

第3章C语言程序的控制结构 3.1顺序结构程序设计 一、选择题

1.下列语句中,符合语法的赋值语句是(B) A.a=10 B.x=y==20 C.i++ D.m=2,n=5 2.下列语句中,正确的语句是(C) A.int x=y=z=0 B.int z=(x+y)++ C.x=+3==2 D.x%=2.5 3以下叙述中错误的是(C) A.C语句必须是以分号结束

B.复合语句在语法上被看作一条语句

C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 4.下列程序的输出是(C) #includevoid main()

{int a=011,b=101;printf(“\\n%x,%o”,++a,b++)} A.12,145 B.9,145 C.a,145 D.a,5 5.以下选项中不是C语句的是(C) A.{inti;i++;printf(“%d\\n”,i);} B.; C.a=5,c=10 D.{;}

6.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序编译时出错。 main(){intr;float;scanf(“%d”,&r);s=圆周率*r*r;printf(“s=%f\\n”,s);程序出错的原因是(D) A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型 C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

7.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语言组是(C) 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

8.设有如下程序段:int x=2002,y=2003;printf(“%d\\n”,(x,y));则以下叙述中正确的是输出值为2003 9.已知字符‘a‘的ASCII码为97,则下述程序段(C) char ch='a';int k=12;printf(“%x,%o”,ch,k);printf(“k=%%d”,k); 答案:C.输出为61,14,k=%d 10.下述程序的输出结果是(B)

#includemain(){int x=023;printf(“%d”,--x);}

A.17 B.18 C.23 D.24 11.下述程序的输出结果是(D) #includemain(){int k=11;printf(“k=%d,k=%o,k=%x\\n”,k,k,k);}答案:D.k=11,k=13,k=b 12.有如下定义:float x;unsigned;则(B)是合法的输入语句。

答案:B.scanf(“óo”,&x,&y) 13.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按方式(D)输入数据int k1,k2,k3,k4;scanf(“%d%d”,&k1,&k2); scanf(“%d%d”,&k3,k4);

A.1020 B.10 20 102010 20 C.10,20 D.10 20 10,20,10,2014.有以下程序: main(){int a=666,b=888;printf(“%d\\n”,a,b);} A.错误信息 B.666 C.888 D.666,888

15.已知字符A的ASCII码值是65,以下程序(C)

#includemain(){chara=‘A';intb=20;printf(“%d,%o”,(a=a+1,a+b,b),a+‘a'-‘A',b);} A.表达式非法,输出零或不定值

B.因输出项过多,无输出或输出不定值 C.输出结果为20,142 D.输出结果为20,1541,20

16.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于(C) A.M==0 B.M==1 C.M!=0 D.M!=1

17.若变量c定义为float类型,当从终端输入283.1900后按回车键,能给变量c赋以283.19的输入语句是(D) A.scanf(“%f”,c) B.scanf(“%8.4f”,&c) C.scanf(“%6.2f”,&c) D.scanf(“?”,&c)

18.设有定义:long x=-23456789L;则以下能够正确输出变量x值的语句是(B) A.printf(“x=%d\\n”,x) B.printf(“x=\\n”,x) C.printf(“x=?1\\n”,x) D.printf(“x=%LD\\n”,x) 19.输入一个华氏温度,要求输出摄氏温度。计算公式为:c=5/9(F-32),以下程序正确的是(B) 答案:main(){float c,F;scanf(“%f”,&F);c=5*(F-32)/9;printf(“摄氏温度:%f\\n”,n);} 20.以下程序的输出结果是(D)

#includemain(){int k=17;printf(“%d,%o,%x\\\\n”k,k,k);} A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17,21,11 21.下列程序执行后的输出结果是(A)

#includemain(){int x=‘f';printf(“%c\\n”,‘A’+(x-‘a'+1); A.G B.H C.I D.J

22.语句printf(“a\\bre\\'hi\\'y\\\\\\bou\\n”);的输出结果是(C) 答案:C。re'hi'you

23.有如下程序:

#includemain(){int y=3,x=3,z=1;printf(“%d%d\\n”,(++x,y++),z+2);}运行该程序的输出结果是(D)

A.3 4 B.4 2 C.4 3 D.3 3 24.若变量已正确说明为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B)

A.10<回车>22<回车>33<回车> B.10.0,22.0,33.0<回车> C.10.0<回车>22.0 33.0<回车> D.10 22<回车> 33<回车> 25.以下程序的输出结果是(C)

#includemain(){int a=5,b=4,c=6,d;printf(“%d\\n”,d=a>b(a>ca:c):(b));} A.5 B.4 C.6 D.不确定 二.填空题

1.要用以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是a=5.0,4,c=3 int b,c;floata;scanf(“a=%f,%d,c=%d”,&a,&b,&c.; 2.以下程序输出的结果是 0

#includemain(){int a=5,b=4,c=6,d;d=(a>b>c);printf(“%d\\n”,d);}

3.假设变量a和b均为整型,以下语句可以不借助任何变量把a,b中的值进行交换。请填空。a+=b;b=a-b;a-=b

4.若x为int型变量,则执行以下语句后x的值是-14 x=7;x+=x-=x+x

5.有一输入函数scanf(“%d”,k);则不能使float类型变量k得到正确数值的原因是末指明变量k的地址格式控制符与变量类型不匹配

6.已有定义int a;float b,x;char c1,c2;为使a=3,b=6.5,x=12.6,c1=‘a'.c2=‘A',正确的sanf 函数调用语句是sanf(“%d%f%f%c%c”,&a,&b,&x,&c1,&c2);输入数据的方式为36.512.6aA 7.若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正确的格式输入形式是AB

8.设x,y和z均为int型变量,则执行语句x=(y+(z=10)+5)-5; 后,x、y和z的值是10 15 10

9.已有定义int x;float y;且执行scanf(“=%f”,&x,&y);语句时,从第一列开始输入数据12345[空格]678<回车>,则x的值为123 ,y的值为45.000000 10.以下程序的输出结果是2,1

main(){int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d\\n”,a,b);}

3.2 选择结构程序设计

一。选择题

1.逻辑运算符两侧运算对象的数据类型(D) A.只能是0或1 B.只能是0或非0的整数

C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下列运算符中优先级最高的是(B) A.< B.+ C.&& D.!=

3.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D) A.‘x'&&‘y' B.x<=y

C.x||y+z&&y-z D.!((x

4.已知x=43,ch=‘A',y=0;则表达式(x>=y&&ch<‘B’&&!一y)的值为(C) A.0 B.语法错误 C.1 D.“假”

5.若希望当A的值奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C)

A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 6.判断char型变量ch是否为大写字母的正确表达式是(C) A.‘A'<=ch<=‘Z' B.(ch>=‘A')&(ch<=‘Z'

C.(ch>=‘A')&&(ch<=‘Z') D.(‘A'<=ch)AND(‘Z'>=ch)

7.判断char型变量c1是否为小写字母的正确表达式为:D.(c1>=‘a')&&(c1<=‘z') 8.以下程序的运行结果是(B)

#include“stdio.h”void main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,啊,吧);}

A.6,1 B.2,1 C.6,0 D.2,0 9.执行以下语句后a的值为【1】(C),b的值为【2】(A) int a,b,c;a=b=c=1;++a||++b&&++c; 【1】A.错误 B.0 C.2 D.1 【2】A.1 B.2 C.错误 D.4

10.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是(B) if(x>y)z=x;x=y;y=z;

A.x=10,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10 D.x=20,y=30,z=20 11.下面程序的输出结果是(C)

main(){int i=1,j=1,k=2;if((j++||k++)&&i++);printf(“%d,%d,%d\\n”,i,j,k);} A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3

12.以下if语句语法正确的是(B)B.if(x>0){x=x+y;printf(“%f”,x;}else printf(“%f”,-x);

13.以下不正确的语句为(B)B.if(x=y)&&(x!=0)x+=y 14.以下程序的运行结果是(C)

#include void main(){int m=5;if(m++>5)printf(“%d\\n”,m); else printf(\A.4 B.5 C.6 D.7

15.方a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是(B.2) if(a

#include\A.3 B.2 C.1 D.0

17.若运行时给变量x输入12,则以下程序的运行结果是(A)

#include\A.0 B.22 C.12 D.10