当前位置:首页 > 《面向对象程序设计C》期末试卷及标准答案(A)
{ A *a=new B(15);
delete a; return 0; } 4、
#include
void f(){cout<<\ };
class B {public:
void f() {cout<<\
void g() {cout<<\ };
class C: public A, public B {public:
void g(){cout<<\ };
int main() { C cc; cc.B::f(); cc.B::g(); cc.g(); return 0; }
一、单项选择题(每小题2分,共40分)
1-5.C D B C C 6-10.A A D D B 11-15.A B B B C 16-20.D C B C C
二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)
1. 抽象 实例 2. this指针 3. E D、F A、B、C、D、E D、F 4. virtual 5. 静态多态性 动态多态性
6. 抽象类 7. friend void fun(A &a) 8. 继承 组合或模板
9. 在对象被系统释放之前做一些内存清理工作 10. A(const A&) 11. A operator++(int) 三、阅读程序(13分) 1、a=89,b=56,c=12 2、ABC
第 5 页
3、A::A() called. B::B() called. B::~B() called.
A::~A() called. 4、Call B's function f() Call B's function g() Call C's function g() 一、单项选择题 (在每小题的备选答案中选出一个正确的答案。每小题2分,共30分) 1. cout是I0流库预定义的 A 类 B 对象 C 包含文件 D 常量
2. 类的定义如下,试问类B的对象占据内存多少整形单元空间?
class A {int b; protected: int a; public: A(int n){a=n;};}; class B: public A {int c;}; A 2 B 3 C 4 D 7 3. 类的析构函数的作用是
A 一般成员函数 B 类的初始化 C 对象的初始化 D 对象扫尾处理 4.面向对象程序设计中的数据隐藏指的是
A.输入数据必须输入保密口令 B.数据经过加密处理
C. 对象内部数据结构上建有防火墙 D.对象内部数据结构的不可访问性 5.有如下的对类“CSample”的说明,其中 是错误的。 class CSample { A.int a=23; B.CSample(); public:
C.CSample(int val); D.~ CSample(); }
6.拷贝(复制)构造函数的作用是
A.进行数据类型的转换 B.用对象调用成员函数
C.用对象初始化对象 D.用一般类型的数据初始化对象 7. C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是
A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 8. 下列不是描述类的成员函数的是 A.构造函数 B.析构函数
C.友元函数 D.拷贝构造函数
9. 通常,拷贝构造函数的参数是 A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名
10. 如果类A被说明成类B的友元,则
A.类A的成员即类B的成员 B.类B的成员即类A的成员
第 6 页
C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元
11. 假定AB为一个类,则执行AB x;语句时将自动调用该类的 A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值构造函数
12. 对于任何一个类,析构函数最多有 个 A. 0 B. 1 C. 2 D. n
13. 下列特性中,C与C++共有的是 A.继承 B.封装
C.多态性 D.函数定义不能嵌套
14. 要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为
A.const char *p=“ABCD”; B.char const *p=“ABCD”;
C.char *const p=“ABCD”; D.const char * const p=“ABCD”; 15. 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中
A.都是虚函数 B.只有被重新说明时才是虚函数
C.只有被重新说明为virtual时才是虚函数 D.都不是虚函数
第 7 页
共分享92篇相关文档