一、选择题
1. 以下选项中,合法的一组C 语言数值常量是( )。
A.12. 0Xa23 4.5e0 B.028 .5e_3 -0xf C..177 4el.5 Oabc D.0x8A 10.000 3.e5 答:A
【解析】A 项,C 语言中小数必须要有小数点,但是小数部分可以省略,12. 是合法的常量;C 语言中十六进制数以0X 或Ox 开头,0Xa23是指十六进制数a23; 在C 语言中,“e ”或“E ”后跟一个整数来表示以10为底的幂数,
只能在(K7之间;D 项,10,000中不能有逗号。
2. 有以下程序:
程序运行后的结果是( )。
答:D
【解析】函数f 的功能是将重新定义的结构体b 整体赋给圯], 即数组a 的第二个元素,而数组a 的第一个元素不变。因此main 函数中调用函数f 时,即数组c 的第二个元素变成结构体b , 第一个元素不变。
3. 若有以下定义:
则错误的语句是( )。
第 2 页,共 33 页
B 项,028表示的是八进制,以0开头,
0后面的数字只能在0~7之间。C 项,4el.5,e 后面只能跟整数,Oabc 表示八进制,0后面的数字
答:A
【解析】是一个变量而不是地址,A 选项应为
4. 有以下程序段
当执行上述程序段,从键盘上输入555667777123后,y 的值为( )。 A.566.0 B.55566.0 C.7777.0 D.566777.0 答:A
【解析】本题考查的是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j 的值为55,y 的值为566.0,字符数组name 的值为7777123。
5 设有定义inta=0, b=l;, 以下表达式中,,
会产生“短路”现象致使变量b 的值不变的是( )。.:
A.
B.
C.
D. 答:D
【解析】++放在变量前面时,表示将变量+1, 再参与其他操作,D 项,值是0直接判定与运算结果为0, 忽视b++的值,因此b 值不发生改变。
6. 若有以下程序
则程序的输出结果是( )。 A.2, 3 B.0, 2 C.1, 2 D.1, 3
答:D 【解析】
1. 是先判定a 是否为0, 不管判定结果如何,都执行a++。
第 3 页,共 33 页
时,由于a
7. 有以下程序:
程序运行时键盘输入A.10 B.11 C.9 D.8 答:A 【解析】
和
则输出的结果是( )。
运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
是先用后加,即a
以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中因为打印是先用后减,所以先输出10, 然后a 的值变为9。
8. 有以下函数:
程序运行后的输出结果是( )。 A.98,18 B.39,11 C.39,18 D.98,11
答:B
【解析】根据该宏的定义,
的值为9, 所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,
所以答案
为39,11。
9. 按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A. 大写字母 B. 连接符 C. 数字字符 D. 下划线 答:B
第 4 页,共 33 页