2017年湖南农业大学食品科技学院341农业知识综合三[专业硕士]之C程序设计考研强化模拟题
● 摘要
一、选择题
1 设有如下定义.
【答案】A
【解析】可用以下3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:①结构体变量名. 成员名;②指针变量名->成员名;③(*指针变量名). 成员名。题目中a 为数组名是地址常量,不是指针变量,A 项引用错误。a[0]为变量名,B 项引用正确。p 为指针,且正确的指向结构体变量,C 项引用正确。D 项符合第三种引用方式,引用正确。
2. 执行以下程序段后,w 的值为( )。
A.-1
B.NULL
C.1
D.0
【答案】C
【解析】因为都是非零整数,因此又因为知也为真,因此的值为1。
3. 设函数中有整型变量n ,为保证其在未赋值的情况下初值为0, 应选择的存储类别是 ( )。
A.auto
B.register
C.static
D.auto 或 register
【答案】C
【解析】静态存储类型定义变量在未对其初始化时会对其初始化为默认值,其中int 型的默认初始化是0,其他选项的存储类型不能保证。
4. 以下叙述中正确的是( )。
A. 简单递归不需要明确的结束递归的条件
第 2 页,共 31 页
则以下错误引用结构体成员n 的是( )。
B. 任何情况下都不能用函数名作为实参
C. 函数的递归调用不需要额外开销,所以效率很高
D. 函数既可以直接调用自己,也可以间接调用自己
【答案】D
【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。
5. 有以下程序:
程序的输出结果是( )。
A.22
B.18
C.20
D.16
【答案】D
【解析】语
句
退出循环。
6. 有如下程序:
程序运行后的输出结果是( )。
第 3 页,共 31 页 相当
于程序执行过程为
:
【答案】A
【解析】可用以下3种形式来引用结构体变量中的成员:①结构体变量名. 成员名;②指针变量名>成员名;③(*指针变量名). 成员名。数组名是指向数组首地址,也可以当做指向数组的指
针来使用。
元素指向数组第三个元素
运行后的输出结果是为字符串A 项正确。 指向数组第一个
7. 以下函数按每行8个输出数组中的数据:
下画线处应填入的语句是( )。
A.
B.
C.
D.
【答案】C
【解析】每行输出8个数组数据的实现,即输出8个后就输出一个换行,所以,应该对8取余,当结果为0时输出换行符,即用语句
8. 以下使指针指向一个字符串的选项错误的是( )。
A. B. C. D.
【答案】A
【解析】A 项中定义了指针ps 后,
法将str 的首地
址赋给一个常量,语法错误。
9. 程序运行后的输出结果是( )。
A.14.0
B.31.5
C.7.5
D. 程序有错无输出结果
【答案】D
第 4 页,共 31 页
可表达。 表示指针ps 指向地址的内容,而不是地址,无