C语言选择题题库2.docx
《C语言选择题题库2.docx》由会员分享,可在线阅读,更多相关《C语言选择题题库2.docx(51页珍藏版)》请在冰豆网上搜索。
C语言选择题题库2
第1章C语言程序设计概述
一.选择题
1.以下叙述中正确的是(A)
A.C语言程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C语言程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语言语句之间的分隔符,不是语句的一部分
2.以下叙述中错误的是(A)
A.用户所定义的标识符允许使用关键字
B.用户所定义的标识符应尽量做到“见名知意”
C.用户所定义的标识符必须以字母或下划线开头
D.用户所定义的标识符中,大,小写字母代表不同标识
3.下列关于C语言用户标识符的叙述中正确的是(B)
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
4.以下关于C语言标识符的描述中,正确的是(D)
A.标识符可以由汉子组成B.标识符只能以字母开头
C.关键字可以作为用户标识符D.Area与area是不同的标识符
5.以下正确叙述是(C)
A.在C语言中,main函数必须位于文件的开头
B.C语言每行只能写一条语句
C.C语言本身没有输入,输出语句
D.对一个C语言进行编译预处理时,可检查宏定义的语法错误
6.下面说法正确的是(C)
A.C程序由符号构成B.C程序由标识符构成
C.C程序由函数构成D.C程序由C语句构成
7.以下叙述不正确的是(D)
A.一个C源程序可以由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句后面
8.C语言规定:
在一个源程序中,main函数的位置可以任意
9.以下不能定义为用户标识符的是(D)
A.scanfB.VoidC._3comD.int
10.以下不合法的用户标识符是(C)
A。
j2_KEYB.DoubleC.4dD._8_
11.下列四组选项中,均不是C语言关键字的是(A)
A.defineIFtypeB.getccharprintf
C.includescanfcaseD.whilegopow
12.以下不能定义为用户标识符的是(D)
A.MainB._0C._intD.sizeof
13.以下不合法的用户标识符是(C)
A。
j2_KEYB.DoubleC.4d_8_D.main
14.以下选项中合法的用户标识符是(B)
A.longB._2TestC.3DmaxD.A.dat
15.以下选项中不合法的用户标识符是(A)
A.abc.cB.fileC.MainD.Printf
16.以下选项中不合法的用户标识符是(C)
A._12AbB.includeC.3abcD.Int
17.以下叙述正确的是(B)
A.可以把define和if定义为用户标识符
B.可以把define定义为用户标识符,但不能把if定义为用户标识符
C.可以把if定义为用户标识符,但不能define定义为用户标识符
D.define和if都不能定义为用户标识符
18.一个C语言的执行是从(A)
A.本程序的main函数开始,到main函数结束
B.本程序文件中的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
19.C语言程序的基本单位是语句
20.以下叙述中正确的是(C)
A.程序应尽可能短
B.为了编程的方便,应当根据编程人员的意图使程序的流程随意转移
C.虽然注释会占用较大篇幅,但程序中还是应尽可能详细地注释
D.在VC环境下,运行的程序就是源程序
二填空题
1.C语言程序是由函数构成的,其中并且只有一个主函数。
C语言程序的执行总是由主函数开始,并且在主函数中结束。
2.C语言源程序文件的扩展名是.C经过编译后,生成的扩展名是.OBJ,经过连接后,生成的扩展名是.EXE。
3.C语言的函数体由“{”开始,用符号“}”结束;函数体的前面是变量说明部分,其后是执行语句部分。
4.一个C源程序中至少应包括一个主函数
5.C语言程序的注释是以/*开头,以*/结束的。
注释对程序运行不起任何作用。
第2章数据类型与表达式
一选择题
1.以下选项中不属于C语言的类型的是(D)
A.signedshortintB.unsignedlongint
C.ungnedintD.longshort
2.以下选项中可作为C语言合法整数的是(C)
A.10110BB.0386C.0xffaD.x2a2
3.以下选项中合法的实型常数是(C)
A.5E2.0B.E-3C.2E0D.1.3E
4.以下选项中属于C语言的数据类型是(A)
A.复数型B.逻辑数C.双精度型D.集合型
5.以下选项中合法的字符常量是(B)
A.“B”B.‘\010'C.68D.D
6.下面正确的字符常量是(C)
A.“c”B.‘\\'C.‘W'D.‘’
7.下面不正确的字符串常量是(A)
A.‘abc'B.“12‘12”C.“0”D.“”
8.在C语言中,char型数据在内存中的存储形式是(D)
A.补码B.反码C.原码D.ASCII码
9.以下所列的C语言常量中,错误的是(B)
A.0xFFB.1.2e0.5C.2LD.‘\72'
10.表达式3.6-5/2+1.2+5%2的值是(D)
A.4.3B.4.8C.3.3D.3.8
11.有以下定义语句:
doublea,b;intw;longc;若各变量已正确赋值,则以下选项中在的表达式是(C)
A.a=a+b=b++B.w%((int)a+BC.(c+w)%(int)aD.w=a%b
12.有以下程序
#includemain(){intm=12,n=34;printf(“%d%d,m++,n++);printf(“%d%d\n”,n++,++m);}程序运行后的结果是(C)
A.12353514B.12353513C.12343514D.12343513
13有以下程序:
#includemain(){inta1=3,a2=9;printf(“%d\n”,(a1,a2));}
以下叙述中正确的是(B)
A.格式输出3B.程序输出9C.格式说明符不足,编译出错D.程序运行时产生错误信息
14..有以下程序
#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,n,y,z);}程序运行后的结果是(C)
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
15.若有定义:
inta=8,b=5,c;执行语句“c=a/b+0.4;”后,c的值为1
16.若变量a是int类型,并执行了语句:
a=‘A’+1.6;则正确的叙述是(D)
A.a的值是字符CB.a的值是浮点型
C.不允许字符型和浮点型相加D.a的值是字符‘A'的ASCII值加上1
17.下列语句中,正确的语句是(C)
A.intx=y=Z==0
B.intZ=(x+y)++
C.x=+3==2
D.x%=2.5
18.以下能正确地定义整型变量a,b和c,并为它们赋初值5的语句是(C)
A.inta=b=c=5
B.inta,b,c=5
C.inta=5,b=5,c=5
D.a=b=c=5
19.已知各变量的类型说明如下:
intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言的表达式是(A)
A.x%(-3)B.w+=-2
C.k=(a=2,b=3,a+BD.a+=a-=(b=4)*(a=2)
20.若有说明语句:
char='\72';则变量c(A)
A.包含1个字符B.包含2个字符
C.包含3个字符D.说法不合法,c的值不确定
21.假定w,x,y,z,m均为int型变量,有如下程序段:
w=1;x=2;y=3;Z=4;m=(ww:
x;m=(mm:
y;m=(mm:
Z;则该程序运行后,m的值是(C)
A.4B.3C.1D.2
22.若x,i,j和k都是int型变量,则计算下面表达式x=(i=4,j=16,k=32)后,x的值为(C)
A.4B.16C.32D.52
23.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)
A.7B.8C.6D.2
24.设以下变量均为int类型,则值不等于7的表达式是(C)
A.(x=y,x+y,x+1)B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)
25.下列关于运算符优先顺序的描述中正确的是赋值运算符〈逻辑运算符〈关系运算符〈算术运算符
26.若有代数式bc/3ac,则不正确的C语言表达式是(C)
A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3
27.已知字母A的ASCII码为十进制数65,且c2为字型符,则执行语句c2='A'+'6'-'3'后,c2中的值为68
28.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num;后sum的值为8
29.设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c30.若有定义:
inta=7;floatx=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是2.50000031.设x,y,z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为32
32.表达关系X<=Y<=Z的C语言表达式为(X<=Y)&&(Y<=Z)
33.运行结果为4的表达式是C.inti=1,j=1;i+=j+=2
34.表达式(a=3*5,a*5),a+5的值是A.20
35.设有整型变量a,b,c,它们的初值是1,运行表达式++a||++b&&++c后,a,b,c的值分别是A.2,1,1
36.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是B.(exp!
=0)
37.当c的值不为0时,在下列选项中能正确将c的值赋给变量a,b的是C.(a=c)&&(b=c)
38.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是C.-12
二填空题
1.在C语言中,整数有三种表达方式:
十进制数,八进制数,十六进制数。
2.C语言中,用关键字int定义整型变量,用关键字float定义单精度型变量,用关键字double定义双精度型变量。
3.执行以下语句后m的值为3intw,x,y,z,m;w=3;x=4;y=5;z=6;m=(wx;m=(my;m=(mz;
4.有以下定义:
intm=5,y=2;则计算表达式y+=y-=m*=y后的y值是-16
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%10)*100+m/100*10+m%10
11.若有定义:
inta=2,b=3;floatx=3.5,y=2.5;则下面表达式:
(float)(a+b)/2+(int)x%(int)y的值为3.500000
12.执行语句“printf(“%d”,(a=2)&&(b=-2));”后的输出结果是1。
13.已知inty=4,x=6,=2,d;执行语句d=(++x,y++),z+2后d的值为4。
14.定义:
doublex=3.5,y=3.2;则表达式(int)x*0.5的值是1.500000表达式
y+=x++的值是6.700000。
15.定义;intm=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=10B.x=y==20C.i++D.m=2,n=5
2.下列语句中,正确的语句是(C)
A.intx=y=z=0B.intz=(x+y)++
C.x=+3==2D.x%=2.5
3以下叙述中错误的是(C)
A.C语句必须是以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
4.下列程序的输出是(C)
#includevoidmain()
{inta=011,b=101;printf(“\n%x,%o”,++a,b++)}
A.12,145B.9,145C.a,145D.a,5
5.以下选项中不是C语句的是(C)
A.{inti;i++;printf(“%d\n”,i);}B.;
C.a=5,c=10D.{;}
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-bB.t=a,a=b,b=t
C.a=t;t=b;b=aD.t=b;b=a;a=t
8.设有如下程序段:
intx=2002,y=2003;printf(“%d\n”,(x,y));则以下叙述中正确的是输出值为20039.已知字符‘a‘的ASCII码为97,则下述程序段(C)
charch='a';intk=12;printf(“%x,%o”,ch,k);printf(“k=%%d”,k);
答案:
C.输出为61,14,k=%d
10.下述程序的输出结果是(B)
#includemain(){intx=023;printf(“%d”,--x);}
A.17B.18C.23D.2411.下述程序的输出结果是(D)
#includemain(){intk=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);}答案:
D.k=11,k=13,k=b
12.有如下定义:
floatx;unsigned;则(B)是合法的输入语句。
答案:
B.scanf(“%f3o”,&x,&y)13.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按方式(D)输入数据intk1,k2,k3,k4;scanf(“%d%d”,&k1,&k2);
scanf(“%d%d”,&k3,k4);
A.1020B.102010201020C.10,20D.102010,20,10,2014.有以下程序:
main(){inta=666,b=888;printf(“%d\n”,a,b);}
A.错误信息B.666C.888D.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==0B.M==1C.M!
=0D.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(“%8f”,&c)
18.设有定义:
longx=-23456789L;则以下能够正确输出变量x值的语句是(B)
A.printf(“x=%d\n”,x)B.printf(“x=%1d\n”,x)
C.printf(“x=%8d1\n”,x)D.printf(“x=%LD\n”,x)
19.输入一个华氏温度,要求输出摄氏温度。
计算公式为:
c=5/9(F-32),以下程序正确的是(B)
答案:
main(){floatc,F;scanf(“%f”,&F);c=5*(F-32)/9;printf(“摄氏温度:
%f\n”,n);}
20.以下程序的输出结果是(D)
#includemain(){intk=17;printf(“%d,%o,%x\\n”k,k,k);}
A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11
21.下列程序执行后的输出结果是(A)
#includemain(){intx=‘f';printf(“%c\n”,‘A’+(x-‘a'+1);
A.GB.HC.ID.J
22.语句printf(“a\bre\'hi\'y\\\bou\n”);的输出结果是(C)
答案:
C。
re'hi'you
23.有如下程序:
#includemain(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}运行该程序的输出结果是(D)
A.34B.42C.43D.33
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.033.0<回车>D.1022<回车>33<回车>
25.以下程序的输出结果是(C)
#includemain(){inta=5,b=4,c=6,d;printf(“%d\n”,d=a>b(a>ca:
c):
(b));}
A.5B.4C.6D.不确定
二.填空题
1.要用以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是a=5.0,4,c=3
intb,c;floata;scanf(“a=%f,%d,c=%d”,&a,&b,&c.;
2.以下程序输出的结果是0
#includemain(){inta=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.已有定义inta;floatb,x;charc1,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的值是101510
9.已有定义intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句时,从第一列开始输入数据12345[空格]678<回车>,则x的值为123,y的值为45.000000
10.以下程序的输出结果是2,1
main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d\n”,a,b);}
3.2选择结构程序设计
一。
选择题
1.逻辑运算符两侧运算对象的数据类型(D)
A.只能是0或1B.只能是0或非0的整数
C.只能是整型或字符型数据D.可以是任何类型的数据
2.下列运算符中优先级最高的是(B)
A.=
3.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)
A.‘x'&&‘y'B.x<=y
C.x||y+z&&y-zD.!
((xz||1)
4.已知x=43,ch=‘A',y=0;则表达式(x>=y&&ch<‘B’&&!
一y)的值为(C)
A.0B.语法错误C.1D.“假”
5.若希望当A的值奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是(C)
A.A%2==1B.!
(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”voidmain(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,啊,吧);}
A.6,1B.2,1C.6,0D.2,0
9.执行以下语句后a的值为