C++面向对象程序设计 - 李罡@天津大学软件学院.PDFVIP

C++面向对象程序设计 - 李罡@天津大学软件学院.PDF

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档