C语言模拟题十套附答案.docx
- 文档编号:23258764
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:145
- 大小:131.31KB
C语言模拟题十套附答案.docx
《C语言模拟题十套附答案.docx》由会员分享,可在线阅读,更多相关《C语言模拟题十套附答案.docx(145页珍藏版)》请在冰豆网上搜索。
C语言模拟题十套附答案
第一部分:
选择题(40分,20小题/套)
概述
1、下面关于C语言的叙述中,正确的是(D)
A.每行只能写一条语句B.程序中必须包含有输入语句
C.main函数必须位于文件的开头D.每条语句最后必须有一个分号
2、下面关于C语言的叙述中,错误的是(B)
A.若一条语句较长,也可分写在下一行上
B.构成C语言源程序的基本单位是表达式
C.C语言源程序中大、小写字母是有区别的
D.一个C语言源程序可由一个或多个函数组成
3、关于C语言数据类型的叙述,正确的是()
A.枚举类型不是基本类型B.数组不是构造类型
C.变量必须先定义后使用D.不允许使用空类型
4、C程序中main函数的位置(C)
A.必须在最开始B.必须在系统库函数后面
C.可以在自定义函数后面D.必须在最后
5、C语言的函数体由(B)括起来
A.()B.{}C.[]D./**/
6、关于C语言的叙述中,不正确的是(C)
A.C程序可由一个或多个函数组成B.C程序必须包含一个main()函数
C.C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面
7、一个程序的执行是从(C)
A.本程序的第一个函数开始,到最后一个函数结束
B.本程序的main函数开始,到main函数结束
C.本程序的main函数开始,到最后一个函数结束
D.本程序的第一个函数开始,到main函数结束
8、结构化程序设计的三种基本结构是(C)
A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构
C.顺序结构、分支结构、循环结构D.分支结构、循环结构、嵌套结构
9、调试程序是指对程序进行(C)
A.编辑B.编译C.查错和排错D.连接
10、C语言中,复合语句的构成是将一系列语句置于(C)
A.begin与end之间B.一对圆括号“()”之间
C.一对花括号“{}”之间D.一对方括号“[]”之间
11、构成C语言源程序的基本单位是(D)
A.语句B.过程C.表达式D.函数
语法基础
12、在C语言中,正确的用户标识符是(B)
A.3fB._forC.structD._f.5
13、C语言的基本数据类型包括(A)
A.整型、实型、字符型B.整型、实型、字符型、逻辑型
C.整型、字符型、逻辑型D.整型、实型、逻辑型
14、以下(D)是正确的常量
A.E-5B.1E5.1C.‘a12’D.32766L
15、以下(D)是正确的变量名
A.a.beeB.–p11C.intD.p_11
16、以下(C)是正确的字符常量
A.“c”B.‘//”C.‘W’D.“\32a”
17、以下(A)是不正确的字符串常量
A.‘abc’B.“12’12”C.“0”D.““
18、C语言的整型数据在内存中的存储形式是(C)
A.原码B.反码C.补码D.ASCII码
19、以下(B)是正确的浮点数(e后面的数必须为整数e前面必须要有数字
A.e3B..62C.2e4.5D.123
20、下列不属于C语言关键字的是(D)
A.continueB.integerC.staticD.signed
21、C语言的字符型数据在内存中的存储形式是(D)
A.原码B.补码C.反码D.ASCII
22、在C语言中,变量所分配的内存空间大小是(A)
A.由变量的类型决定B.由用户自己决定
C.任意的D.均为两个字节
23、若有定义:
inta=2;则正确的赋值表达式是(A)
A.a-=(a*3)B.double(-1)C.a*3D.a*4=3
24、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()
A.3,3,4B.4,4,3C.4,4,4D.3,4,3
25、语句a=(3/4)+3%2;运行后,a的值为(B)
A.0B.1C.2D.3
26、以下四项中,符合C语言语法的语句是(C)注意分号
A.inta+b=c;B.inta=12:
b=12:
c=12;
C.inta=12,b=12,c=12;D.inta,b=12,floatc=21
27、若有定义:
intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()
A.3,3B.4,4C.4,3D.3,4
28、若变量已正确定义并赋值,符合C语言语法的表达式是()
A.a=8+b+c,a++B.a=3aC.int(12.3%4)D.a=a+1=c+b
29、若有定义:
inta,b;doublex;则以下不符合C语言语法的表达式是()
A.x%(-3)B.a+=-1C.a=b=2D.x=a+b
30、若有定义:
intx=2,y=3;floati;则以下符合C语言语法的表达式是(B)
A.x=x*3=2B.x=(y==1)C.i=float(x)(形式错误:
正确的是:
i=(float)x是将数据类型括号起来)D.i%(-3)
31、若有定义:
intx;则语句x=(2*3)+6%5;运行后,x的值是()
A.8B.7C.6D.5
32、下面关于C语言变量的叙述中,错误的是(C)
A.可以用const关键字定义变量B.在C程序中,SUM和sum是不同的变量
C.变量名必须由字母或下划线组成(可是是字母和数字组合)D.变量的类型确定了变量的取值范围
33、若有定义:
intx=5,y=6;则表达式x=(y==6)的值为()
A.5B.1C.6D.0
34、下面叙述正确的是(B)
A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价
C.++5与6等价D.‘A’与”A”等价
35、下面叙述中,错误的是(A)
A.C语言基本的算术运算符不包含模运算符”%”
B.算术运算符的优先级高于关系运算符
C.自加和自减运算符的结合方向是”自右向左”
D.C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行
36、下面叙述正确的是(A)
A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)
C.‘A’*’B’是不合法的D.“A”+”B”是合法的只能字符间运算
37、若有定义:
inti=1,j=5;则表达式(++j)*(i--)的值为(C)
A.1B.0C.6D.7(i先运算再减减,加了括号也一样
38、设整型变量a为5,使b不为2的表达式是(C)
A.b=(++a)/3B.b=6-(--a)C.b=a%2D.b=a/2
39、若有定义:
inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)
A.1B.0C.2D.3(&&的优先级高于||,即先进行++b&&++c运算,~,<<,>>,&,^(异或),|优先级依次降低)
40、若有定义:
inti,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)
A.7B.8C.9D.10(i++要算完)
41、若有定义:
inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)
A.7B.8C.9D.10
42、若有定义:
inti=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)
A.8B.6C.7D.5红字部分先算
43、若已定义:
inti=3,k;则语句k=(i--)+(i--);运行后k的值为(C)
A.4B.5C.6D.7(i先运算再--
44、C语言的运算符按运算对象的个数可以分为(C)
A.单目运算符一种B.单目和双目运算符
C.单目、双目和三目运算符D.单目、双目、三目和四目运算符
45、若已定义:
floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)
A.scanf(“%5.2f”,&m);B.scanf(“%3.2f”,&m);
C.scanf(“6.2f”,&m);D.scanf(“%6f”,&m);
46、已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()
A.scanf(“%ld”,&a);B.scanf(“%lf”,&a);
C.scanf(“%c”,&a);D.scanf(“%u”,&a);
47、已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)
A.scanf(“%d”,&a);B.scanf(“%lf”,&a);不可能是实数C.scanf(“%c”,&a);D.scanf(“%u”,&a);十进制无符号
48、putchar()函数的功能是向终端输出(B)
A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式
49、以下程序段运行后的输出结果是(C)
intk=11;
printf(“k=%d,k=%o,k=%x\n”,k,k,k);
A.k=11,k=13,k=cB.k=11,k=12,k=13
C.k=11,k=13,k=bD.k=11,k=13,k=a
50、若有定义:
intx=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)
A.B.
C.1234+1234+1234D.1234+123+12
51、已有如下定义和输入语句,
inta;charc1,c2;
scanf(“%d%c%c”,&a,&c1,&c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()
A.10ABB.10ABC.10ABD.10AB
52、以下程序段的运行结果是(A)
inta=0,b=0,c=0;
if(a&&++b)(因为a=0又是与运算,故不进行&&后面的运算了)
c++;
printf(“%d,%d\n”,b,c);
A.0,0B.1,2C.2,2D.1,0
53、以下程序的运行结果是()
voidmain()
{
inta=65;
charc=’A’;
printf(“%x,%d”,a,c);
}
A.65,aB.41,aC.65,65D.41,65
54、若已定义:
inta=5;floatb=63.72;以下语句中能输出正确值的是(B)
A.printf(“%d%d”,a,b);B.printf(“%d%2f”,a,b);
C.printf(“%2f%2f”,a,b);D.printf(“%2f%d”,a,b);
55、运行以下程序段时编译出错,其原因是(A)
charc1='8',c2='2008';
printf("%c,%d\n",c1,c2);
A.c2是字符变量,只能赋以字符常量,不能赋以字符串常量
B.字符串要用“2008“表示,而‘2008’不是字符串表示
C.‘2008’只能赋值给字符数组
D.字符变量不能用%d格式输出
56、若已定义:
inta=3,b=15,c;则语句c=a>b;运行后c的值为(B)
A.1B.0C.tD.f
57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)
A.1B.非0的数C.大于0的数D.非0的整数
58、若已定义:
inta=-36,b=-30,c;则语句c=a
A.1B.tC.0D.f(有符号的比较,按负数进行比较)
59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)
A.(y<=800)&&(y>=500)B.(y<=800)AND(y>=500)
C.800>=y>=500D.(y<=800)&(y>=500)
60、若有定义:
intx=3,y=4;则表达式!
x||y的值为(A)(!
,算术运算符,关系运算符,&&,||,赋值运算符优先级依次降低)注意:
表达式的最后结果不是零就是一
A.1B.0C.3D.4
61、若有定义:
inti=7,j=8;则表达式i>=j||i A.1B.变量i的值C.0D.变量j的值 62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。 则不能满足要求的表达式是() A.a%2==1B.! (a%2==0)C.! (a%2)D.a%2 63、若有定义: intx=3,y=4,z=5;则值为0的表达式是() A.‘x’&&yB.x<=y C.x||y+z&&y-zD.! ((x z||1) 64、若有定义: inta=5,b=2,c=1;则表达式a-b A.0B.1C.3D.-1 65、C语言中,能正确表示条件10 A.10 66、以下运算符中优先级最低的是() A.< 67、已知doublea=5.2;则正确的赋值表达式是(A) A.a+=a-=(a=4)*(a=3)B.a=a*3=2 C.a%3(赋值语句必须有“=”)D.a=double(-2) 68、已知chara='R';则正确的赋值表达式是() A.a=(a++)%4B.a+2=3C.a+=256--D.a=’\078’ 69、已知inta=’R’;则正确的表达式是(A) A.a%10B.a=int(3e2)要将(int)C.2*a=a++D.a=a+a=a+3 70、设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是() A.x*=y-4B.x*=yC.x=y+4D.x+=y 71、若有定义: floatx=3.5,intz=8;则表达式x+z%3/4的值为() A.3。 75B.3.5C.3D.4 72、设有语句intx=3,y=3,a=1,b=2;表达式(x=a>b)&&(y=b>a)的值是() A.8B.1C.5D.0 73、若有定义: inta=2,b=3;floatx=3.5,y=2.5; 则表达式(float)(a+b)/2+(int)x%(int)y的值是() A.3.5B.3.0C.2.5D.2.0 74、若有定义: intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)/4的值是(B) A.2.5B.3.5C.4.5D.5.5 75、若有定义: inta=6,b=2;charc1=’a’,c2=’b’;则表达式a+b%5+c2-c1的值是(C) A.7B.8C.9D.表达式错误 76、在下列运算符中,优先级最高的运算符是(C) A.<=B.! =C.! D.|| 77、设有定义: charc;floatf;inti;unsignedu;doubled;下列各表达式的类型分别是(A) 1.u+92.d! =f&&(i+2)3.8.2*i+c A.1.unsigned,2.int,3.doubleB.1.double,2.double,3.double C.1.int,2.double,3.charD.1.unsigned,2.double,3.int 控制结构 78、以下程序段运行时,若从键盘输入10,则输出结果是(D inta; scanf(“%d”,&a); if(a++>10)(先与10比较,再a++;) printf(“%d\n”,a); else printf(“%d\n”,++a);(++a后输出) A.2B.11C.3D.12 79、以下程序的运行结果是() voidmain() { intx,y=1,z; z=-1; if(z==0) z=-z; else x=y>0? 3: 5; printf(“%d\n”,x); } A.-1B.3C.1D.5 80、对于整型变量x,下属if语句()与赋值语句: x=x%2==0? 1: 0;不等价。 A.if(x%2! =0)x=0;elsex=1;B.if(x%2)x=1;elsex=0; C.if(x%2==0)x=1;elsex=0;D.if(x%2==1)x=0;elsex=1; 81、以下程序段运行的结果是() inta,b,c,x; a=b=c=0;x=15; if(! a)x--; elseif(b); if(c)x=3; else x+=4; printf("%d\n",x); A.15B.17C.18D.19 82、若有定义: inta=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为(D if(a {c=a;a=b;b=c;}(c=1,a=2,b=c=1) A.a=1,b=2,c=3B.a=2,b=3,c=1C.a=2,b=3,c=3D.a=2,b=1,c=1 83、以下程序段运行后变量a的值为() intx=6,y=5; inta; a=(--x==y++)? x: y+1 A.0B.1C.6D.5 84、以下程序的运行结果是(C voidmain() { intn=’e’; switch(n--)(n将一直减下去,知道遇到break为止,n=e后面语句没有,所以就输出error,因为后面没跟break,所以继续向下执行直到遇到break为止) { defalut: printf(“error”); case‘a’: case‘b’: printf(“good”);break; case‘c’: printf(“pass”); case‘d’: printf(“warn”); } } A.errorB.goodC.errorgoodD.warn 85、以下程序的运行结果是(C voidmain() { intn=’c’; switch(n++) { defalut: printf(“error”); case‘a’: case‘b’: printf(“good”);break; case‘c’: printf(“pass”); (因为后面没跟break,所以继续往下执行输出warn) case‘d’: printf(“warn”); } } A.passB.warnC.passwarnD.error 86、以下程序的运行结果是(D voidmain() { intn=5; if(n++>6)(n先与6比较,再n++ printf(“%d\n”,n); else printf(“%d\n”,++n);(先++后输出 } A.4B.5C.6D.7 87、下面关于switch语句的叙述中,错误的是(A) A.case后面的表达式可以是关系表达式 B.switch语句是多分支选择语句 C.每一个case后面的值必须互不相同,否则会出现矛盾的现象 D.在执行一个case分支后,可用一个break语句使流程跳出switch语句 88、若有定义: inta=1,b=2,c=3;则以下程序段运行后c的值为(D if(a>b) c=a*b; else c=a-b; A.2B.0C.1D.-1 89、若有定义: intx;以下不会产生死循环的是(A A.for(;(x=getchar())! =’\n’;);B.while (1){x++;} C.for(i=10;;i++);D.for(;;x+=1); 90、在循环语句的循环体中,break语句的作用是(D A.暂停程序的运行B.结束本次循环 C.继续执行break语句之后的循环体各语句 D.提前结束循环,接着执行该循环后续的语句 91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为(A inti,j,count=0; for(i=1;i<=4;i++) { count+=2; printf(“%d”,count); } A.4次B.10次C.16次D.20次 92、在c语言中while循环和do-while循环的主要区别是(B A.do-while循环体内可以使用break语句,while循环体内不能使用break语句 B.do-while的循环体至少无条件执行一次,while的循环体不是 C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句 D.while的循环体至少无条件执行一次,do-while的循环体不是 93、以下程序段运行后,循环体运行的次数为(A) inti=0,x; for(;i<10;i++)x=x+i; A.10B.0C.1D.无限 94、以下程序段运行后变量n的值为(D inti=1,n=1; for(;i<3;i++)(遇到continue后直接返回验证循环条件,不在往下执行 {continue;n=n+i;} A.4B.3C.2D.1 95、有以下程序: voidmain() { inti; for(i=0;i<3;i++) switch(i) { case1: printf(“%d”,i); case2: printf(“%d”,i); case3: printf(“%d”,i); } } 执行后输出的结果是(A A.11122B.01222C.D.120 96、以下程序的运行结果是(C voidmain() { intsum=0,item=0; while(item<5) { item++; sum+=item; if(sum>=6) break;(当sum>=6时马上跳出循环,不在管item是否大于5了 } printf(“%d\n”,sum); } A.10B.15C.6D.7 97、以下程序的运行结果是(B voinmain() { intsum=0,it
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 题十套附 答案