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

2017年北京市培养单位工程科学学院864程序设计考研仿真模拟题

  摘要

一、选择题

1. 设x 、y 、z 均为实型变量,代数式

A.x/y+z

B.x%y%z

C.x/y/z

D.x*z/y

【答案】C

【解析】X 、/的结合顺序是从左到右,所以x 先除以y , 再除以z 。

2. 下列条件语句中,输出结果与其他语句不同的是( )。 A. B. C. D.

【答案】D

【解析】A 项,如果a 的值为1,即输出X ,否则输出y ; B 项,如果a 的值为0, 则输出y ,否则输出x ; C 项,如果a 不等于0, 贝!J 输出x , 否则输出y ; D 项,如果a 的值为0, 则输出X ,否则输出答案y 。因此D 项与其他三个选项不同。

3. 有以下程序:

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

A.-1

B.0

C.1

D.7

【答案】A

【解析】“++”和“一”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,贝晚取值,再进行加一或减一操作。程序中执行

才跳出循环,执行下条语句,即a 为0时再执行

4. 若有以下程序

第 2 页,共 43 页 在C 语言中的正确写法是( )。 直到while 判断为0时后输出,最终输出的结果为-1。

则程序的输出结果是( )。

A.4,3,4

B.4,3,3

C.6,3,6

D.6,6,6

【答案】B

【解析】函数sp (p )调用前,p 指向k ; 调用后,指针p 被复制到a ,a 也指向

存单元,k 和*p仍然是3。

5. 以下不是合法C 语言转义字符的是( )。 A. B. C. D.

【答案】A

【解析】C 语言中,

6. 有以下程序:

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

A.3,5,5,3

B.3,5,3,5

C.5,3,3,5

D.5,3,5,3

【答案】B

第 3 页,共 43 页

语句使得a 指向变量b (但是p 仍然指向k ); 在sp 函数内部输出4,sp 函数没有改变指针p 指向的内表示响铃,表示退格,表示回车不换行,故答案为A 选项。

【解析】在C 语言中,函数参数的传递是“传值”的,即形参和实参是两个没有关系的变量,本题函数的形参虽然为指针变量,但是函数内部交换的是地址值,并没有交换主函数中变量x 与y 的值。函数内对地址值的交换不会传递给实参,因此,交换函数并没有交换p 、q 所指向的值。

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

A. 在复合语句中不能定义变量

B. 对于变量而言,“定义”和“说明”这两个词实际上是同一个意思

C. 全局变量的存储类别可以是静态类

D. 函数的形式参数不属于局部变量

【答案】C

【解析】C 项正确,对于全局变量可使用extern 和static 两种说明符。A 项错误,在复合语句中定义的变量 是局部变量;B 项错误,“定义”(definition )是指给变量分配确定的存储单元,“说明”(dedaratkm )只是说 明变量的性质,而并不分配存储空间;D 项错误,函数的形式参数只能在函数内部被识别,属于局部变量。

8. 以下叙述中错误的是( )。

A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL

B. 函数可以返回地址值

C. 改变函数形参的值,不会改变对应实参的值

D. 可以给指针变量赋一个整数作为地址值

【答案】D

【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。

9. 有以下函数:

函数的功能是( )。

A. 查找x 和y 所指字符串中是否有

B.x 、y 所指字符串最前面连续相同的字符个数

C. 将y 所指字符串赋值给x 所指存储空间

D. 统计x 和y 所指字符串中相同的字符个数

【答案】B

【解析】由程序可知,定义语句中的x 和y 是用户标识符,在每个变量前的是一个说明符,

第 4 页,共 43 页