C++课后习题讲解.docx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
博学谷——让IT教学更简单,让IT学习更有效 第一章 题目 填空题 1、C++是一种 的语言。 2、C++作为一门面向对象语言,它的三大特性分别是 、 、 。 3、C++有 、 、 、 、 等优点,但C++语言本身过度复杂,并且C++编译器受到C++复杂性的影响,非常难于编写,即使能够使用的编译器也存在大量问题,而且这些问题大多难于发现。 4、观察程序,在下面括号内填入“相等” 或 “不相等”。 #include iostream using namespace std; int main(void) { int a ,b; cin a b; bool c = (a == b); if(c) couta 与 b ( ) endl; else couta 与 b ( ) endl; return 0; } 二、选择题 5、下列关于iostream的描述中,错误的是( )。 A、它是标准的C++头文件 B、它与iostream.h是两个不同文件 C、C++标准不再支持iostream.h文件 D、iostream与iostream.h文件形式不同,但其内容实现是一样的 6、下列关于C++中的类型转换的说法中,错误的是( )。 A、static_cast可用于基本数据类型之间的转换 B、const_cast在进行类型转换时用来修改类型的const或volatile属性 C、dynamic_cast主要用于类层次间的上行和下行转换,以及类之间的交叉转换 D、reinterpret_cast在进行类型转换时可以对数据类型进行检查,以确保转换的安全性 7、下列关于string的描述中,正确的是( ) A、string是C++中的基本数据类型 B、string包含在头文件iostream中 C、用C++ string类来定义字符串,不必担心字符串长度、内存不足等情况 D、C++中无法用字符数组来处理字符串 8、下列关于引用的说法中,错误的是( ) A、引用在定义时必须初始化 B、引用就是指针 C、引用在初始化时只能绑定左值,不能绑定常量值 D、引用一旦初始化,其值就不能再更改 三、判断题 9、语句using namespace std;是对标准命名空间的引用。 10、如果定义string s(5, ‘a’); 则s.length()和s.size()的值是相等的。 11、引用实际上是隐式的指针,和指针是同一种数据类型。 一个函数一旦定义成了内联函数,则在调用时就会将函数代码插入到调用处。 四、简答题 13、请简述一下引用与指针的区别。 14、请简述一下new与malloc在分配内存时的区别。 15、定义一组重载函数,实现int、float、char类型数据的相加。 第一章 答案 1、面向对象 2、封装 继承 多态。 3、保持与C兼容 支持面向对象的机制 可重用性、可扩充性、可靠性和可维护性 代码性能高 多种设计风格 4、相等 不相等 5、D 6、D 7、C 8、B 9、对 10、对 11、错 12、错 13、引用是隐式的指针,但使用引用与使用指针却有着本质的区别: (1)使用引用类型就不必在swap()函数中声明形参是指针变量。指针变量要另外开辟内存单元,其内容是地址。而引用变量不是一个独立的变量,不单独占内存单元。 (2)在main()函数中调用swap()函数时,实参不必用变量的地址(在变量名的前面加),而直接用变量名。系统向形参传送的是实参的地址而不是实参的值。 14、 (1) new创建对象时返回的是直接带类型信息的指针,而malloc()返回的都是void*类型的指针. (2)两者在创建对象时都可能造成内存泄露,但new可以定位到哪个文件的哪一行,而malloc()没有这些信息。 (3)对于非内置类型对象而言,new/delete在创建对象时不止是分配内存,还会自动执行构造函数进行初始化,对象消亡之前自动执行析构函数,而malloc()/free()只能简单的分配释放内存。 (4)new与malloc()申请内存位置不同,new从自由存储区(free store)分配,而malloc()从堆区(heap)分配。(这一点依据编绎器不同而不同)。 15、 #include iostream using namespace std; void add(int x, int y) { cout x + y endl; } void add(char ch1, char ch2) { cout ch1 + ch2 en

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档