C语言常见复习题(选择填空)及参考答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言常见复习题及参考答案
一、选择题
1.下述标识符中,()是合法的用户标识符。

A.A#C
B.getch
C.void
D.ab*
2.在C语言中,字符型数据在内存中是以()形式存放的。

A.原码
B.BCD码
C.反码
D.ASCII码
3.以下选项中不合法的用户标识符是()。

A.abc.c
B.file
C.Main
D.PRONTF
4.以下选项中不合法的用户标识符是()。

A.123
B.printf
C.Anbsp;
D.Dim
5.可以在C语言程序中用做用户标识符的一组标识符是()。

A.void
B.as-b3
C.for
D.2c
define -123 -abc Do
WORD If cas SIG
6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。

(1)A.001 B.table_1 C.0_t D.k%
Int t*.1 W10 point
(2)A.Fast_ B.void C.pbl D.
Fast+Big abs fabs beep
(3)A.xy_ B.longdouble C.*p D.CHAR
变量1 signed history Float
7.()是构成C语言的基本单位。

A.函数
B.过程
C.子程序
D.子例程
8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符
C.包含1个字符
D.无定值,说明不合法
(2).A.包含1个字符 B.包含2个字符
C.包含3个字符
D.无定值,说明不合法
(3).A.包含1个字符 B.包含2个字符
C.包含3个字符
D.无定值,说明不合法
9.若x为int型变量,则执行以下语句后,x的值为
x=6;
x+=x-=x*x
A.36
B.-60
C.60
D.-24
10.在C语言中,char 型数据在内存中是以()形式存储的。

A.原码
B.补码
C.ASCII码
D.反码
11.以下运算符中优先级最低的算符为(),优先级最高的为()。

A.&&
B.&
C.|=
D.||
E.?:
F.!=
12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为
A.*= << > % sizeof
B.<< *= > % sizeof
C.*= > << sizeof %
D.*= > << % sizeof
13.若有以下类型说明语句
char w; int x; float y; double z;
则表达式w*x+z-y 的结果是()类型。

A.float
B.char
C.int
D.double
14.若w,x,y,z 均为int 型变量,则执行下面的语句后,
w=(1), x=(2), y=(3), z=(4)。

w=5; x=4;
y=w++*w++*w++;
z=--x*=--x*--x;
(1)A.8 B.7 C.6 D.24
A.4
B.3
C.2
D.1
A.150
B.125
C.210
D.336
A.64
B.1
C.6
D.24
15.C语言的程序一行写不下时,可以
A.用逗号换行
B.用分号换行
C.在任意一空格处换行
D.用回车符换行
16.下述标识符中,()是合法的用户标识符。

A.A#C
B.getch
C.void
D.ab*
17.在C语言中,字符型数据在内存中是以()形式存放。

A.原码
B.BCD
C.反码
D.AS
18.()是非法的C语言转义字符。

A.'\b'
B.'\0xf'
C.'\037'
D.'\''
19.语句char s='\092';的作用是
A.s包含1个字符
B.说明不合法, s的值不定。

C.使s包含4个字符
D.使s包含3个字符
20.在C语言中,int,char,和short三种类型数据所占用的内存
A.均为2个字节
B.由用户自己定义
C.由所用机器的机器字长决定
D.是任意的
21.高性能int类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是
A.0~255
B.0~65535
C.-32768~32767
D.-256~255
22.以下()是不正确的转义字符。

A.'\\'
B.'\'
C.'081'
D.'\0'
23.一个C语言的程序是由()组成
A.主程序
B.子程序
C.函数
D.过程
24.一个C语言的程序总是从()开始的。

A.主过程
B.主函数
C.子程序
D.主程序
25.一个C语言的程序是由
A.一个主程序和若干个子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
26.以下述叙不正确的是
A.一个C源程序可以由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中注释说明只能位于一条语句的后面
27.C语言中规定:在一个源程序中main函数的位置
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
28.一个C程序的执行是从
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序的最后一个函数结束
C.本程序的main函数开始,到本程序的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
29.以下述叙正确的是
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
二、填空题
1.将下列给出的常量分别归类到:整型常量、浮点常量和字符型常量
(1)0x7a (2)078 (3)6a (4)57L
(5)'m' (6)"ab6" (7)-32 (8)3.4,256
(9)0e0 (10).e0 (11)-3.1e-5 (12)2e0
(13)0.012e003 (14)'\"' (15)'xy' (16)" "
(17)"\nab\t" (18)'\"' (19)'\07'
2.指出下列标识符中哪些是非法的
(1)a_Char (2)b22c (3)286pc (4)-am
(5)_7b (6)ab# (7)Max_1 (8)__Star
(9)*itm (10)To-2 (11)for (12)"tt"
3.C源程序的基本单位是____。

4.一个C源程序中至少应包含一个_____。

5.在一个C源程序中,注释部分二侧的分界符分别为___和___。

6.在C语言中,输入操作是由库函数____完成的,输出操作是由库函数____完成的。

反馈测试题参考答案:
一、选择题
1、 B 2.D 3.A 4.C 5.A
6. (1)A,(2)C (3)D
7. C
8. (10C (2)D (3)A
9. B 10.C 11.C, F 12. D
13. D 14. (1)A,(2)D, (3)B,(4) B
15. C 16. B 17.D 18. B
19. B 20. C 21. B 22.C
23. C 24. B 25.B 26. D
27. C 28. A 29. C
二、填空题
1、整型常量有(1) (4)
浮点型常量有:(9) (12) (13) (14)
字符型常量有:(5) (6) (16) (17) (18) (19) (20)
2、非法标识符有:3) (4) (6) (9) (10) (12)
3、函数
4、主函数
5、(1)/* (2)*/
6、(1)scanf (2)printf
第二部分C语言基本语法知识
一、选择题
(1)以下叙述中错误的是
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
(2)以下叙述中错误的是
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
(3)以下不能正确计算代数式值的C语言表达式是
A)1/3*sin(1/2)*sin(1/2)
B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3
D)1/3.0*pow(sin(1.0/2),2)
(4)以下能正确定义且赋初值的语句是
A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1;
D)double x=12.3E2.5;
(5)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
(6)有以下程序段
int k=0,a=1,b=2,c=3;
k=ac ? c:k;
执行该程序段后,k的值是
A)3 B)2 C)1 D)0
(7)以下选项中可作为C语言合法常量的是
A)-80.
B)-080
C)-8e1.0
D)-80.0e
(8).以下不能定义为用户标识符的是
A)Main
B)_0
C)_int
D)sizeof
(9)以下选项中,不能作为合法常量的是
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
(10)有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是
A)12353514
B)12353513
C)12343514
D)12343513
(11)若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a A)1
B)2 C)3 D)4
(12)下列选项中,不能用作标识符的是
A) _1234_
B) _1_2
C) int_2_
D) 2_int_
(13)有以下程序
main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A) 3 B) 5 C) -1 D) -2
(14)以下符合C语言语法的实型常量是
A) 1.2E0.5
B) 3.14.159E
C) .5E-3
D) E15
(15) 以下4组用户定义标识符中,全部合法的一组是
A) _main B) If C) txt D) int
enclude -max REAL k_2
sin turbo 3COM _001
(16) 若以下选项中的变量已正确定义,则正确的赋值语句是
A) x1=26.8%3
B) 1+2=x2
C) x3=0x12
D) x4=1+2=3;
(17) 设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++; B) b++ C) c++; D) d++;
(18)设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是
A) (a+B) *h/2
B) (1/2)*(a+B) *h
C) (a+B) *h*1/2
D) h/2*(a+B)
(19) 以下叙述中正确的是
A) C程序中注释部分可以出现在程序中任意合适的地方
B) 花括号“{”和“}”只能作为函数体的定界符
C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名
D) 分号是C语句之间的分隔符,不是语句的一部分
(20) 以下选项中可作为C语言合法整数的是
A) 10110B B) 0386 C) 0Xffa D) x2a2
(21) 以下不能定义为用户标识符的是
A) scanf B) V oid C) _3com_ D) int
(22) 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
A) x=x*100+0.5/100.0;
B) x=(x*100+0.5)/100.0;
C) x=(int)(x*100+0.5)/100.0;
D) x=(x/100+0.5)*100.0;
(23)下列关于C语言用户标识符的叙述中正确的是
A) 用户标识符中可以出现在下划线和中划线(减号)
B) 用户标识符中不可以出现中划线,但可以出现下划线
C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D) 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
(24)下列关于单目运算符++、--的叙述中正确的是
A) 它们的运算对象可以是任何变量和常量
B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D) 它们的运算对象可以是char型变量、int型变量和float型变量
(25) 以下选项中合法的实型常数是
A) 5E2.0 B) E-3 C) .2E0 D) 1.3E
(26) 以下选项中合法的用户标识符是
A) long B) _2Test C) 3Dmax D) A.dat
(27) 以下非法的赋值语句是
A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;
(28) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000
B)6
C) 5.500000
D) 6.000000
(29) 与数学式子对应的C语言表达式是
A) 3*x^n(2*x-1)
B) 3*x**n(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))
D) 3*pow(n,x)/(2*x-1)
(30) 若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A) 8,6
B) 8,3
C) 6,4
D) 7,4
(31) 以下选项中,与k=n++完全等价的表达式是
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1
(32) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
A) 1.4 B) 1 C) 2.0 D) 2
(33) 以下选项中不属于C语言的类型的是
A) signed short imt
B) unsigned long int
C) unsigned int
D) long short
(34) 以下叙述正确的是
A) 可以把define和if定义为用户标识符
B) 可以把define定义为用户标识符,但不能把if定义为用户标识符
C) 可以把if定义为用户标识符,但不能把define定义为用户标识符
D) define和if都不能定义为用户标识符
(35) 在C语言中,合法的长整型常数是
A) OL
B) 4962710
C) 324562&
D) 216D
(36) 以下有4组用户标识符,其中合法的一组是
A) For B) 4d C) f2_G3 D) WORD
-sub DO IF void
Case Size abc define
(37) 假定x和y为double型,则表达式x=2,y=x+3/2的值是
A) 3.500000
B) 3
C) 2.000000
D) 3.000000
(38) 以下合法的赋值语句是
A) x=y=100
B) d--;
C) x+y;
D) c=int(a+b);
(39) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
pprintf(”%d,%d\n”,x--,--y);
A) 10,3
B) 9.3
C) 9.2
D)10.2
(40) 以下程序的输出结果是
main()
{ int a=3;
printf(“%d\n”,(a+a-=a*a) );
}
A) –6
B)12
C) 0
D) -12
(41) 以下所列的C语言常量中,错误的是
A) 0xFF
B) 1.2e0.5
C) 2L
D) ‘\72’
(42) 下列选项中,合法的C语言关键字是
A) V AR
B) cher
C) integer
D) default
(43) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是
A) x/y*z
B) x*(1/(y*z))
C) x/y*1/z
D) x/y/z
(44) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A) -3
B) 9
C) -12
D) 6
(45) 若变量已正确定义并赋值,下面符合C语言语法的表达式是
A) a:=b+1
B) a=b=c+2
C) int 18.5%3
D) a=a+7=c+b
(46) C语言中运算对象必须是整型的运算符是
A) %=
B) /
C) =
D) 〈=
(47) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是
A) 1 B) 2 C) 2.0 D) 2.5
(48) 若变量a、iI已正确定义,且i已正确赋值,合法的语句是
A) a==1 B) ++i; C) a=a++=5; D) a=int(i);
(49) 若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是
A) 0 B) 0.5 C) 1 D) 2
(50) 设有int x=11; 则表达式(x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12
(51) 下列程序的输出结果是
A) 3 B) 3.2 C) 0 D) 3.07
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
(52) 下列变量定义中合法的是
A) short _a=1-.le-1;
B) double b=1+5e2.5;
C) long do=0xfdaL;
D) float 2_and=1-e-3;
(53) 以下选项中属于C语言的数据类型是
A) 复数型
B) 逻辑型
C) 双精度型
D) 集合型
(54) 在C语言中,不正确的int类型的常数是
A) 32768
B) 0
C) 037
D) 0xAF
(55) 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为
A) 4 B) 16 C) 32 D) 52
(56) 设有如下的变量定义:
int i=8, k, a, b;
unsigned long w=5;
double x=1, 42, y=5.2;
则以下符合C语言语法的表达式是
A) a+=a-=(b=4)*(a=3)
B) x%(-3);
C) a=a*3=2
D) y=float(i)
(57) 假定有以下变量定义:
int k=7,x=12;
则能使值为3的表达式是
A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)
(58) 设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是
A) 把x和y按从大到小排列
B) 把x和y按从小到大排列
C) 无确定结果
D) 交换x和y中的值
(59) 以下程序的输出结果是
A) 10 10 B) 12 12 C) 11 10 D) 11
13
main()
{ int a=12,b=12;
printf("%d,%d\n",- -a,+ +b);
}
(60) 在C语言提供的合法的关键字是
A) swicth B) cher C) Case D) default
(61) 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是
A)1 B)2 C)2.0 D)2.5
(62) C语言提供的合法的数据类型关键字是
A) Double B) short C) integer D) Char
(63) 在C语言中,合法的长整型常数是
A) 0L
B) 4962710
C) 0.054838743
D) 2.1869e10
(64) 若有说明和语句:
int a=5;
a++;
此处表达式a++的值是
A) 7 B) 6 C) 5 D) 4
(65) C语言中最简单的数据类型包括
A) 整型、实型、逻辑型
B) 整型、实型、字符型
C) 整型、字符型、逻辑型
D) 整型、实型、逻辑型、字符型
(66) C语言中,运乍对象必须是整型数的运算符是
A) % B) \ C) %和\ D) * *
(67) 设有如下定义: int x=10,y=3,z; 则语句
printf("%d\n",z=(x%y,x/y)); 的输出结果是
A) 1 B) 0 C) 4 D) 3
(68) 以下程序的输出结果是
main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y); }
A) 10 10
B) 9 9
C) 9 10
D) 10 9
(69) 下列语句中符合C语言语法的赋值语句是
A) a=7+b+c=a+7;
B) a=7+b++=a+7;
C) a=7+b,b++,a+7
D) a=7+b,c=a+7;
(70) 在C语言中,要求运算数必须是整型的运算符是
A) % B) / C) < D) !
(71) 请选出可用作C语言用户标识符的一组标识符
A) void B) a3_b3 C) For D) 2a
define _123 -abc DO
WORD IF Case sizeof
(72) 设int a=12,则执行完语句a+=a-=a*a后,a的值是
A) 552 B) 264 C) 144 D) -264
(73) C语言程序的基本单位是
A) 程序行B) 语句C) 函数D) 字符
(74) 请选出合法的C语言赋值语句
A) a=b=58
B) i++;
C) a=58,b=58
D) k=int(a+b);
(75)在C语言中,如果下面的变量都是int类型,则输出的结果是。

sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;
printf("%d\n",pad);
A) 7
B) 6
C) 5
D) 4
(76)以下程序的输出结果是。

# include
main()
{ int i=010 , j = 10;
printf("%d,%d\n",+ +i , j - -); }
A) 11,10
B) 9,10
C) 010,9
D) 10,9
二、填空题
(1)语句:x++;、++x; x=x+1;、x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【1】。

(2) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是[2] 。

c=(a-=(b-5));
c=(a%11)+(b=3);
(3) 设x和y均为int型变量,且x=1,y=2,则以下表达式的值为【3】。

1.0+x/y
(4) 数学式子写成C语言表达式是【4】。

(5) 设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是【5】。

答案:
一、填空题
01) A 02) C 03) A 04) B 05) C
06) B 07) A 08) D 09) B 10) A
11) A 12) D 13) D 14) C 15) A
16) C 17) D 18) B 19) A 20) C
21) D 22) C 23) B 24) D 25) C
26) B 27) C 28) D 29) C 30) C
31) A 32) B 33) D 34) B 35) A
36) C 37) D 38) B 39) D 40) D
41) B 42) D 43) A 44) C 45) B
46) A 47) C 48) B 49) A 50) A
51) C 52) A 53) C 54) A 55) C
56) A57) D 58) D 59) D 60) D
61) C 62) B 63) A 64) C 65) B
66) A 67) D 68) D 69) D 70) A
71) B 72) D 73) C 74) B 75) C
76) B
二、填空题
(1)x+=1
(2)3
(3)1.0
(4)pow(sin(x),2) * (a+b)/(a-b) 或sit(x) * sit(x) * (a+b)/(a-b)
(5)28。

相关文档
最新文档