一、选择题
1. 设有定义
以下能够代表数组元素
A.
B. I
C.
D.
答:B 的是( )。
【解析】B 项,S+3指向a[3]的地址,
先级高于*
,
等价子
代表元素,对I 取出数组元素A 项,小括号和方括号的优先级相同,从左向右结合,先取的值,然后再进行方括号运算,编译错误;C 项,方括号的优元素进行间址运算,编译错误;D 项,间址操
作符*的优先级高于加号,先取出8指向的数据,然后加3, 并不是数组元素
2. 有以下程序段:
程序运行后的输出结果是。
A.a=10b=50c=10
B.a=10b=50c=30
C.a=10b=30c=10
D.a=10b=30c=50
答:A
【解析】a=10,b=50,则a
3. 表达式:
A.4
B.0
C.3
D.5
答:C 【解析】
4. 有以下程序:
第 2 页,共 31 页 的值是( )。 值为4, 值为1,相减值为3。
程序运行的结果是( )。
答:C
【解析】题目在定义结构体st 的同时便定义了结构体数组data 。可
知
结构体指针P 指向数组的首地址,指向
向所以输出即输出和
5. 有以下程序
程序运行后的输出结果是( )。
A.a+b=0
B.a+b=30
C.a+b=10
D. 出错
答:A
【解析】注释/*和*/之间计算机不参与编译,所以a 、b 值仍为0。
6. 有以下程序
程序运行后的输出结果是( )。
A.4
B.2
C.8
第 3 页,共 31 页
则指
D.1
答:C
【解析】函数的嵌套调用,最终输出8。
7. 以下关于C 语言函数参数传递方式的叙述正确的是( )。
A. 数据只能从实参单向传递给形参
B. 数据可以在实参和形参之间双向传递
C. 数据只能从形参单向传递给实参
D.C 语言的函数,参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用
答:A
【解析】数据只能由实参单向传递给形参称为“值传递”,而不能由形参传给实参,A 项正确;数组名、指针等作参数,实参传递给形参的是地址值,这样形参和实参就指向同一段内存单元,在函数体内对形参数据的改 变也将影响到实
8. 设a ,b ,C 是整型变量,且已正确赋初值,以下选项中错误的赋值语句是( )。
答:D
【解析】D 项,“( )”具有最高优先级,b 先赋值9,再根据赋值运算符号自右向左进行赋值,再给b 赋值为1,再计算2=b,赋值运算符左边必须是一个变量,但数值2是常量,语法错误。
9. 以下选项中不能作为C 语言合法常量的是( )。
答:A
【解析】常量包括整型常量、实型常量、字符常量和字符串常量等。单引号表示字符常量,但不能包含字符串。表达字符串常量时需用双引号。
10.设a , b ,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。
A.a=(b=3)=1;
B.a=(b=2)+c;
C.a=b=c+10;
D.a=l+(b=c=2):
第 4 页,共 31 页