福建省二级c语言复习资料详解.docx
- 文档编号:5701904
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:130
- 大小:173.96KB
福建省二级c语言复习资料详解.docx
《福建省二级c语言复习资料详解.docx》由会员分享,可在线阅读,更多相关《福建省二级c语言复习资料详解.docx(130页珍藏版)》请在冰豆网上搜索。
福建省二级c语言复习资料详解
福建省高校非计算机专业
计算机等级考试二级C语言习题集目录
第一部分:
选择题(40分,20小题/套)3
概述3
语法基础4
控制结构8
数组12
函数15
指针20
结构体和共用体23
链表26
枚举、自定义类型和位运算31
文件33
第二部分:
改错题(每小题10分,2小题/套)36
第1套37
第2套38
第3套39
第四套40
第5套41
第6套42
第7套43
第8套45
第9套46
第10套46
第11套47
第三部分:
程序填空题48
第1套48
第2套49
第3套51
第4套52
第5套54
第6套56
第7套57
第8套59
第9套61
第10套63
第11套65
第四部分:
编程题(每小题8分,2小题/套)66
第1套67
第2套69
第3套71
第4套73
}74
第5套74
第6套77
第7套79
第8套81
第9套83
第10套85
第11套87
第五部分:
答案88
选择题答案88
改错题答案89
第1套89
第2套90
第3套90
第4套90
第5套90
第6套90
第7套91
第8套91
第9套91
第10套91
第11套92
填空题答案92
第1套92
第2套92
第3套92
第4套93
第5套93
第6套93
第7套94
第8套94
第9套94
第10套95
第11套95
编程题答案95
第1套95
第2套96
第3套97
第4套98
第5套98
第6套99
第7套99
第8套100
第9套101
第10套101
第11套102
第一部分:
选择题(40分,20小题/套)
概述
1、下面关于C语言的叙述中,正确的是(D)
A.每行只能写一条语句B.程序中必须包含有输入语句
C.main函数必须位于文件的开头D.每条语句最后必须有一个分号
2、下面关于C语言的叙述中,错误的是(B)
A.若一条语句较长,也可分写在下一行上
B.构成C语言源程序的基本单位是表达式
C.C语言源程序中大、小写字母是有区别的
D.一个C语言源程序可由一个或多个函数组成
3、关于C语言数据类型的叙述,正确的是(C)
A.枚举类型不是基本类型B.数组不是构造类型
C.变量必须先定义后使用D.不允许使用空类型
4、C程序中main函数的位置(C)
A.必须在最开始B.必须在系统库函数后面
C.可以在自定义函数后面D.必须在最后
5、C语言的函数体由(B)括起来
A.()B.{}C.[]D./**/
6、关于C语言的叙述中,不正确的是(D)
A.C程序可由一个或多个函数组成B.C程序必须包含一个main()函数
C.C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面
7、一个程序的执行是从(B)
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)是正确的浮点数
A.e3B..62C.2e4.5D.123
20、下列不属于C语言关键字的是(B)
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的值依次为(C)
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的值依次为(C)
A.3,3B.4,4C.4,3D.3,4
28、若变量已正确定义并赋值,符合C语言语法的表达式是(A)
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)
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)D.i%(-3)
31、若有定义:
intx;则语句x=(2*3)+6%5;运行后,x的值是(B)
A.8B.7C.6D.5
32、下面关于C语言变量的叙述中,错误的是(C)
A.可以用const关键字定义变量B.在C程序中,SUM和sum是不同的变量
C.变量名必须由字母或下划线组成D.变量的类型确定了变量的取值范围
33、若有定义:
intx=5,y=6;则表达式x=(y==6)的值为(B)
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--)的值为(B)
A.1B.0C.6D.7
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
40、若有定义:
inti,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)
A.7B.8C.9D.10
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
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,正确的函数调用是(B)
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.123412312B.12341234123412341231231231212
C.1234+1234+1234D.1234+123+12
51、已有如下定义和输入语句,
inta;charc1,c2;
scanf(“%d%c%c”,&a,&c1,&c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(B)
A.10ABB.10ABC.10ABD.10AB
52、以下程序段的运行结果是(A)
inta=0,b=0,c=0;
if(a&&++b)
c++;
printf(“%d,%d\n”,b,c);
A.0,0B.1,2C.2,2D.1,0
53、以下程序的运行结果是(D)
voidmain()
{
inta=65;
charc=’A’;
printf(“%x,%d”,b,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的值为偶数时,表达式的值为”假”。 则不能满足要求的表达式是(C) A.a%2==1B.! (a%2==0)C.! (a%2)D.a%2 63、若有定义: intx=3,y=4,z=5;则值为0的表达式是(D) 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、以下运算符中优先级最低的是(D) A.< 67、已知doublea=5.2;则正确的赋值表达式是(A) A.a+=a-=(a=4)*(a=3)B.a=a*3=2 C.a%3D.a=double(-2) 68、已知chara='R';则正确的赋值表达式是(A) A.a=(a++)%4B.a+2=3C.a+=256--D.a=’\078’ 69、已知inta=’R’;则正确的表达式是(A) A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+3 70、设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是(D) A.x*=y-4B.x*=yC.x=y+4D.x+=y 71、若有定义: floatx=3.5,intz=8;则表达式x+z%3/4的值为(B) A.3。 75B.3.5C.3D.4 72、设有语句intx=3,y=3,a=1,b=2;表达式(x=a>b)&&(y=b>a)的值是(D) 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) 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的值是(C) 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) printf(“%d\n”,a); else printf(“%d\n”,++a); A.2B.11C.3D.12 79、以下程序的运行结果是(B) 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语句(B)与赋值语句: 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、以下程序段运行的结果是(C) 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;} 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的值为(D) intx=6,y=5; inta; a=(--x==y++)? x: y+1 A.0B.1C.6D.5 84、以下程序的运行结果是(C) voidmain() { intn=’e’; switch(n--) { 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”); case‘d’: printf(“warn”); } } A.passB.warnC.passwarnD.error 86、以下程序的运行结果是(D) voidmain() { intn=5; if(n++>6) 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;n=n+i;} A.4B.3C.2D.1 95、有以下程序: voidmain() { inti; for(i=0;i<3;i++) switch(i) { case1: printf(“%d”,i); case2: pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建省 二级 语言 复习资料 详解