c语言第四版谭浩强著期末复习答案 下载本文

选择题

1.一个C程序的执行是从 a 。

A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.以下叙述正确的是 c 。

A) 在C程序中,main函数必须位于程序的最前面 B) C程序的每行中只能写一条语句 C) C语言本身没有输入输出语句

D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 3.以下叙述不正确的是 d 。

A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面 4.C语言规定:在一个源程序中,main函数的位置 c 。

A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 5.一个C语言程序是由 b 。

A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 6.C语言中的语句需要 b 符号作为结尾。 A) : B) ; C) 。 D) //

7. C 语言程序中可以对程序进行注释,注释部分用符号_c _括起来。 A)‘{‘ 和’}’ B)‘[‘和’]’ C)“/*”和”*/” D)“*/”和”/*” 8.C语言中注释的位置 c 。

A) 必须在程序的最开始 B) 必须在程序的结尾 C) 可以在程序的任何位置 D) 不可以写到main函数里面

9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的 c 。 A) 适应性 B)移植性 C)兼容性 D) 操作性 10.C语言经过编译后生成的文件的后缀是 b 。

1

A).c B) .cpp C) .exe D) .obj 11.C语言编译程序的首要工作是 a 。

A) 检查C语言程序的语法错误 B) 检查C语言程序的逻辑错误 C)检查程序的完整性 D) 同时检查语法和逻辑错误 12. C语言经过链接后生成的文件的后缀是 c 。 A).c B) .cpp C) .exe D) .obj

13.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 c 。 A)必须为字母 B)必须为下划线

C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 14. 若以下选项中的变量已正确定义,则正确的赋值语句是 c 。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 15. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是 b 。

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 16. 下列C语言中运算对象必须是整型的运算符是 a 。

A) %= B) / C) = D) *=

17. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 a 。

A) 0 B) 0.5 C) 1 D) 2

18. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是 D 。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 19. 下列变量定义中合法的是 a 。

A)short _a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3;

20.若变量已正确定义并赋值,符合C语言语法的表达式是 a 。

A)a=b=7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b

21. 若有float x;则sizeof(x)和sizeof(float)两种描述 A 。

A)都正确 B)都不正确 C)前者正确 D)后者正确

22. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值

为( b )。

A)17 B)17.500000 C)17.5 D)16 23. 已知float x=1,y;则y=++x*++x的结果是 a 。

A)y=9 B)y=6 C)y=1 D)表达式是错误的

2

24. 下列关于单目运算符++、--的叙述中正确的是 D 。

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 25. 已定义ch为字符型变量,下列赋值语句中错误的是 c 。

A)ch='\\'; B)ch=62+3; C)ch=NULL; D)ch='\\xaa'; 26. 假定有以下变量定义,则能使值为3的表达式是 d 。

int k=7,x=12;

A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)

27. 设有“int x=11;”则表达式(x++*1/3)的值是 a 。

A)3 B)4 C)11 D)12

28. 已定义c为字符型变量,则下列语句中正确的是 c 。

A)c=’97’ B)c=“97” C)c=97 D)c=“a” 29. sizeof(float)是 c 。

A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式 30. 有以下定义语句:

double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是 c 。 A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a=b

31. 若变量a是int类型,并执行了语句:a=‘A’+1.6;,则正确的叙述是 c 。

A)a的值是字符C B)a的值是浮点型

C)不允许字符型和浮点型相加 D)a的值是字符’A’的ASCII值加1

32. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是 d 。

A)6.500000 B)6 C)5.500000 D)6.000000 33. 在下列选项中,不正确的赋值语句是 d 。

A)++t; B)n1=(n2=(n3=0)); C)k=i==j; D)b+c=1;

34.已知char a; int b; float c; double d; 则表达式a+b * c-d的结果为__d __型。

A)char B)int C)float D)double 35. 若x 为int型变量,则执行语句x=10; x+=x=x-x后,x的值为__a ____。

A)0 B)10 C)20 D)30

36. 若x、a、b、c均 为int型变量,则执行表达式x= (a = 4, b = 8, c = 12)后,x的

3

值为__c__。

A)4 B)8 C)12 D)24 37. 在C程序中,x + y是_____、x + y;是___a____。

A)表达式、语句 B)表达式、表达式 C)语句、语句 D)语句、表达式

38.假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型是

c 。

A) int B) float C) double D) 不确定 39.在C语言中,char型数据在内存中的存储形式是 d 。

A)补码

B)反码

C)原码

D)ASCII码

40.执行下列程序片段时输出结果是 c 。 int x=13,y=5;

printf(“%d”,x%=(y/=2));

A)3 B)2 C)1 D)0

41. 执行语句scanf (“%c%c%c”,&c1,&c2,&c3),输入abc时,变量c1、c2、c3的值分别为 a 。

A)'a', 'b', 'c' B)'a','b', '' C)'a', '', 'b' D)'a','','c' 42. 设c1,c2均是字符型变量,则以下不正确的函数调用为 d 。 A)scanf(“c1=ì2=%c”,&c1,&c2); B)c1=getchar( ); C)putchar(c2); D)putchar(c1,c2); 43.下列函数中能够向终端输出一个字符或字符型变量值的是 d 。 A) gets B) puts C) getchar D) putchar 44. 若有下列语句 char c=’A’; printf(“%d”,c);

则输出的结果是 c 。

A) A B) c C) 65 D) 错误的语句

45. 下列程序输入’a’字母后,执行程序后输出的结果是 b 。 #include int main( ) {

char c; c=getchar(); c=c-32;

printf(\

4

return 0; }

A)65 B) A C) 97 D) a 46.程序流程图中带箭头的线段表示 b 。

A) 处理操作 B) 数据流 C) 控制流 D) 调用关系 47.程序流程图中的菱形框表示 c 。

A) 输入 B) 输出 C) 判断 D) 循环 48.下面的流程图是 d 结构的程序设计。

模块A No 条件? A) 顺序 B) 顺序加选择 C) 判断 D) 循环

49. NS图完全取消了 a ,不允许有随意的控制流,全部算法写在一个矩形框内。 A) 流程线 B) 输出 C) 判断 D) 循环 50. 以下描述中正确的是 c 。

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C) do-while循环至少要执行一次循环语句 D) do-while循环中,根据情况可以省略while 51. 逻辑运算符两侧运算对象的数据类型 d 。

A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据

52. 下列运算符中优先级最高的是 b 。(非,算术,关系,AND,或,赋值运算符) A) < B) 十 C) && D) !=

53.能正确表示\当x 的取值在[1,10]和[200,210]范围内为真,否则为假\的表达式是 c 。

A) (x>=1) &&(x<=10) &&(x> = 200) &&(x<=210) B) (x>=1) || (x<=10) ||(x>=200) ||(x<=210) c) (x>=1) &&(x<=10)||(x>= 200) &&(x<=210) D) (x > =1)||(x< =10) && (x> = 200)||(x<=210)

5