一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.1, 2 B.4, 1 C.3, 4 D.2, 3 【答案】D
【解析】题目中定义了一个包含两个整型元素的结构体数组,其
中
指针p 指向结构体数组的第1个元素,
那么
的值为2, 所以输出的结果为2, 3。
2. 有以下程序
:
的值为
程序的运行结果是( )。 A.6 B.5 C.4 D.3
【答案】B
【解析】
条件运算符
语法形式为:
执行规则为:计算表达式expl 的
值,测试其是否为0; 如果expl 的值非0, 则对exp2求值,并把这个值作为条件表达式的
结果输出,不计算exp3; 如果expl 的值为0,则对exp3求值,并把这个值作为条件表达式的结果输出,不计算exP2。函数ml 实现返回传入两个参数中的最小值。函数m2实现返回传入两个
参数中的最大值。函数fun 实现返回传入两个参数之和。程序执行过程为:调用ml (2, 3)返回2, 调用m2(3, 1)返回3, 调用fun (2,3)返回5,输出结果5,故B 项正确。
3. 若变量均己正确定义并赋值,以下合法的c 语言赋值语句是( )。
A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+l;
【答案】A
【解析】A 项正确,y==5返回0或者1,然后赋值给x 。B 项错误,浮点数不能参与模运算;C 项错误,x+n是右值,不能给它赋值;D 项错误,5是常量,不能被赋值。
4. 有以下程序:
程序运行后的输出结果是( )。
【答案】D
【解析】D 项正确,main 函数中,首先为结构变量a ,b 初始化,再调用函数f ( ),在f ( )函数中,使用结构体变量a 对指针b 指向的结构体进行赋值,使得指针b 指向的结构体成员依次赋值为结构体a 的成员,然后依次输出指针b 指向的结构体成员的值;由于f 函数 形参b 为指针,所以指针b 指向的值被修改为a 的同时,main 函数中的实参b 的值也被修改成a 。
5. 以下能正确进行字符串赋值的语句组是( )。
A. B.
C.
D.
【答案】A
【解析】一个字符串包括字符部分和字符串结束标志。将字符指针变量初始化为一个字符串有两种方式,① 通过赋值运算使一个字符指针指向一个字符串常量:一个字符指针变量,并且初始化为一个字符串的首地址
:
②定义
A 项正确。B 项定义一
个字符数组并为其赋初值,因为没有字符串结束标志,所以字符数组不是一个字符串,B 项错误。C 项定义字符数组,长度为3, 用字符串“abc”初始化,但是字符串的结束标志由于数组长度不够并未放入数组,所以数组不是一个完整的字符串,C 项错误。D 项正确 定义了数组,长度为4, 但
是不能用这样的形式
6.
有以下定义
【答案】A
为数组赋值,需要按照元素赋值,D 项错误。
则以下选项中正确的表达式是( )。
【解析】%运算是取两整数相除后余数的运算符,它只适用于整数的运算。A 项正确,果为double 型, 但是通过强制类型转换将其转换为int 型;B 项错误
,个优先级的,
先运行为左值。
7. 有以下程序:
程序运行后的输出结果是( )。
【答案】D 【解析
】制:
因此答案为D 选项。
8. 有如下程序:
结
中==和!=是同一
不能作
而因为double 是占8位的,不能自动转换,必须要强制类型转换
,
b
中的
为double 型;D 项错误,
才是正确的;C 项错误,
是十六进制数
,
需要输出十进制数,换算成十进