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 数组元素的引用中错
引用数组元素为
所以溢出引用错误。
相关内容
相关标签