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

2017年上海市培养单位上海生命科学研究院864程序设计之C程序设计考研强化模拟题

  摘要

一、选择题

1. 有以下程序:

程序运行后的输出结果是( )。 A.1 B.2 C.4 D.8

【答案】D

【解析】f (l )输出2,然后调用f (2)输出4, 再调用f (4)输出8。

2. 如有表达式则其中与w 等价的表达式是( )。

A.w==l B.w==0

c.

D. 【答案】D

【解析】在C 语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示“假”。此条件表达式的形式为<表达式1>?<表达式2>:<表达式3>, 当表达式1的值为真,即为非零时,求出表达式2的值作为结果;当表达式1的值为假,求出表达式3的值作为结果。可见表达式W ,不为1时返回(++y)等价于W!=0。A 项,w==l表示当w 的结果为1是返回(-X )。

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

A. 在C 语言中,预处理命令行都以“#”开头 B. 预处理命令行必须位于C 源程序的起始位置 C.#include必须放在C 程序的开头

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

【解析】编译预处理”就是在C 编译程序对C 源程序进行编译前,由编译预处理程序对这些

第 2 页,共 37 页

编译预处理命令行进行处理的过程。A 项正确,在C 语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。B 项错误,预处理命令行可以出现在程序的任何一行的开始部位,其作C 项错误,#inClUde可以出现在程序的任意一行的开始部位;用一直持续到源文件的末尾;

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

4. 有以下程序:

程序运行的结果是( )。 A.1, 2, 3, 4 B.1, 0, 7, 0 C.1, 4, 5, 9 D.3, 4, 8, 0 【答案】B

【解析】由二维数组x 的定义知,数组x 为4行4列。fun 函数中for 循环的作用是将二维数组前4行的对角线元素赋

5. 有以下程序:

程序的运行结果是( )。 A.nice B.verynice C.nicegood D.verygood 【答案】D

【解析】通过赋值运算使一个字符指针指向一个字符串常量:

第 3 页,共 37 页

在主函数中定义二维数组

所以可以看出对角线元素为1、0、7、0。

这种形式

只是将字符串“nice”首地址赋给指针,而不是将指针原本指向的单元元素改变成“nice”。程序执行过程为:定义字符数 组并且初始化为“verygood”常量,定义指针ps 使其指向数组,使ps 指向数组第5个元素,使指针指向字符串 “nice”,这并不影响s 数组任何元素值,故输出字符串8为“verygood”。

6. 若有代数式

(其中e 仅代表自然对数的底数,不是变量),则以下能够正确表示该

代数式的C 语言表达式是( )。

【答案】A

【解析】math.h 是数学运算库函数的头文件名:

7. 下列定义数组的语句中,正确的是( )。

A

B

)C

D

【答案】D

【解析】一维数组定义格式是:类型名数组名[整型常量表达式]。D 项正确,它使用预处理宏定义,N 可以看做是常量。A 项错误,没有指明数组的长度;B 项错误,数组长度不能由变量指明;C 项错误,数组长度应该整型常量表达式。

8. 有以下程序:

程序运行的结果是( )。

第 4 页,共 37 页