- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C面向对象程序设计-李罡@天津大学软件学院
天津大学软件学院15162 学期
”C++面向对象程序设计“试卷和参考答案 v1.1
说明:因版面限制,部分代码不符合通常排版习惯,命名也不全遵循约定规则,虽不影响运行,但不宜模
仿!
以下所有代码片断,省略下列语句
#include iostream
using namespace std;
下面解答中提到的要点,指考前复习要点文件cpp-summary (13 页)
一、单项选择题(共50 分,每小题2 分)
1. 下列关于动态联编的描述中,错误的是( )。
A.动态联编是以虚函数为基础
B.动态联编是运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用
D.动态联编是在编译时确定操作函数的
解:D。动态联编(dynamic binding),是多态中重写(override)的特征之一。重写要求
三个必要条件:父指针或引用指向子对象、重写的函数标记为虚函数及子类提供了与父类中
的虚函数头完全相同的函数重新实现。动态联编区别于静态联编之处就在于前者是在运行时
确定所调用函数是哪个,而后者是在编译过程中确定的。运行时根据指针或引用所指向的实
际类的类型决定调用哪个函数实现运行。知识点见要点第五2 点。
2. 关于纯虚函数和抽象类的描述中,错误的是( )。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类
D. 抽象类只能作为基类来使用,不能生成对象
解:C。基类中如果有纯虚函数,则基类为抽象类,不可以创建对象。该基类的派生类可以
提供纯虚函数的实现,也可以不提供。但是除非派生类提供了基类中所有的纯虚函数的实现,
否则派生类仍然是抽象类。
3. 下列的各类函数中,不是类的成员函数。( )
A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数
解:C 。友元函数在类中声明,可以访问类的私有属性和方法,但是它不是类的成员函数。
4. 在公有(public )继承的情况下,基类的成员(私有的除外)在派生类中的访问权限( )
A. public B. protected C. private D. 保持不变
解:D。公有继承是实现is a 的关系。基类中除private 成员被hidden 外,其他访问权限的
成员,其访问权限被派生类保持不变的继承。知识点见要点第四点。
5. 系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:( )
A. 参数个数不同 B. 参数类型不同
C. 不同类型参数的顺序不同 D. 函数的返回值类型不同
解:D。同名函数的签名不同,会构成重载(overload )。ABC 都是函数签名中的部分,但是
返回值类型不是函数签名的一部分。知识点见要点第五-1 点。
阅读下列代码,回答以下3 道问题。
int value1 = 1;
const int value2 = 2;
6. 下面哪条语句可以通过编译?
A. int* const p1; B. int* const p1=value1;
C. int* const p1=value2; D. 以上均可以
解:B。p1 是const 指针,必须初始化,所以A 错。但是p1 不是指向const 数据的指针,只
能指向non-const 的变量,不能指向const 变量,所以C 错。知识点见要点第二2 点。
7. 执行下面的语句段,结果是什么?
const int r1 = value1; value1 = 3;
cout value1 , r1 endl;
A. 输出1,1 B. 输出3,1 C.输出3,3 D.编译无法通过
解:C 。指向const 数据的指针或引用,既可以指向const 变量,也可以指向non-const 变量。
value1 是non-const 变量,可以修改其值。r1 是value1 的别名,用哪个名字取其内容自然都
是一样的。知识点见要点第二2 点。
8. 执行下面的语句段,结果是什么?
value1 = 3; int const *p2 = value1; *p2 =
文档评论(0)