《福建省高校非计算机专业计算机等级考试2 c习题集.docx》由会员分享,可在线阅读,更多相关《福建省高校非计算机专业计算机等级考试2 c习题集.docx(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福建省高校非计算机专业 计算机等级考试2c习题集口录第一部分:选择题(每题2分,20题/套,共40分)一、概述二、语法基础.:、控制结构.四、数组五、函数. 六、指针.七、结构体 八、链表. 九、枚举、 十、文件. 第二部分:和共用体自定义类型和位运算改错题(每题10分,2题/套,共20分).1 .1 .6 .11 .16 .22 .26 .30 .35 .37 .40套套套套套套套套081 S 2345678911 第第第第第第第第第第23445678994444444444.51套套套套套套套 2 3 4 5 6 7 8 第第第第第第第第一:部分:填空题(每题10分,每套抽2题,共20分)
2、.64.66.67.68.83.83.85.87 .88 .91第11套第12套第四部分:编程题(每题10分,2题/套,共20分)第五部分:参考答案一、选择三、填空四、编程附录:福建省高等学校计算机应用水平等级考试:级(C语言)考试大纲第一部分:选择题(每题2分,20题/套,共40分) 一,椀述1.A.2.A.在C语言中,合法的字符常量是(B. HAC.)oABC”D. x41C.3.A.B.C.D.4.A.下面叙述正确的是()0 程序中必须包含有输入语句 main函数必须位于文件的开头错误的叙述是()B.变量按所定义的类型存放数据D.每行只能写一条语句一个C语言源程序可由一个或多个函数组成
3、若一条语句较长,也可分写在下一行上 C程序必须包含一个main()函数构成C语言源程序的基本单元是算术表达式 ()是关于C语言数据类型的正确叙述。C.5.A.c.6.A.7.A.变量必须先定义后使用 枚举类型不是基本类型 main()函数的位置( 必须在自定义函数前面 必须位于程序的最前面C语言函数体由()B.()C.8.A.c.9.A.c.B.D.B.D.括起来。C. ()是不正确的叙述。注释说明只能位于一条语句的后面 C源程序可由一个或多个函数组成一个C语言源程序是由(不允许使用空类型 数组并不是构造类型可以在自定义函数后面 必须在自定义函数后面D.B.C源程序的基本组成单元是函数D.每条
4、语句最后必须有一个分号10.A.11.A.一个主程序和若干子程序组成 若干过程组成结构化程序设计的三种基本结构是 函数结构、判断结构、选择结构 顺序结构、选择结构、循环结构D.C源程序的调试是指对源程序进行 录入与编辑 B.查错与编译C. C语言中,可将一系列语句置于(B.函数组成D.若干子程序组成()。B.平行结构、嵌套结构、函数结构 判断结构、嵌套结构、循环结构c.12.A.13.A.B.C.D.一对尖括号“ v ”之间一对花括号”(之间构成C源程序的基本单位是(语句B.变量以下叙述中正确的是(B.D.()o查错与排错D.连接与运行 )从而构成复合语句。一对圆括号”()”之间 一对方框号“
5、之间C.运算符D.函数C源程序中注释部分可以出现在程序中任意合适的地方一对花括号”(“只能作为函数体的定界符C源程序编译时注释部分的错误将被发现构成C源程序的基本单位是函数,所有函数名都可以由用户命名 二、笛在家砒A.StructB. 5fC._fD.6D. _for16.C语言基本数据类型包括()oA.整型、实型、逻辑型B.整型、实型、字符型C,整型、字符型、逻辑型D.整型、实型、字符串型14.C语言的下列运算符中,优先级最高的运算符是()oA. +B. +=C. IID. !=15.()为正确的用户标识符。17.()为合法的常量。A.52686LB. E-7C. 1.2E-2.1D. El
6、218.()为正确的变量名。A.-kl5B. IntC. k_5D. k.jeep19.()为正确的字符常量。A.AVB. ”24m“C.D. M20.()为非法的字符串常量。A.B. usMC. efgD. 2662”21.C语言整型数据在内存中的代码是用()表示的。A.原码B.反码C.补码D. BCD码22.以下选项中,合法的实型常数是()。A.E-3B. .2E1C. 1E.5D. 1.5E23.下列C语言合法的数据类型关键字是().A.DoubleB. UnsignedC. IntegerD. Char24.TurboC中,int型数据占用的字节数()。A.由用户自己定义B.为2个字节
7、C.是任意的D.等于所用计算机的字长25.Turbo C中,基本数据类型存储空间长度的排列顺序是().A.charintlong intfloatdoubleB.char=intlong intfloatdoubleC.charintlong inl=float=doubleD.char=int=long inlfloat5) printf(M%dnM,a);else printf(M%dn,a-);A. 7B. 4C. 5D. 654. 若已定义noatx;要从键盘输入数据36.582给变量x,则应选用()语句。A.scanf(H%2.3f,&x);B. scanf(M%6f&x);C.sc
8、anf(H%6.3f,&x);D.scanf(H%5.3f&x);55. 若已定义double y;拟从键盘输入一个值赋给变量y,则正确的函数调用是()。A.scanf(%d&y);B.scanf(%7.2f,&y);C.scanf(*%ir,&y);D.scanf(%ld,&y);56. 已有定义char s;使用scanf()函数输入一个字符给变量s,不正确的函数调用是()。A.scanf(,%c,&s);B. scanf(M%d,&s);C. scanf(%u,&s);D. scanf(,%lf&s);57. 函数putchar()的功能是向终端输出().A.一个字符B.多个字符C. 一
9、个关系表达式D. 一个实型变量值58. 若已定义inta=ll;执行以下语句后的输出结果是().printf(a=%d,a=%o,a=%xn,a,a,a);A.a= 11, a= 11, a=bB, a= 11, a= 13, a=bC. a=l 1, a=13, a=cD. a= 11, a= 12, a= 1359. 若有定义 int m=4321,n=123,k=21;语句 prinlf(”4d+%3d+%2d”,m.n,k);执行后的输出结果是()A.4321432143211231231232121B. 432112321C. 4321+123+21D. 432+123+02160.
10、 已有如卜.定义和输入语句,char cl,c2;int x;scanf(M%c%d%c*&c 1 ,&x,&c2);若要求x、cl、c2的值分别为9、K和HI正确的数据输入是()oA. K9HB. K 9 HC. K9 HD. 9KH61. 以下程序段的运行结果是()int a=l;printf(%d, %d, %dn, a, +a, a+);A. 3,3B. 1,2,2C. 1,2,3 D. 3,2,162. 以下程序的运行结果是()ovoid main() int a=65;char c=A;printf(H%d+%c=%dna,c,a+c);A.A+A=AAB. 65+A=65AC.
11、65+65=130 D. 65+A=13063. 若已定义:inlx=7;floaty=7.0;以下语句中能输出正确值的是()。A.printf(H%d %d,x,y);B. printf(M%dC. printf(H%.3f %.3,x,y);D. printf(H%.3f %d”,x,y);64. putchar函数可以向终端输出一个()。A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串65. 若已定义:inta=6;floalb=1.5;要求输出形式为:6 * 1.50=9.00 ,应选用的正确输出语句是()A.printfC%d * %f=%f,a,b,a*b); B
12、. printf(%d * %.2f=%.2f;a,b,a*b);C. printf(H%d * %d=%.2f;a,b,a*b); D. primf(”.2f %.2f=%.2f;a,b,a*b);66. 有以下程序:main() int c;while(c=getchar()!= An) switch(c2) case 0:case 1 : putchar(c+4);case 2 : putchar(c+4); break;case 3 : putchar(c+3);default: putchar(c+2); break;printf(nH);当输入:247回车,程序的输出结果是()。A
13、. 689 B. 6689 C. 66778 D. 6688767. 若已定义int x=5,y=9,z;语句z=x=y;运行后z的值为()。A.1B. .t.C. 0D. .f.68. 判定逻辑值为“真”的最准确叙述是()A.1B.大于0的数 C.非0的整数 D.非0的数69. 若已定义intx=16,y=12,z;语句z=xv=y;运行后z的值为(A.t.B. 1C. .f.D. 070. 能正确表示数学关系式100WsV300的表达式为(A. (s=100) & (s300) B. 100= s=100) & (s= 100) and (s=bllb=cC. c-blla+b&(b*c-
14、a-c) D. (b*c-a-c)&(b*c-a-b)75. 若已定义:intx=4,y=2,z=0;则表达式(x-yv=y)ll (y=z)的值是()。A.1B.0C.2D.476. 若有定义:inta=3,b=2,c=l,k;则表达式k=abc的值是()。A.0B.1C.2D.377. 以下运算符中优先级最高的是()oA. x) II (b=yz);A. 0B. 1C. -1D. 679. 以下程序运行后,a的值是()omain() int a,b;for(a= l,b=l ;a=20) break;if(b%3=l) b+=3; continue;) b-=5;A.80.A.81.A.8
15、2.A.83.A.84.A.85.A.86.A.87.A.101 B. 100C. 8D. 7已定义double k=3.6;则正确的赋值表达式是()ok=double(-3.6)B. k%3C. k=k*(-1.0)=-3.6D. k+=k-=(k=1.2)*(k=3)已定义charc = A;则正确的赋值表达式是()。c=028 B. c=(c+)%4 C. c+l=66 D. c+=127-已定义intm=W;则正确的表达式是()o2*m=m+ B. m=int(-3.2) C. m%3 D. m=m-m=m-5设已定义noat a=2.O,b=3.O;使a值为5.0的表达式是(a+=
16、bB.a*=b+2.0C.a/=b+2.0D.a-=b+2.0若已定义ini m=7;float k=5.5;则表达式k+ m%2/4的值为()6.375B.6.75C.5.75D.5.5若已定义 inia=3,b=3,x=l,y=2;表达式(a=yx)&(x=ba)的值是(6 B.1C.9D.0若有定义:ini a=2,b=3; float x=5;则表达式x*b/a的值是()。7 .5B.7C.6D.5若有定义:int x=8; float y=130;char z=A;则表达式 x+z%(int)y 的值是()。已知A的ASCII码的十进制值为65运行时产生错误信息B. 8C. 73D.
17、 8.588. 若已定义:inlm=7,n=4;floalx=3.0,y=8.0,k;则执行语句 k=m/2+n*x/y;后,变量 k 的值是()。A. 3B. 4C. 4.5D. 589. 若有定义:float x=2,y=4,h=3;下列表达式中与(x+y)*h/2.0计算结果不相符的是(A.(x+y)*h/2 B. (x+y)*h*l/2 C. (l/2)*(x+y)*h D. h/2*(x+y)90. 表达式2+sqrt(16.0)/4结果的数据类型是()A.Double B. intC. charD. void91. 若有定义:inta=4,b=5,c=6;则表达式(1.0*a+b)
18、/c的值是(A.1.5B. 1C. 4D. 4.5三,校和#构92. 以下程序段的运行结果是()。int x=3;do printf(“3d, ”, x-=2); )while(!(-x);A.1,B. 30,C. 死循环D. 1,2,93. 以下程序运行时,若从键盘输入6,则输出结果是()void main() int x;scanf(n%d,&x);if (x-6)printf(dn”,x);elseprintf(,%dnn,x);)D. 3D. 1)语句不等价。A. 4B. 5C. 694. 以下程序的运行结果是()ovoid main()int m,n=l,t=l;if(t= 0)t=
19、-t;elsem=n=0?7:3;prin%dn”,m);A. 3B.-lC. 795. 对于整型变量a,赋值语句a=(a%3=0?l:0);与(A. if (a%3= =0) a= 1; else a=0;B. if (a%3!=0) a=0; else a=l;C. if (a%3) a=0; else a=l;D. if (a%3) a= 1; else a=0;96. 以下程序运行的结果是()ovoid main()int x,y,z,a;x=y=z=l;a=15;if(!x)a-;else if(y)if(z) a=3; else a+=4;prinlf(dn”,a); A.15B.
20、 3C. 19D. 1497. 若已定义inta=Lb=2j=3;则执行以下程序段后变量a, b, t的值分别为( if(a6)prinlf(dn”,a+2);elseC. 7D. 87A.printf(%dna+3);运行时产生错误信息B. 9C. 8D. 6102.若有定义:intx=10,y=8,a;则执行语句a=(x=y)? x: y);后,变量a的值是()0A.B. 9C. 10D. 0103. 若有定义:inta=2,b=3,c=l;则以下程序段的运行结果是()。if(ab)if(ac)printf(*%d H,a);elseprintf(H%d *b);printf(H%d H,
21、c);A. 31B. 21C. 3D. 1104. 以下条件语句中(其中si和s2分别表示C语言的语句),()与其他三条语句不等价。A.if(a) s 1; else s2;B. if(a = 0) s2; else s 1;C. if(a != 0) si; else s2;D. if(a = 0) si; else s2;105. 下列程序段中,非死循环的是()oA. int i=100;while(l) i=i% 100+1;if(i=100) break;B. int k=0; do +k; while(k=0);C. int s=10;while(+s%2+s%2) s+;D. fo
22、r(;)106. 若已定义int a;不会产生死循环的语句是()oA.for(; ;a+= 2);B. for(a=10; ;a);C. for ;(a=getchar()!= An,; ); D. while(-l) a+;107. 在循环语句的循环体中,break语句的作用是().A. 继续执行break语句之后的循环体各语句B. 提前结束循环,接着执行该循环后续的语句C. 结束本次循环D. 暂停程序的运行108. 以下程序段运行后,循环体中的n+=3;语句运行的次数为()int ij,n=0;for(i=l;i=3;i+)for(j=l;j=i;j-H-)n+=3;printf(%dn;
23、n);A. 6 次 B. 9 次C. 12 次 D. 1 次109. dowhile循环与while循环的主要区别是()A. while循环体至少无条件执行一次,而do-while循环体可能都不执行B. dowhile循环体中可使用continue语句,while循环体中不允许出现continue语句C. dowhile循环体中可使用break语句,while循环体中不允许出现break语句D. do-while循环体至少无条件执行一次,而while循环体可能都不执行110. 以下程序段运行后,循环体运行的次数为()oint i=8,a=0;for (;iv8;i+)a+= i;A. 0次 B
24、. 1次C. 8次D.无限111. 以下程序段运行后变量a的值为()。int i=l,a=0;fbr( ;iv3;i+) continue;a+=i;)A. 6B. 3C. 0D. 5112. 有以下程序:void main() int i;for(i=l; iv=3; i+) switch(i) case 1: printf(%d, i); break; case 2: prinlf(%d, i);default: printf(%d* i);)执行后输出结果是()oA.1223B. 1C.111223D.123113.以下程序的运行结果是( void main()int s = 0, i
25、= 0;while(i 8)(i+;if(i%2=0) continue;s+=i;printf(%dn,s);A.36B. 7C.16D.12114.以下程序的运行结果是()ovoid main() in( s = 0, i = 0;while(i=l;i-) for(j=ij=3;j +) k+=i *j;printf(H%dn, k);A.19B. 29C. 6D. 25117. 以下程序运行时,循环体的执行次数是()ovoid main() int i,j;for(i=Oj=l ;i=j+l;i=i+2j-) primf(3d”,i);A.3B.2C.1D.0118. 设已定义char
26、s=VNameAddress023n;,则字符中所占的字节数是(A.19B.16C.18D.14119. 数组元素下标的数据类型为()A. 整型常量、字符型常量或整型表达式B. 字符串常量C. 实型常量或实型表达式D. 任何类型的表达式120. ()是正确的数组定义。A. int n=10,xn;B. int x10;C. int N=l0;intxN;D. int n;scanf(%d,&n);int xn;121. 若已定义imarr10;则不能正确引用arr数组元素的是()。A.arr0B. arrl C. arr10-l D. arr7+3122. 若已定义 皿乂即=2,1,3);则元
27、素的值为()A. 0B. 2C. 1D. 3123. 以下程序段运行后,的值为()oint x5=5,43,2Jl;xl=x3+x2+2-x3-l;A. 6B. 0C. 1D. 5124. ()是合法的数组定义。A.char str 48,49,50,51,52,53);B. int a5=0,l,2,3,4,5);C. int a =,stringn;D. char str =*string,;125. 若有以下程序: void main()char s10= Majskdrr10;r=s;printf(H%snM,r);则(A.B.C.D. 126.执行时输出:ajskdl执行时输出:a执
28、行时输出:aj编译不通过下面程序段的运行结果是().int m=5,8,7,6,9,2),i=l;do(mi+=2;while(m+i5);fbr(i=0;i6;i+)printf(H%d mi);A.B.C.D.127.71098114710981125109811251098114卜面程序段的运行结果是()oint m=5,8,769,2),i=l;fbr(i=0;i=0;i-)ai=ai*j;j=j*3;for(i=0;i=0;j-) (pic(3-j/r); pic(i+2*j, putcharCn*);pic(int len,char c) int k;for(k=l ;k=len;k+) putchar(c);A.*B* *