当前位置:问答库>考研试题

2018年北京航空航天大学交通科学与工程院991数据结构与C语言程序设计之C程序设计考研仿真模拟五套题

  摘要

一、选择题

1. 以下叙述中正确的是( )。

A. 在C 语言中,预处理命令行都以“#”开头

B. 预处理命令行必须位于C 源程序的起始位置

C.#include必须放在C 程序的开头

D.C 语言的预处理不能实现宏定义和条件编译的功能

【答案】A

【解析】编译预处理”就是在C 编译程序对C 源程序进行编译前,由编译预处理程序对这些编译预处理命令行进行处理的过程。A 项正确,在C 语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。B 项错误,预处理命令行可以出现在程序的任何一行的开始部位,其作

C 项错误,#inClUde可以出现在程序的任意一行的开始部位;用一直持续到源文件的末尾;

D 项错误,预处理可以实现宏定义、条件编译和文件包含。

2. 有以下程序

程序运行后的输出结果是( )。

A.15

B.21

C.20

D.31

【答案】C

【解析】函数的嵌套调用,fim 函数的作用是计算两个整数的和,

3. 以下叙述中正确的是( )。

A. 简单递归不需要明确的结束递归的条件

第 2 页,共 61 页 等价于

: 然后执行等于7,

B. 任何情况下都不能用函数名作为实参

C. 函数的递归调用不需要额外开销,所以效率很高

D. 函数既可以直接调用自己,也可以间接调用自己

【答案】D

【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。

4. 有以下程序:

程序运行后的输出结果是( )。

A.6

B.21

C.123456

D.654321

【答案】A

【解析】本题首先定义文件指针变量fp 和数组入数据再打开文件随后先给文件写rewind 函数将文件指针从当前位置重新指向文件开始位置,所以for 循环依次将数组a 中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时fp 指向的数据(即文件中第一个数据6)写入变量k 中,关闭文件,输出k 值,A 项正确。

5. 有以下程序

第 3 页,共 61 页

执行程序时,给变量x 输入10, 程序的输出结果是( )。

A.55

B.54

C.65

D.45

【答案】A

【解析】一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun ( )函数在n 等于1时返回1,而在其余情况下返回所以本题的递归算法可以这样来表示:

此时不难看出,该递归算法实现的是计算

则( )。

而且n 必须大于0, 否则会陷入死循环。故题目输出的结果是 6. 若函数中有定义语句

B. 这时k 中的值无定义 A. 系统将自动给k 赋初值0

C. 系统将自动给k 赋初值-1

D. 这时k 中无任何值

【答案】B 【解析】这条语句是定义一个整型变量k ,这是动态定义,编译程序仅为k 开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值时无意义的。若是静态定义,则会自动初始化,其默认值为0。

7. 以下叙述中正确的是( )。

A. 在C 语言程序中,main 函数必须放在其他函数的最前面

B. 每个后缀为.C 的C 语言源程序都可以单独进行编译

C. 在C 语言程序中,只有main 函数才可以单独进行编译

D. 每个后缀为.C 的C 语言源程序都应该包含一个main 函数

【答案】B

第 4 页,共 61 页