一、选择题
1. 有以下程序
程序运行后的输出结果是( )。
A.24
B.44
C.22
D.46
答:B
【解析】p 是int 类型的指针,指向数组a 的首元素;k 的int*类型的指针,指向int*
变量
先执行p++,p 指向a 中第二个元素,然后取值,输出
2. 以下叙述中正确的是( )。
A.
语句
B.
语句
C.
语句
D. 语句
符
答:A
【解析】A 项正确,表示定义了长度为8的int 型数组,它里面的每个元素都是0。当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0。B 项错误,C 语言规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小;C 项错误,a 是char 类型的数组,里面的元素应该是字符而非字符串,应该用单引号括起来;D 项错误,数组变量一旦定义,其地址值不可改变,不能给数组名重新赋值。
3. 有以下程序;
第 2 页,共 33 页 是合法的 是不合法的,遗漏了数组的大小 是合法的,定义了一个包含两个字符的数组 是合法的,因为数组有三个字符空间的容量,可以保存两个字
程序运行后的输出结果是( )。
A.8
B.9
C.5
D.6
答:A
,替换过程是,用宏调用提供的实参字符串,【解析】带参数的宏的调用格式:宏名(实参表)
MUN 被置换成X2+1/2;直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。(2+1+1)
程序的运行结果是6,故D 选项正确。
4 设有定义inta=0, b=l;, 以下表达式中,,
会产生“短路”现象致使变量b 的值不变的是( )。.:
A.
B.
C.
D.
答:D
【解析】++放在变量前面时,表示将变量+1, 再参与其他操作,D 项,
值是0直接判定与运算结果为0, 忽视b++的值,因此b 值不发生改变。
5. 以下选项中非法的C 语言字符常量是( )。
A. B. C. D.
答:A
【解析】A 项,
项,
6. 若有定义语句
接着执行以下选项中的语句,则能正确执行的语句是( )。
A. B. C. D.
答:B
【解析】scanf 中参数列表,需为地址,只有B 项符合题意。
第 3 页,共 33 页
时,由于a 表示字符串,应该用双引号括起来。B 项,转义符表示两位的十六进制数。 表示后退一格;C 表示八进制数;D 项,
7. 有以下程序:
程序的运行结果是。(口代表一个空格)
A.10,12,a
B. □□0,012,a
C.010,12,a
D. □□10,12,a
答:D
【解析】%4d 表示先输出十进制,共占4个字符,而10已占2个字符,故先输出2个空格,然后输出10; %0表示输出八进制,10的八进制为12; 表示输出十六进制,即a 。
8. 已知大写字母A 的ASCII 码是65,小写字母a 的ASCII 码是97。以下不能将变量c 中的大写字母转换为对应小写字母的语句是( )。
A.c=c+32
B.
C.
D.
答:B
【解析】大写字母转换为对应小写字母,即加上32, B 项不是累加32。
9. 以下选项中,当x 为大于1的奇数时,值为0的表达式是( )。
A.x%2==l
B.x/2
D.x%2==0
答:D
【解析】x 为大于1的奇数,x%2的值为1,x%2==0为假。
10.有如下程序:
第 4 页,共 33 页