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

2017年北京交通大学02205面向对象程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错,导致不能实现预定功能。

造成错误的原因是( )。

A. 定义语句inti ,max ; 中,max 未赋初值 B. 赋值语句max=MIN; 中,不应给max 赋MIN 值 C. 语句【答案】D

【解析】该题中for 循环先将MIN 值赋值给max ,再判断x[i]与max 的值比较,即每次都是将MIN 值与X[i]值进行比较,因为MIN 被定义为整型的最小值,所以无论x[i]的值是什么都不会影响if 的判断语句,始终执行max=x[i]。所以最后返回的是最后一个x[i]的值,本题的错误在于max=MIN的位置错误,max=MIN应该放在for 循环之前,仅在循环之前赋一次值,然后在循环中不断跟新max 的值。

2. 有以下程序:

第 2 页,共 15 页

中,判断条件设置错误

D. 赋值语句max=MIN; 放错了位置

程序的运行结果是( )。

【答案】A

【解析】程序执行过程为:将a 赋给b , 调用f 函数,将b 中name 地址与gender 和score 的值传进函数,执行函数体,strcpy 函数改变b 中name 值,但由于后两个成员为值传递不能改变b 中gender 和score 值。调用函数结束后,结构体

3. 有以下程序(字符a 的码值为97)

程序运行后的输出结果是( )。 A.abc B.789 C.7890 D.979899 【答案】B

【解析】因为小写字符a 、b 、c 的中,每次对字符的

4. 若有定义语句:

【答案】B

码的值分别为97、98、99, 而在

码的值取余数并输出,所以分别输出7、8、9, B项正确。

则表达式

的值为( )。

循环语句

【解析】因为+的运算优先级高于赋值运算符,所以先做值给X 。

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

A. 用typedef 定义新的类型名后,原有类型名仍有效 B. 可以用typedef 将已存在的类型用一个新的名字来代表 C. 可以通过typedef 增加新的类型

第 3 页,共 15 页

结果为20, 再做结果为赋

D. 用typede 可以为各种类型起别名,但不能为变量起别名 【答案】C

【解析】关键字typedef 的作用只是将C 语言中已有的数据类型作置换,并不是增加新的类型,因此C 项错误。

6 若有定义语句:.

误的是( )。

【答案】C

【解析】:数组的下标从零开始,数组m 中有5个元素,所以数组m 即

C 项,

但是数组下标范围是

7. 有以下程序:

t

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

【答案】C 【解析】

运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以

结果为

后缀形式出现时,则先取值,再进行加一或减一操作。a 初始定义为1,b 为0, 先执行0, 即if 判断为假,执行

然后输出b 的值。即b 为2。

8. 在C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A.auto 和 register B.extern 和 register C.auto 和 static D.static 和 register

第 4 页,共 15 页

则下面对m 数组元素的引用中错

引用数组元素为

所以溢出引用错误。