C语言练习题机房题库(1)
单选题:(每题2分,共80分)1、下列不合法的十六进制数是( ) (2分) A. oxff B. 0Xcde C. Oxll D. Ox23 参考答案: A 2、将三个数排序需要比较_次。 (2分) A. 2 B. 3 C. 4 D. 不确定 参考答案: B 3、以下程序的输出结果是 main( ) int k=17; printf("%d,%o,%x n",k,k,k); (2分) A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,21,11 参考答案: D 4、在C语言中,合法的字符常量是_. (2分) A. '084' B. 'x43' C. 'ab' D. 0 参考答案: B 5、在C语言中,int、char和short三种类型数据在内存中所占用的字节数 (2分) A. 由用用户自己定义 B. 均为2个字节 C. 是任意的 D. 由所用机器的机器字长决定 参考答案: D 6、若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为 (2分) A. 1.4 B. 1 C. 2.0 D. 2 参考答案: B 7、设有说明语句:char a='72'则变量a (2分) A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 说明不合法 参考答案: A 8、若有以下说明和语名: int a=5,m; m=a+; 此处表达式m的值是_ (2分) A. 7 B. 6 C. 5 D. 4 参考答案: C 9、以下程序的输出结果是_ main() int x=10,y=10; printf("%d%dn",x-,-y); (2分) A. 10 10 B. 9 9 C. 9 10 D. 10 9 参考答案: D 10、下列选项中,不正确的赋值语句是_ (2分) A. +t; B. n1=(n2=(n3=0); C. k=1=j; D. a=b+c=1; 参考答案: C 11、以下程序段的输出结果是 int a=1234; printf("%2dn",a); (2分) A. 12 B. 34 C. 1234 D. 提示出错、无结果 参考答案: C 12、为表示关系x y z,应使用C语言表达式_。 (2分) A. (x > =y)&&(y > =z) B. (x > =y)AND(y > =z) C. (x > =y > =z) D. (x > =y)&(y > =z) 参考答案: A 13、设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&&(n=c>d)后n的值是 (2分) A. 1 B. 2 C. 3 D. 4 参考答案: B 14、判断char型变量cl是否为小写字母的正确表达式是 (2分) A. 'a'<=cl<='z' B. (cl>=a)&&(cl<=z) C. ('a'>=cl)|('z'<=cl) D. (cl>='a')&&(cl<='z') 参考答案: D 15、能正确表示逻辑关系:"a =10或a 0"的C语言表达式是 (2分) A. a > =10 or a < =0 B. a > =0|a < =10 C. a > =10 &&a < =0 D. a < =0 | a>=10 参考答案: D 16、执行下面语句后的输出为( ) int i= -1; if (i < =0)printf("*n"); else printf("%n"); (2分) A. * B. % C. %C D. 有语法错,不能执行 参考答案: A 17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为_。 (2分) A. a < > 0 B. !a C. a=0 D. a!=0 参考答案: D 18、若K为整型,以下while循环执行( )次 K=0; while (K=0) K=K-1; (2分) A. 执行10次 B. 无限循环 C. 一次也不执行 D. 执行一次 参考答案: C 19、以下程序的输出结果是() void main() int y=5; whlie(y-) ; printf("y=%dn",y); (2分) A. y=0 B. y=1 C. y=-1 D. 无限循环 参考答案: C 20、C语言中while和 do.while循环的主要区别() (2分) A. do.while的循环体至少执行一次 B. while的循环条件比do.while的循环条件严格 C. do.while循环允许从外部转到循环体内 D. do.while的循环体不能是复合语句 参考答案: A 21、如果输入为:ABCdef 执行下面一段程序后,则输出为: main( ) char ch; while(ch=getchar( )!='n') if(ch > ='A' && ch < ='Z')ch=ch+32; else if(ch > ='a' && ch < 'z')ch=ch-32; printf("%c",ch); printf("n"); (2分) A. ABCdef B. abcDEF C. abc D. DEF 参考答案: B 22、以下选项中正确的定义语句是() (2分) A. double a;b; B. double a=b=0; C. double a=7,b=0; D. double,a,b; 参考答案: C 23、若有说明 int a34;则对a数组元素的正确引用是 (2分) A. a24 B. a1,3 C. a1+10 D. a(2)(1) 参考答案: C 24、若有说明 int a34;则a数组元素的非法引用是 (2分) A. a02*1 B. a13 C. a4-20 D. a04 参考答案: D 25、以下不能对二维数组a进行正确初始化的语句是 (2分) A. int a23=0; B. int a3=1,2,0; C. int a23=1,2,3,4,5,6; D. int a3=1,2,3,4,5,6; 参考答案: C 26、设有数组定义:char array=”China”;,则数组array所占的空间为( )。 (2分) A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 参考答案: C 27、以下程序运行后,输出结果是 #define PT 5.5 #difine S(x) PT*x*x main() int a=1,b=2; print ("%4.lf/n",S(a+b); (2分) A. 49.5 B. 9.5 C. 22.0 D. 45.0 参考答案: B 28、下面程序的输出结果是 main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf("%dn",*p+9); (2分) A. 0 B. 1 C. 10 D. 9 参考答案: C 29、在C语言中,下面那种数据类型不属于构造类型( ) (2分) A. 枚举类型 B. 数组类型 C. 结构体类型 D. 共用体类型 参考答案: A 30、C语言程序是由( )组成 (2分) A. 一个主程序和若干子程序 B. 函数 C. 若干过程 D. 若干子程序 参考答案: B 31、putchar函数可以向终端输出一个() (2分) A. 整型变量表达式值 B. 实型变量值 C. 字符串 D. 字符或字符型变量值 参考答案: D 32、请读程序: #include FUNC(int A, int B) int C; C=A+B; return C; main ( ) int X=6,Y=7,Z=8,R; R=FUNC(X+Y ,Z-); printf("%dn",R); 上面程序的输出结果是 (2分) A. 11 B. 20 C. 21 D. 31 参考答案: C 33、C语言函数的隐含存储类别是_. (2分) A. extern B. static C. register D. auto 参考答案: D 34、 以下不正确的说法是() (2分) A. 在不同的函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在函数内定义的变量只在本函数范围内有效 D. 在函数内的复合语句中定义的变量在本函数范围内有效 参考答案: D 35、有以下程序 viod fun (int a,int b,int c) a=456; b=567; c=678; main() int x=10, y=20,z=30; fun (x,y,z); printf("%d,%d,%dn",x,y,z); 输出结果是 (2分) A. 30,20,10 B. 10,20,30 C. 456,567,678 D. 678,567,456 参考答案: B 36、以下叙述中正确的是 (2分) A. A)C程序中的注释只能出现在程序的开始位置和语句的后面 B. C程序书写格式严格,要求一行内只能写一个语句 C. C程序书写格式自由,一个语句可以写在多行上 D. 用C语言编写的程序只能放在一个程序文件中 参考答案: C 37、下列可用于C语言用户标识符的一组是 (2分)