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

2017年北京市培养单位生命科学学院864程序设计考研题库

  摘要

一、选择题

1. 为了避免在嵌套的if-else 语句中产生二义性,C 语言规定与else 子句配对是( )。

A. 与其在同一行上的if 子句 B. 在其之后最近的不带else 的if 子句 C. 与其缩排位置相同的if 子句

D. 在其之前最近的不带else 的同层if 子句 【答案】D

【解析】if 总是与它上面最近的、未配对的else 配对。

2. 以下选项中不能用作C 程序合法常量的是( )。

A.1,

234

C.123

【答案】A

A 项错误。BD 两项为字符常量;C 项为数值常量。 【解析】常量分为数值常量和字符串常量,

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

A. 简单递归不需要明确的结束递归的条件 B. 任何情况下都不能用函数名作为实参

C. 函数的递归调用不需要额外开销,所以效率很高 D. 函数既可以直接调用自己,也可以间接调用自己 【答案】D

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

4. 有以下程序:

程序运行后的输出结果是( )。 A.8, 17 B.8, 16 C.8, 8 D.8, 20 【答案】A

【解析】static 变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元, 即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值 程序执行过程为:是上一次函数调用结束时的值。调用函数,再次调用函数

5. 有以下程序:

程序运行后的输出结果是( )。 A.ABCDEFGHIJKLMNOP B.ABCDEFGHHKL C.ABCD D.AEIM 【答案】D

【解析】auto 变量又称为自动变量,函数定义变量时,如果没有指定存储类别,系统就认为所定义的变量具 有自动类别,D 选项正确。static 变量又称为静态变量,编译时为其分配的内存在静态存储区中。register 变量又称为寄存器变量,变量的值保留在CPU 的寄存器中,而不是像一般变量那样占内存单元。当定义一个函数时, 若在函数返回值的类型前加上说明符extern 时,称此函数为外部函数,外部函数在整个源程序中都有效。

返回p=8,

返回

6. 有以下程序:

程序运行后的输出结果是( )。 A.10,64 B.10,10 C.64,10 D.64,64 【答案】A

【解析】C 语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。所以

7. 以下使指针指向一个字符串的选项错误的是( )。

A. B. C. D. 【答案】A

【解析】A 项中定义了指针ps 后,法将str 的首地

址赋给一个常量,语法错误。

8. 以下不能正确表示代数式

【答案】D

【解析】优先级相同,所以采用从左到右结合的方式。D 项,应该改为:

9. 有以下程序:

表示指针ps 指向地址的内容,而不是地址,无

的C 语言表达是( )。