《C语言练习题真答案(汇总版)(46页).doc》由会员分享,可在线阅读,更多相关《C语言练习题真答案(汇总版)(46页).doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言练习题真答案(汇总版)-第 46 页0在语言中,合法的字符常量是( D )。 A. 字 B. AC.ABC D.x411下面叙述正确的是( B )。 A. 程序中必须包含有输入语句 B. 变量按所定义的类型存放数据C.main函数必须位于文件的开头 D.每行只能写一条语句2错误的叙述是( D )。 A. 一个C语言源程序可由一个或多个函数组成 B. 若一条语句较长,也可分写在下一行上C.C程序必须包含一个main()函数 D.构成C语言源程序的基本单元是算术表达式3(C)是关于C语言数据类型的正确叙述。 A. 变量必须先定义后使用 B. 不允许使用空类型A叙述是对的,但其不是关于数据类
2、型的叙述!C.枚举类型不是基本类型 D.数组并不是构造类型4 main( )函数的位置( B )。 A. 必须在自定义函数前面 B. 可以在自定义函数后面C.必须位于程序的最前面 D.必须在自定义函数后面5 C语言函数体由( C )括起来。 A. B. ( ) C. D. 6( A )是不正确的叙述。 A. 注释说明只能位于一条语句的后面 B. C源程序的基本组成单元是函数C.C源程序可由一个或多个函数组成 D.每条语句最后必须有一个分号7一个C语言源程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成C.若干过程组成 D.若干子程序组成记住这个基本概念8结构化程序设计的三种
3、基本结构是( C )。 A. 函数结构、判断结构、选择结构 B. 平行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构9C源程序的调试是指对源程序进行( C )。 A. 录入与编辑 B. 查错与编译 C.查错与排错 D.连接与运行10C语言中,可将一系列语句置于( C )从而构成复合语句。 A. 一对尖括号之间 B. 一对圆括号( )之间C.一对花括号之间 D.一对方框号 之间11构成C源程序的基本单位是( D )。 A. 语句 B. 变量 C.运算符 D.函数12以下叙述中正确的是( A )。 A. C源程序中注释部分可以出现在程序中任意合适的地方
4、B. 一对花括号只能作为函数体的定界符C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名main()13下面叙述正确的是( D )。 A. 每行最多只能写两条语句 B. 程序中必需含有自定义函数C.main()函数必须位于源程序文件的开头 D.所有语句都必须以分号;结束14下面叙述错误的是( B )。 A. 若一条语句较长,可分写在下一行或多行上 B. 构成C语言源程序的基本单位是语句C.C源程序中大、小写字母是有区别的 D.一个C源程序可由一个或多个函数组成15( A )是关于C语言数据类型的正确叙述。 A. 枚举类型不是基本类型 B. 数
5、组不是构造类型C.变量使用前应定义相应的数据类型 D.不允许使用空类型16 C源程序中main()函数的位置( C )。 A. 必须位于程序的最前面 B. 必须在系统库函数后面C.可以在自定义函数后面 D.必须在自定义函数前面18下面叙述错误的是( D )。 A. C源程序可由一个或多个函数组成 B. C源程序必须包含一个main()函数C.一个C源程序的执行是从main()函数开始,直到main()函数结束 D.注释说明部分只能位于C源程序的最前面20C语言的下列运算符中,优先级最高的运算符是( A )。 A. + B. += C.| D.!=21( D )为正确的用户标识符。 A. str
6、uct B. 5f C. D._for22C语言基本数据类型包括( B )。 A. 整型、实型、逻辑型 B. 整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、字符串型23( A )为合法的常量。 A. 52686L B. E-7 C. D.E1224( C )为正确的变量名。 A. -k15 B. int C.k_5 D.25( D )为正确的字符常量。 A. B. 24m C.c D.M26( C )为非法的字符串常量。 A. B. s C.efg D.266227 C语言整型数据在内存中的代码是用( C )表示的。 自学!A. 原码 B. 反码 C.补码 D.BCD码28以下选
7、项中,合法的实型常数是( B )。 A. E-3 B. .2E1 C. D.29下列C语言合法的数据类型关键字是( B )。 A. Double B. unsigned C.integer D.Char30 Turbo C中,int型数据占用的字节数( B )。 A. 由用户自己定义 B. 为2个字节C.是任意的 D.等于所用计算机的字长31 Turbo C中,基本数据类型存储空间长度的排列顺序是( A )。 对.类型名 变量字节 取值范围singnedchar 1 -128127ungsigned char 1 0255singned long int 4 -2147483648214748
8、3647unsiged long int 4 04294967295float 4 -3.4E383.4E38 7个有效位double 8 -1.7E3081.7E308 15个有效位 A. charintlong intfloatdouble B. char=intlong 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; 要从键盘输入数
9、据36.582给变量x,则应选用( B )语句。 A. scanf(%,&x) ; B. scanf(%6f,&x) ;C.scanf(%,&x) ; D.scanf(%,&x) ;82若已定义 double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( C )。 A. scanf(%d,&y) ; B. scanf(%,&y) ;C.scanf(%lf,&y) ; D.scanf(%ld,&y) ;83已有定义 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( D )。 A. scanf(%c,&s) ; B. scanf(%d,&s) ;C.s
10、canf(%u,&s) ; D.scanf(%lf,&s) ;84函数putchar( ) 的功能是向终端输出( A )。 A. 一个字符 B. 多个字符C.一个关系表达式 D.一个实型变量值85若已定义 int a=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); 执行后
11、的输出结果是( C )。 A. B. 43211232C.4321+123+21 D.432+123+0287已有如下定义和输入语句, char c1,c2;int x; scanf(%c%d%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
12、, 2, 189以下程序的运行结果是( D )。 void main() int a=65; char c=A; printf(%d+%c=%dn,a,c,a+c); A. A+A=AA B. 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. 字符
13、或字符型变量值 B. 整型变量表达式值C.实型变量值 D.字符串92若已定义:int a=6;float b=1.5; 要求输出形式为: 6 * 1.50=9.00 ,应选用的正确输出语句是( 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(%,&x); B. sc
14、anf(%,&x);C.scanf(%,&x); D.scanf(%f,&x);94 只能向终端输出一个字符的是( D )。 A. printf()函数 B. scanf()函数 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.一个实型变量值
15、D.一个整型变量表达式97 若有定义 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( D )。 A. printf(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+6
16、6=131100有以下程序: main() int c; while(c=getchar()(1) c为字符2,case0开始执行到case2的break,输出字符6和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,程序
17、的输出结果是( B )。 A. 689 B. 6689 C.66778 D.66887101若已定义 int x=5,y=9,z; 语句 z=x=y;相当于z=(x=y); 运行后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
18、) 3-2=(3/2)B) 3=3C) 3-2|(短路)D) (2*3-2-3) & (短路)109若已定义:int x=4,y=2,z=0; 则表达式 (x-ybc相当于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值为奇数是“真”,偶数是“假
19、”。 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)|(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的值为
20、0,则表达式( A )的值为1。 A. a!=0 B. a=0 C.a=0 D.!(a0)120以下程序运行后,a的值是( C )。 main() int a,b; for(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=
21、1+3=19 continue第7次循环:a=7, b=1+3=22 continue第8次循环:a=8,breakA. 101 B. 100 C.8 D.7121已定义 double k=3.6; 则正确的赋值表达式是( D )。 A. k=double(-3.6) B. k%3C. 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=in
22、t(-3.2)C.m%3 D.m=m-m=m-5124设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是( A )。 A. a+= b B. C. D.125若已定义 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D )。 A. B. C. D.126若已定义 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. B. 7 C.6 D.5128若有定义:i
23、nt x=8; float y=130;char z=A; 则表达式x+z%(int)y的值是( C )。 已知A的ASCII码的十进制值为65 A. 运行时产生错误信息 B. 8 C.73 D.129若已定义:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;后,变量k的值是( C )。 A. 3 B. 4 C. D.5130若有定义:float x=2,y=4,h=3; 下列表达式中与计算结果不相符的是( C )。A. (x+y)*h/2 B. (x+y)*h*1/2C.(1/2)=0*(x+y)*h D.h/2*(x+y)131表达式2
24、+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. B. 1 C.4 D.133下列运算符中优先级最低的是( 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 )。(说明
25、: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. B. 0 C. D.137若有定义:float x=3.5,y=5.5; 则表达式( B )的值为2。 A. (x+y)%7 错误 B. (int)(x+y)%7 C.int(x+y)%7错误 D.(int)x+y%7错误138若有定义:int a=6,b=7,k=0,t=1; 语句 (k=ab) & (t=a=b); 运行后,k、t的值分别是(D )。 A. 0 0 B. 1 C.0 1 D.1 0140以下程序段的运行结果是( D )。 int x=3; do printf(%3d, , x-=2 ); while(!(-x); A. 1 B. 30 C.死循环 D.1, -2141以下程序运行时,若从键盘输入6,则输出结果是(A )。 void main(
限制150内