《C语言练习题真答案(汇总版).doc》由会员分享,可在线阅读,更多相关《C语言练习题真答案(汇总版).doc(225页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言练习题真答案(汇总版)福建省计算机等级考试二级C语言选择题(2010年1月)0在语言中,合法的字符常量是( D )。 A. 字 B. AC.ABC D.x411下面叙述正确的是( B )。 A. 程序中必须包含有输入语句 B. 变量按所定义的类型存放数据C.main函数必须位于文件的开头 D.每行只能写一条语句2错误的叙述是( D )。 A. 一个C语言源程序可
2、由一个或多个函数组成 B. 若一条语句较长,也可分写在下一行上C.C程序必须包含一个main()函数 D.构成C语言源程序的基本单元是算术表达式3(C)是关于C语言数据类型的正确叙述。 A. 变量必须先定义后使用 B. 不允许使用空类型A叙述是对的,但其不是关于数据类型的叙述!C.枚举类型不是基本类型 D.数组并不是构造类型4 main( )函数的位置( B )。 A. 必须在自定义函数前面 B. 可以在自定义函数后面C.必须位于程序的最前面 D.必须在自定义函数后面5 C语言函数体由( C )括起来。 A. B. ( ) C. D. 6( A )是不正确的叙述。 A. 注释说明只能位于一条语
3、句的后面 B. C源程序的基本组成单元是函数C.C源程序可由一个或多个函数组成 D.每条语句最后必须有一个分号7一个C语言源程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成C.若干过程组成 D.若干子程序组成记住这个基本概念8结构化程序设计的三种基本结构是( C )。 A. 函数结构、判断结构、选择结构 B. 平行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构9C源程序的调试是指对源程序进行( C )。 A. 录入与编辑 B. 查错与编译 C.查错与排错 D.连接与运行10C语言中,可将一系列语句置于( C )从而构成复合语句。
4、 A. 一对尖括号之间 B. 一对圆括号( )之间C.一对花括号之间 D.一对方框号 之间11构成C源程序的基本单位是( D )。 A. 语句 B. 变量 C.运算符 D.函数12以下叙述中正确的是( A )。 A. C源程序中注释部分可以出现在程序中任意合适的地方 B. 一对花括号只能作为函数体的定界符C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名main()13下面叙述正确的是( D )。 A. 每行最多只能写两条语句 B. 程序中必需含有自定义函数C.main()函数必须位于源程序文件的开头 D.所有语句都必须以分号;结束14下面叙
5、述错误的是( B )。 A. 若一条语句较长,可分写在下一行或多行上 B. 构成C语言源程序的基本单位是语句C.C源程序中大、小写字母是有区别的 D.一个C源程序可由一个或多个函数组成15( A )是关于C语言数据类型的正确叙述。 A. 枚举类型不是基本类型 B. 数组不是构造类型C.变量使用前应定义相应的数据类型 D.不允许使用空类型16 C源程序中main()函数的位置( C )。 A. 必须位于程序的最前面 B. 必须在系统库函数后面C.可以在自定义函数后面 D.必须在自定义函数前面18下面叙述错误的是( D )。 A. C源程序可由一个或多个函数组成 B. C源程序必须包含一个main
6、()函数C.一个C源程序的执行是从main()函数开始,直到main()函数结束 D.注释说明部分只能位于C源程序的最前面20C语言的下列运算符中,优先级最高的运算符是( A )。 A. + B. += C.| D.!=21( D )为正确的用户标识符。 A. struct B. 5f C._f 0.6 D._for22C语言基本数据类型包括( B )。 A. 整型、实型、逻辑型 B. 整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、字符串型23( A )为合法的常量。 A. 52686L B. E-7 C.1.2E-2.1 D.E1224( C )为正确的变量名。 A. -k15
7、 B. int C.k_5 D.k.jeep25( D )为正确的字符常量。 A. B. 24m C.c D.M26( C )为非法的字符串常量。 A. B. s C.efg D.266227 C语言整型数据在内存中的代码是用( C )表示的。 自学!A. 原码 B. 反码 C.补码 D.BCD码28以下选项中,合法的实型常数是( B )。 A. E-3 B. .2E1 C.1E.5 D.1.5E29下列C语言合法的数据类型关键字是( B )。 A. Double B. unsigned C.integer D.Char30 Turbo C中,int型数据占用的字节数( B )。 A. 由用户
8、自己定义 B. 为2个字节C.是任意的 D.等于所用计算机的字长31 Turbo C中,基本数据类型存储空间长度的排列顺序是( A )。 对.类型名 变量字节 取值范围singnedchar 1 -128127ungsigned char 1 0255singned long int 4 -21474836482147483647unsiged long int 4 04294967295float 4 -3.4E383.4E38 7个有效位double 8 -1.7E3081.7E308 15个有效位 A. charintlong intfloatdouble B. char=intlong
9、 intfloatdoubleC.charintlong int=float=double D.char=int=long intfloat5) printf(%dn,a); else printf(%dn,a-)执行这个,之前a+变为6了; A. 7 B. 4 C.5 D.681若已定义 float x; 要从键盘输入数据36.582给变量x,则应选用( B )语句。 A. scanf(%2.3f,&x) ; B. scanf(%6f,&x) ;C.scanf(%6.3f,&x) ; D.scanf(%5.3f,&x) ;82若已定义 double y; 拟从键盘输入一个值赋给变量y,则正确
10、的函数调用是( C )。 A. scanf(%d,&y) ; B. scanf(%7.2f,&y) ;C.scanf(%lf,&y) ; D.scanf(%ld,&y) ;83已有定义 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( D )。 A. scanf(%c,&s) ; B. scanf(%d,&s) ;C.scanf(%u,&s) ; D.scanf(%lf,&s) ;84函数putchar( ) 的功能是向终端输出( A )。 A. 一个字符 B. 多个字符C.一个关系表达式 D.一个实型变量值85若已定义 int a=11; 执行以下语句后的输
11、出结果是( B )。 printf(a=%d,a=%o,a=%xn,a,a,a) ; A. a=11, a=11, a=b B. a=11, a=13, a=bC.a=11, a=13, a=c D.a=11, a=12, a=1386若有定义 int m=4321,n=123,k=21; 语句printf(%4d+%3d+%2d,m,n,k); 执行后的输出结果是( C )。 A. 4321432143211231231232121 B. 43211232C.4321+123+21 D.432+123+0287已有如下定义和输入语句, char c1,c2;int x; scanf(%c%d
12、%c,&c1,&x,&c2); 若要求x、c1、c2的值分别为9、K和H,正确的数据输入建议上机实践一下!是( A )。 A. K9H B. K 9 H C.K9 H D.9KH88以下程序段的运行结果是( B )。 int a=1; printf(%d, %d, %dn, a, +a, a+); 注意printf函数的输出参数是自右向左!A. 3,3,1 B. 2, 2, 1 C.1, 2, 3 D.3, 2, 189以下程序的运行结果是( D )。 void main() int a=65; char c=A; printf(%d+%c=%dn,a,c,a+c); A. A+A=AA B.
13、 65+A=65A C.65+65=130 D.65+A=13090若已定义:int x=7;float y=7.0; 以下语句中能输出正确值的是( B )。 A. printf(%d %d,x,y); B. printf(%d %.3f,x,y);C.printf(%.3f %.3f,x,y); D.printf(%.3f %d,x,y);91putchar函数可以向终端输出一个( A )。 A. 字符或字符型变量值 B. 整型变量表达式值C.实型变量值 D.字符串92若已定义:int a=6;float b=1.5; 要求输出形式为: 6 * 1.50=9.00 ,应选用的正确输出语句是(
14、 B )。 A. printf(%d * %f=%f,a,b,a*b); B. printf(%d * %.2f=%.2f,a,b,a*b);C.printf(%d * %d=%.2f,a,b,a*b); D.printf(%.2f * %.2f=%.2f,a,b,a*b);93若有定义 float x; 要从键盘输入数据6.02赋给x,则应选用( D )语句。 A. scanf(%8.2f,&x); B. scanf(%1.2f,&x);C.scanf(%4.2f,&x); D.scanf(%f,&x);94 只能向终端输出一个字符的是( D )。 A. printf()函数 B. scan
15、f()函数 C.getchar()函数 D.putchar()函数95 若有语句 int a; char c; scanf(%3d%c,&a,&c); 为将整数135赋给a,字符6赋给c,正确的数据输入方式是( B )。(说明:代表换行,_代表空格) A. 135_6 B. 1356 C.1356 D.135_6_96 getchar()函数的功能是获取终端输入的( B )。 A. 多个字符 B. 一个字符 C.一个实型变量值 D.一个整型变量表达式97 若有定义 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( D )。 A. printf
16、(a*b=%dn,a*b); B. printf(a*b=a*bn);C.printf(%d*%d=a*bn,a,b); D.printf(%d*%d=%dn,a,b,a*b);98若有定义:char c1=A,c2=B; 语句printf(%d+%d=%d,c1,c2,c1+c2);运行后的结果为( D )。(说明:A的ASCII码的十进制值为65) A. A+B=131 B. 65+66=AB C.A+B=AB D.65+66=131100有以下程序: main() int c; while(c=getchar()(1) c为字符2,case0开始执行到case2的break,输出字符6和
17、6(2) c为字符4,case2开始执行并break退出,输出字符8(3) c为字符7,default开始执行并退出,输出9!= n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; printf(n); 当输入:247,程序的输出结果是( B )。 A. 689 B. 6689 C.66778 D.66887101若已定义 int x=5,y=9,z; 语句 z=x=y;相当于z=(x=y
18、); 运行后z的值为( C )。 A. 1 B. .t. C.0 D.f.102判定逻辑值为“真”的最准确叙述是( D )。 A. 1 B. 大于0的数C.非0的整数 D.非0的数103若已定义 int x=-16,y=-12,z; 语句z=x=100) & (s300) B. 100= s=100) & (s=100) and (s=b|b=cC.c-b|a+b&(b*c-a-c) D.(b*c-a-c)&(b*c-a-b)A) 3-2=(3/2)B) 3=3C) 3-2|(短路)D) (2*3-2-3) & (短路)109若已定义:int x=4,y=2,z=0; 则表达式 (x-ybc相
19、当于k=(ab)c)的值是( A )。 A. 0 B. C.2 D.3111以下运算符中优先级最高的是( D )。 A. x) | (b=yz); A. 0 B. 1 C.-1 D.6113 x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( B )。 A. -20x-20 & x-20) & !(x-5) D.-5x-20114若有定义:int a; 则表达式( B )不能用来判断a值为奇数是“真”,偶数是“假”。 A. a%2=1 B. !(a%2) C.a%2 D.!(a%2=0)115若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=ab)|
20、(k=cd)短路; 运行后,k的值为( A )。 A. 2 B. 1 C.0 D.-116若有定义:int x=1,y=2,z=3; 则表达式( A )的值为0。 A. !(xy | xz C.x=y D.x| (y+z & y-z)117若有定义: int a=3,b=5,c=8; 则表达式 !(a-b) | (c-b) 的值为( A )。 A. 1 B. 0 C.2 D.3118若有定义: int a; 且表达式 !a的值为0,则表达式( A )的值为1。 A. a!=0 B. a=0 C.a=0 D.!(a0)120以下程序运行后,a的值是( C )。 main() int a,b; f
21、or(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; 初始a=1;b=1第1次循环:a=1, b=1+3=4 continue第2次循环:a=2, b=1+3=7 continue第3次循环:a=3, b=1+3=10 continue第4次循环:a=4, b=1+3=13 continue第5次循环:a=5, b=1+3=16 continue第6次循环:a=6, b=1+3=19 continue第7次循环:a=7, b=1+3=22 continue第8次循环:a=8,breakA. 101 B. 100 C.8 D.7121已定
22、义 double k=3.6; 则正确的赋值表达式是( D )。 A. k=double(-3.6) B. k%3C.k=k*(-1.0)=-3.6 D.k+=k-=(k=1.2)*(k=3)122已定义 char c = A ; 则正确的赋值表达式是( B )。 A. c=02813位8进制数,8越界 B. c=(c+)%4C.c+1=66 D.c+=127-123已定义 int m =A; 则正确的表达式是( C )。 A. 2*m=m+ B. m=int(-3.2)C.m%3 D.m=m-m=m-5124设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是( A )。
23、 A. a+= b B. a*=b+2.0C.a/=b+2.0 D.a-=b+2.0125若已定义 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D )。 A. 6.375 B. 6.75 C.5.75 D.5.5126若已定义 int a=3,b=3,x=1,y=2; 表达式 (a=yx)&(x=ba) 的值是( B )。 A. 6 B. 1 C.9 D.0127若有定义:int a=2,b=3; float x=5; 则表达式x*b/a的值是( A )。 A. 7.5 B. 7 C.6 D.5128若有定义:int x=8; float y=130;cha
24、r z=A; 则表达式x+z%(int)y的值是( C )。 已知A的ASCII码的十进制值为65 A. 运行时产生错误信息 B. 8 C.73 D.8.5129若已定义:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;k=3+4*3.0/8.0=4.5后,变量k的值是( C )。 A. 3 B. 4 C.4.5 D.5130若有定义:float x=2,y=4,h=3; 下列表达式中与(x+y)*h/2.09.0计算结果不相符的是( C )。A. (x+y)*h/2 B. (x+y)*h*1/2C.(1/2)=0*(x+y)*h D.h/
25、2*(x+y)131表达式2+sqrt(16.0)/4结果的数据类型是( A )。 A. double B. int C.char D.void132若有定义:int a=4,b=5,c=6; 则表达式 (1.0*a+b)/c的值是( A )。 A. 1.5 B. 1 C.4 D.4.5133下列运算符中优先级最低的是( A )。 A. = B. ! C. D.*134若有定义:float x=3.5,y=3.6; 则表达式( A )的值为6。 A. (int)x+(int)y B. x+y C.(int)(x+y) D.int(x+y)错误表达式135若有定义:int x; char c=A; 则正确的赋值表达式是( A )。(说明:A的ASCII码的十进制值为65,a的ASCII码的十进制值为97) A. x=c+32 B. x=c+ABC C.x=c+CBA D.x=ABC136若有定义:float x=2,y; int a=3; 语句y=1*(x+a)/3; 运行后,y的值为( D )。 A. 2.0 B. 0 C.1.0 D.1.666667137若有
限制150内