一、选择题
1. 设有定义
( ) 。
A.
B.
C.
D.
答:C
A 项,【解析】 元素类型为double , 所以输入B 项,,有误:虽然x+6为指针,但*(x+6)_以下能给数组x 下标为6的元素读入数据的正确语句是
并非地址;D 项,使用p[6]表7K 的不是地址,方式不正确。
-2. 表达式a+=a=a=9的值是( )。
A.9
B.-9
C.18
D.0
答:D
a+=a-=a=9计算顺序为a+=a-=9, 即a=a-9=9-9=0;,【解析】(a-=(a=9))首先a=9,最后a+=0,
即a=a+0=0+0=0。
3. 有以下程序:
程序运行后的输出结果是( )。
A.11, 19, 19
B.12, 20, 20
C.11, 20, 20
D.12, 19, 20
答:C 【解析】将数组a 的首地址赋给指针p 。
取地址,待输出变量为表示p 后i 个地址最的元素,
待输出变量为
后输出为11,20,20。
取这个地址内的元素,待输出变量为
4. 设a , b ,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。
A.a=(b=3)=1;
B.a=(b=2)+c;
C.a=b=c+10;
D.a=l+(b=c=2):
答:A
【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。A 项中,赋值运算(b=3)=1, 左值为表达式,不是变量不能被赋值,A 项错误。B 项运算过程为,先赋值b=2, 再计算b+c,将结果赋给a ,是正确的赋值语句。C 项运算过程为,先计算c+10将结果赋给b , 再将b 赋给a ,是正确的赋值语句。D 项运算过程为,先将2赋给c , 再将c 赋给b , 然后计算1+b, 将结果赋给a , 是正确的赋值语句。
5. 以下关于C 语言数据类型使用的叙述中错误的是( )。
A. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
B. 若要保存带有多位小数的数据,可使用双精度类型
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D. 整数类型表示的自然数是准确无误差的
答:A
【解析】A 项错误,C 语言中没有逻辑类型,在C++中才引入的;B 项正确,float 类型称为单精度类型,double 类型称为双精度类型,一般系统中,为float 类型的变量分配4个字节的存储单元,为double 类型的变量分配8个字节的存储单元。C 项正确,struct 结构体,可以用来描述包含多种基本类型的复杂对象。
6. 有以下程序
程序的输出结果是( )。
A.8
B.5
C.7
D.6
答:D
【解析】C 语言中的标识符区分大小写,pad 只实现了一次自增操作,结果输出6。
7. 有以下程序:
程序运行后的输出结果是( )。
A.3
B.2
C.1
D.0
答:D
【解析】C 语言的语法规定:else 子句总是与前面最近的不带else 的if 相结合,与书写格式无关。可以写成下面的形式:
)即判定为false ,y 值不发生变化,然后else 判定x==0,仍然为false ,不执行else 语句,y 值不发生变化。
8. 以下是if 语句的基本形式:
if (表达式)语句
其中“表达式”( )。
A. 必须是逻辑表达式
B. 必须是关系表达式
C. 必须是逻辑表达式或关系表达式
D. 可以是任意合法的表达式
答:D
【解析】表达式一般是关系表达式或逻辑表达式,用于描述选择结构的条件,但也可以是其他类型表达式,只要其合法,在其值非零时都视为真,所以其他表达式也可以作为if 语句的判断条件。