- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C++面向对象程序设计》考试试题
本试卷满分 100 分;
请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;
请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共 10 分,每题 1 分)
C++中解决命名冲突的机制是:D
虚基类 (B) 虚函数 (C) 函数重载 (D) 名字空间
若类A 的一个对象所占的内存空间中包含虚函数表的入口地址,则: C
类A 不能有静态数据成员 (B) 类A 中公有的成员函数一定是虚的
(C) 类A 中至少有一个成员函数是虚的 (D) 类A 的析构函数一定是虚的
任意一个类,析构函数的个数最多是:B
不限个数 (B) 1 (C) 2 (D) 3
下列关于this 指针的说法,哪个是正确的: D
this 指针一定指向常量型数据 (B) this 指向的数据不可更改
(C) 静态成员函数中也可以访问this 指针 (D) this指针本身可直接作为成员函数的返回值5.在类定义中,为说明成员的访问权限,private, protected, public 可以出现次数为:A
(A)次数没有具体限定 (B) 每种至多一次
(C) public 至少一次 (D) 每种至少一次
下面哪种定义方式是正确的,并且使得p 可以作为函数void f( A* const pp);的实参:A
A * p = new A; (B) A a; A* p = a;
(C) const A* p = new A; (D) A a; const A* p = a;
obj 是类A 的一个对象,执行语句 const A aA= obj; ,则下列说法正确的是: C
类A 的拷贝构造函数会被调用 (B) 类A 的赋值函数会被调用
(C) aA 的值就是 obj (D) 语句obj.f( );等价于语句aA.f( ); 8.下面关于访问类A 的私有数据成员的说法,错误的是: C
类A 的友元函数可以访问类A 的私有成员。
类A 的友元类中的非静态成员函数可以访问类A 的私有成员。
类A 的嵌套类中的非静态成员函数可以访问类A 的私有成员。
类A 中的非静态成员函数可以访问类A 的私有成员。
类A 中有唯一的一个成员函数f,且f 是公有的静态或非静态成员函数,对于类A 的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型不可以是:B
A f( int, int=50 ); (B) void f(int ) ;
(C) const A * f(const int ); (D) A f( const int);
下面关于类的成员函数描述不正确的是:A
静态成员函数内可以直接访问类的非静态成员数据
静态成员函数内可以直接访问类的静态成员数据
非静态成员函数可以直接访问类的非静态成员数据
非静态成员函数可以直接访问类的静态成员数据(全局成员)
二、判断正误,对于你认为错误的论述,说明原因或举出反例。(每题 2 分,共 20 分)
重载流操作符和 时,如果第一个参数的类型为 ostream 和 istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。
对,ostream 和 istream 是标准输入输出流、文件流、字符串流的基类
在同一个类中,可以定义重载的成员函数 void f(int);和 virtual void f(int); 。错,这属于重复定义
抽象类不会产生实例,所以不需要有构造函数。错,被派生时需要它的构造函数
类A 有一个非静态的成员函数f,其函数原型是:void A::f( ) const,则该函数被调用时, 一定是通过类A 或类A 的某后裔类的一个用const 修饰符说明的常量对象调用的。
错,常函数可以由变量对象或常量对象调用
异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该异常。错,可以在外层捕获,并且这是最常见的用法
只要程序中没有A a1 = a2; 和 A a1(a2); 形式的代码,类A 的拷贝构造函数就不会被调用。
错,参数传递或函数返回时也调用拷贝构造函数
在 protected 继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。对,否则基类中的公有成员由不可见变为可见,权限被放大
若静态成员函数中调用了一个函数f,那么f 一定不是虚函数。
对,静态成员函数不能是虚函数,因为虚函数入口需要在保存在对象中的虚函数表中,而静态成员函数不属于对象。
若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该数据成员。
对,没有别的办法
构造函数的函数体中,不能使用 return 语句;但在实现该类的自动类型转化函数时,必须有 return 语句。
对
三、回答下
文档评论(0)