全国2018年10月高等教育自学考试
面向对象程序设计试题
课程代码:02328
一、单项选择题(本大题共12小题,每小题2分,共24分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. 所谓多态性是指 (      )
A. 不同的对象调用不同名称的函数          B. 不同的对象调用相同名称的函数
C. 一个对象调用不同名称的函数            D. 一个对象调用不同名称的对象
2. 有如下程序段:
int *p,a[6]={-1,0,1,2,3,4};  p=a+3;
执行该程序段后,*p的值为 (      )
A. 4                                B. 2               
C. 1                                D. NULL
3.类MyA的拷贝初始化构造函数是 (      )
A. MyA()                          B. MyA(MyA*)           
C. MyA(MyA&)                  D. MyA(MyA)
4.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 (      )
A. 内联函数                    B. 重载函数         
C. 递归函数                    D. 嵌套函数
5.以下有关继承的叙述正确的是 (      )
A. 构造函数和析构函数都能被继承
B. 派生类是基类的组合
C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员
D. 基类的公有成员一定能被派生类的对象访问
6. 解决二义性问题的方法有(      )
A. 只能使用作用域分辨操作符 B. 使用作用域分辨操作符或赋值兼容规则
C. 使用作用域分辨操作符或虚基类 D. 使用虚基类或赋值兼容规则
7. 假设类X以类Y作为它的一个基类,并且X类的名字func()支配Y类的名字func(),obj为类X的对象,则obj.func()语句实现的功能为 (      )
A. 先执行类X的func(),再执行访问类Y的func()
B. 先执行类Y的func(),再执行访问类X的func()
C. 执行类X的func()
D. 执行类Y的func()
8.以下叙述正确的是(      )
A. 构造函数调用虚函数采用动态联编
B. 构造函数可以说明为虚函数
C. 当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数
D. 析构函数调用虚函数采用动态联编
9.以下关于抽象类的描述正确的是 (      )
A. 不能说明指向抽象类对象的指针或引用
B. 可以说明抽象类对象
C. 抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出
D. 抽象类的纯虚函数的实现由派生类给出
10.在下面格式化命令的解释中,错误的是 (      )
A. ios::skipws                  跳过输入中的空白字符
B. ios::fill()                  获得当前的填充字符
C. ios::hex                    转换基数为八进制形式
D. ios::precision                返回当前的精度
11.下面运算符中,不能被重载的运算符是(      )
A. <=          B. -          C. ?:          D. []
12.下列有关模板和继承的叙述正确的是 (      )
A. 模板和继承都可以派生出一个类系
B. 从类系的成员看,模板类系的成员比继承类系的成员较为稳定
C. 从动态性能看, 继承类系比模板类系具有更多的动态特性
D. 相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
二、填空题(本大题共8小题,每小题2分,共16分)
编程递归函数请在每小题的空格中填上正确答案。错填、不填均无分。
13. 在C++中函数原型不但能标识函数的__________,而且能标识函数参数的__________。
14. 如果类的名称是MyClass则析构函数名为__________,一个类最多能有__________个析构函数。
15. 假设类X的对象x是类Y的成员对象,则“Y Obj”语句执行时,先调用类__________的构造函数,再调用类__________的构造函数。
16. 基类的公有成员在私有派生类中是__________成员,基类的保护成员在公有派生类中是__________成员。
17. 对虚函数使用对象指针或引用,系统使用__________联编,对虚函数使用对象调用时,
系统使用__________联编。
18. 静态成员定义的关键字为__________,一般通过__________来访问静态成员。
19. 类在面向对象程序设计中非常重要,在设计类时可以参考一些原则,如充分利用__________增加类的自身可靠性,通过继承建立__________等等。
20. 将关键字__________写在函数体之前函数头之后,说明该函数是一个__________,可以防止函数改变数据成员的值。
三、改错题(本大题共5小题,每小题2分,共10分)
21.指出下面引用性说明类MyClass的用法的错误之处,并说明出错原因。
class MyClass;
void main() {
MyClass obj1;
MyClass *p;
void func( MyClass obj);
}
22.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。
class base{
protected:
int p;
public:
Base(int m){p=m;}
};
void f()
{  Base a(10);
  cout<<a.p<<endl;
}
23.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。