谭浩强c语言程序设计习题集 联系客服

发布时间 : 星期六 文章谭浩强c语言程序设计习题集更新完毕开始阅读9da8d20d17fc700abb68a98271fe910ef12daef3

**2.3假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b)的值是 。

A)7 B)8 C)5 D)2 参考答案:B

参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。

2.4

下列四组选项中,均不是C语言关键字的选项

是 。

A)define B)getc C)include D)while IF char scanf go type printf case pow 参考答案:A

参考分析:是关键字的有:char、case、while。

auto 局部变量(自动储存) break无条件退出程序最内层循环 case switch语句中选择项 char单字节整型数据 const定义不可更改的常量值

continue中断本次循环,并转向下一次循环 default switch语句中的默认选择项 do 用于构成do.....while循环语句 double定义双精度浮点型数据 else构成if.....else选择程序结构 enum枚举

extern在其它程序模块中说明了全局变量 float定义单精度浮点型数据 for构成for循环语句 goto构成goto转移结构 if构成if....else选择结构

int基本整型数据 long长整型数据

registerCPU内部寄存的变量 return用于返回函数的返回值 short短整型数据 signed有符号数

sizoef计算表达式或数据类型的占用字节数 static定义静态变量 struct定义结构类型数据 switch构成switch选择结构 typedef重新定义数据类型 union联合类型数据 unsigned定义无符号数据 void定义无类型数据

volatile该变量在程序中执行中可被隐含地改变 while用于构成do...while或while循环结构

2.5

下列四组选项中,均是C语言关键字的选项是 。

A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type 参考答案:B

参考分析:不是关键字的:include、scanf、type

*2.6下面四个选项中,均是不合法的用户标识符的选项是 。

A)A B)float C)b-a D)_123 P_0 la0 goto temp

do _A int INT 参考答案:C

参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 **2.7 C语言中的标识符只能由字母、数字和下划线三种字符组

成,且第一个字符 。

A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中的任一种字符 参考答案:C

参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的―法律效力‖。

*2.8 下面四个选项中,均是合法整型常量的选项是 。

A)160 B)-0xcdf C)-01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 参考答案:A

参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 *2.9下面四个选项中,均是不合法的整型常量的选项是 。

A)--0f1 B)-0Xcdf C)-018 D)-0x48eg -0xffff 017 999 -068 0011 12,456 5e2 03f 参考答案:D

参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常量前面允许不允许加上--号,是否可以负负得正,显然不可以,--在C中是自减运算,它只适用于变量;B1:0Xcdf X大写也可以!C3:5e2是个实型数。 *2.10下面四个选项中,均是不合法的浮点数的选项是 。

A)160. B)123 C)-.18 D)-e3 0.12 2e4.2 123e4 .234 e3 .e5 0.0 1e3 参考答案:B

参考分析:不合法的有A3,B,D1。部分解释:A1,D2:C语言中小

数点前面或后面的0可以省略。但是不能只有小数点自身;A3,B3,D1:e的前后必须有合法数字。1.e2 .1e2合法,.e2不合法;B1:123是整型数,不是浮点数。

*2.11下面四个选项中,均是合法的浮点数的选项是 。

A)+1e+1 B)-.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 参考答案:B

参考分析:不合法的有A2:阶码不能为小数;A3:浮点数的尾数及阶码不能用八进制数表示;C1:e后必须有整数,C2:阶码不能为小数;D1:缺少尾数。

*2.12

下面四个选项中,均是合法转义符的l选项

是 。

A)'\\'' B)'\\' C)'\\018' D)'\\\\0' '\\\\' '\\017' '\\f' '\\101' '\\n' '\\\ 'xab' 'x1f' 参考答案:A

参考分析:\后面的数字,c总是按照八或十六进制解释。由于c支持扩展ASCII字符集,所以,八进制数范围在0~377,十六进制数范围在00~ff。

*2.13下面四个选项中,均是不合法的转义符的选项是 。 A)'\\\ B)'\\1011' C)'\\011' D)'\\abc' '\\\\' '\\' '\\f' '\\101' '\\xf' '\\a' '\\}' 'x1f' 参考答案:B

参考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得讨论,实际上,'\\a'是一个转义字符(07 beep)。C中只有少数字母是转义字符,大多数字母不是。像'\\c'就不是,它就是字符c自身,非转义字母加\也仅表示它本身。C3'\\}'也表示自身。本题的命题人显然不