最新c++期末试卷.doc
《最新c++期末试卷.doc》由会员分享,可在线阅读,更多相关《最新c++期末试卷.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec+期末试卷C+面向对象程序设计考试试题 C+面向对象程序设计考试试题 一、单选题(共10分,每题1分) 1. C+中解决命名冲突的机制是:D (A) 虚基类 (B) 虚函数 (C) 函数重载 (D) 名字空间 2. 若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则: C (A) 类A不能有静态数据成员 (B) 类A中公有的成员函数一定是虚的 (C) 类A中
2、至少有一个成员函数是虚的 (D) 类A的析构函数一定是虚的 3 任意一个类,析构函数的个数最多是:B (A) 不限个数 (B) 1 (C) 2 (D) 3 4 下列关于this指针的说法,哪个是正确的: D (A) this指针一定指向常量型数据 (B) this指向的数据不可更改 (C) 静态成员函数中也可以访问this指针 (D) this指针本身可直接作为成员函数的返回值 5 在类定义中,为说明成员的访问权限,private, protected, public 可以出现次数为:A (A)次数没有具体限定 (B) 每种至多一次 (C) public 至少一次 (D) 每种至少一次 6下面
3、哪种定义方式是正确的,并且使得p可以作为函数void f( A* const pp);的实参:A (A) A * p = new A; (B) A a; A* p = a; (C) const A* p = new A; (D) A a; const A* p = a; 7 obj是类A的一个对象,执行语句 const A& aA= obj; ,则下列说法正确的是: C (A) 类A的拷贝构造函数会被调用 (B) 类A的赋值函数会被调用 (C) &aA的值就是 &obj (D) 语句obj.f( );等价于语句aA.f( ); 8下面关于访问类A的私有数据成员的说法,错误的是: C (A) 类
4、A的友元函数可以访问类A的私有成员。 (B) 类A的友元类中的非静态成员函数可以访问类A的私有成员。 (C) 类A的嵌套类中的非静态成员函数可以访问类A的私有成员。 (D) 类A中的非静态成员函数可以访问类A的私有成员。 9 类A中有唯一的一个成员函数f,且f是公有的静态或非静态成员函数,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型不可以是:B (A) A& f( int, int=50 ); (B) void f(int& ) (C) const A * f(const int ); (D) A f( const int&); 10. 下面关于类的成员函数描述不
5、正确的是:A (A) 静态成员函数内可以直接访问类的非静态成员数据 (B) 静态成员函数内可以直接访问类的静态成员数据 (C) 非静态成员函数可以直接访问类的非静态成员数据 (D) 非静态成员函数可以直接访问类的静态成员数据(全局成员) 二、判断正误,对于你认为错误的论述,说明原因或举出反例。(每题2分,共20分) 1. 重载流操作符 时,如果第一个参数的类型为ostream 和istream,那么这个重载函 数既可以用于标准输入输出流,也可以用于文件流上。 对,ostream 和istream是标准输入输出流、文件流、字符串流的基类 2. 在同一个类中,可以定义重载的成员函数 void f(
6、int);和virtual void f(int); 。 错,这属于重复定义 3. 抽象类不会产生实例,所以不需要有构造函数。 错,被派生时需要它的构造函数 4. 类A有一个非静态的成员函数f,其函数原型是:void A:f( ) const,则该函数被调用时, 一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。 错,常函数可以由变量对象或常量对象调用 5. 异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该异常。 错,可以在外层捕获,并且这是最常见的用法 6. 只要程序中没有A a1 = a2; 和A a1(a2); 形式的代码,类A的拷贝构造函数就不会被调
7、 用。 错,参数传递或函数返回时也调用拷贝构造函数 7. 在protected继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。 对,否则基类中的公有成员由不可见变为可见,权限被放大 8. 若静态成员函数中调用了一个函数f,那么f 一定不是虚函数。 对,静态成员函数不能是虚函数,因为虚函数入口需要在保存在对象中的虚函数 表中,而静态成员函数不属于对象。 9. 若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该 数据成员。 对,没有别的办法 10. 构造函数的函数体中,不能使用return语句;但在实现该类的自动类型转化函数时,必须 有return 语句。
8、 对 三、 回答下列各题(每题4分,共20分) 1. 举例说明static关键字的用法和相应目的(至少3种)。 f() static int a; 函数体内的静态变量,每次调用该函数时值保持不变 static int a; 全局的静态变量,约束作用域为所在文件 class A static int a; A的静态成员,类似全局变量,需用A:a访问 2. 举例说明类的数据成员在哪些情况下必须在初始化列表中进行初始化(至少3种)。 基类不提供无参的构造函数 成员对象不提供无参的构造函数 有常量成员或引用成员 3. 举例说明虚拟继承的作用和目的。 虚拟继承的目的是使基类在派生类中只保留一个副本 从而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 c+ 期末试卷
限制150内