当前位置:主页 > 课后答案 > C++习题答案
C++程序设计

《C++程序设计》课后习题答案

  • 更新:2022-01-11
  • 大小:15.9 MB
  • 类别:C++
  • 作者:谭浩强
  • 出版:清华大学出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

《c++程序设计》是清华大学出版社出版的图书,作者是谭浩强。

《中国高等院校计算机基础教育课程体系规划教材:C++程序设计(第2版)》作者谭浩强深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了读者在学习中的困难和认识规律,设计了读者易于学习的教材体系,于2004年出版了《C++程序设计》一书。该书降低入门起点,不需要C语言的基础,从零起点介绍程序设计和C++。广大师生用后反映非常好,认为该书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C++的许多难懂的概念作了透彻而通俗的说明,大大降低了初学者学习的困难,是一本初学者学习C++的好教材。 根据教学实践的需要,作者对该书进行了修订,出版了本书,与第1版相比,内容更加丰富,讲解更加清晰,学习更加容易,依据ANSIC++标准进行介绍,引导读者从一开始就按C++的要求编程,而不是过多地迁就C语言的习惯。 

本书把入门起点降低,读者不需要具备C语言的基础。本书包括14章,分为4篇:基本知识;面向过程的程序设计;基于对象的程序设计;面向对象的程序设计。本书内容全面,例题丰富,概念清晰,循序渐进,易于学习。

《C++程序设计》是依据ANSI C++标准进行介绍的,引导读者从一开始就按标准C++的规定编程。本书配有两本辅导教材,即《C++程序设计题解与上机指导》和《C++编程实践指导》,全书分为4篇:基本知识;基于过程的程序设计;基于对象的程序设计;面向对象的程序设计。 本书内容全面,例题丰富,概念清晰,循序渐进,易于学习,即使没有教师讲授,读者也能看懂本书的大部分内容。本书是学习C++的入门教材,可供各类专业学生使用,也可作为计算机培训班的教材以及读者自学参考。

目录

  • 第1篇基本知识
  • 第1章C++的初步知识 
  • 1.1从C到C++
  • 1.2最简单的C++程序
  • 1.3C++程序的构成和书写形式
  • 1.4C++程序的编写和实现
  • 1.5关于C++上机实践
  • 习题
  • 第2章数据类型和表达式
  • 2.1C++的数据类型
  • 2.2常量
  • 2.2.1什么是常量
  • 2.2.2数值常量
  • 2.2.3字符常量
  • 2.2.4符号常量
  • 2.3变量
  • 2.3.1什么是变量
  • 2.3.2变量名规则
  • 2.3.3定义变量
  • 2.3.4对变量赋初值
  • 2.3.5常变量
  • 2.4C++的运算符
  • 2.5算术运算符与算术表达式
  • 2.5.1基本的算术运算符
  • 2.5.2算术表达式和运算符的优先级与结合性
  • 2.5.3表达式中各类数值型数据间的混合运算
  • 2.5.4自增(++)和自减(——)运算符
  • 2.5.5强制类型转换运算符
  • 2.6赋值运算符和赋值表达式
  • 2.6.1赋值运算符
  • 2.6.2赋值过程中的类型转换
  • 2.6.3复合赋值运算符
  • 2.6.4赋值表达式
  • 2.7逗号运算符和逗号表达式
  • 习题
  • 第2篇基于过程的程序设计
  • 第3章程序设计初步
  • 3.1基于过程的程序设计和算法
  • 3.1.1算法的概念+
  • 3.1.2算法的表示
  • 3.2C++的程序结构和C++语句
  • 3.3赋值操作
  • 3.4C++的输入与输出
  • 3.4.1输入流与输出流的基本操作
  • 3.4.2在标准输入流与输出流中使用控制符
  • 3.4.3用getchar和putchar函数进行字符的输入和输出
  • 3.4.4用scanf和printf函数进行输入和输出
  • 3.5编写顺序结构的程序
  • 3.6关系运算和逻辑运算
  • 3.6.1关系运算和关系表达式
  • 3.6.2逻辑常量和逻辑变量
  • 3.6.3逻辑运算和逻辑表达式
  • 3.7选择结构和if语句
  • 3.7.1if语句的形式
  • 3.7.2if语句的嵌套
  • 3.7.3条件运算符和条件表达式
  • 3.7.4多分支选择结构与switch语句
  • 3.7.5 编写选择结构的程序
  • 3.8循环结构和循环语句
  • 3.8.1用while语句构成循环
  • 3.8.2用do-while语句构成循环
  • 3.8.3用for语句构成循环
  • 3.8.4几种循环的比较
  • 3.12循环的嵌套79
  • 3.13break语句和continue语句79
  • 3.14编写循环结构的程序80
  • 习题85
  • 第4章函数与预处理88
  • 4.1概述88
  • 4.2定义函数的一般形式90
  • 4.2.1定义无参函数的一般形式90
  • 4.2.2定义有参函数的一般形式91
  • 4.3函数参数和函数的值91
  • 4.3.1形式参数和实际参数91
  • 4.3.2函数的返回值93
  • 4.4函数的调用94
  • 4.4.1函数调用的一般形式94
  • 4.4.2函数调用的方式94
  • 4.4.3对被调用函数的声明和函数原型95
  • *4.5内置函数97
  • *4.6函数的重载99
  • *4.7函数模板102
  • *4.8有默认参数的函数103
  • 4.9函数的嵌套调用105
  • 4.10函数的递归调用109
  • 4.11局部变量和全局变量112
  • 4.11.1局部变量112
  • 4.11.2全局变量113
  • 4.12变量的存储类别115
  • 4.12.1动态存储方式与静态存储方式115
  • 4.12.2自动变量116
  • 4.12.3用static声明静态局部变量116
  • 4.12.4用register声明寄存器变量119
  • 4.12.5用extern声明外部变量119
  • 4.12.6用static声明静态外部变量121
  • 4.13变量属性小结122
  • 4.14关于变量的声明和定义124
  • 4.15内部函数和外部函数125
  • 4.15.1内部函数125
  • 4.15.2外部函数125
  • 4.16预处理命令127
  • 4.16.1宏定义127
  • 4.16.2“文件包含”处理128
  • 4.16.3条件编译131
  • 习题132
  • 第5章数组134
  • 5.1数组的概念134
  • 5.2一维数组的定义和引用135
  • 5.2.1定义一维数组135
  • 5.2.2引用一维数组的元素135
  • 5.2.3一维数组的初始化136
  • 5.2.4一维数组程序举例137
  • 5.3二维数组的定义和引用139
  • 5.3.1定义二维数组139
  • 5.3.2二维数组的引用140
  • 5.3.3二维数组的初始化140
  • 5.3.4二维数组程序举例142
  • 5.4用数组名作函数参数144
  • 5.5字符数组148
  • 5.5.1字符数组的定义和初始化148
  • 5.5.2字符数组的赋值与引用149
  • 5.5.3字符串和字符串结束标志150 [4]
  • 5.5.4字符数组的输入输出151
  • 5.5.5字符串处理函数152
  • 5.5.6字符数组应用举例155
  • *5.6C++处理字符串的方法——字符串类与字符串变量156
  • 5.6.1字符串变量的定义和引用156
  • 5.6.2字符串变量的运算157
  • 5.6.3字符串数组158
  • 5.6.4字符串运算举例159
  • 习题162
  • 第6章指针164
  • 6.1指针的概念164
  • 6.2变量与指针166
  • 6.2.1定义指针变量166
  • 6.2.2引用指针变量167
  • 6.2.3指针作为函数参数170
  • 6.3数组与指针174
  • 6.3.1指向数组元素的指针174
  • 6.3.2用指针变量作函数参数接收数组地址178
  • 6.3.3多维数组与指针180
  • 6.4字符串与指针184
  • 6.5函数与指针186
  • 6.5.1用函数指针变量调用函数186
  • 6.5.2用指向函数的指针作函数参数187
  • 6.6返回指针值的函数188
  • 6.7指针数组和指向指针的指针188
  • 6.7.1指针数组的概念188
  • 6.7.2指向指针的指针190
  • 6.8有关指针的数据类型和指针运算的小结192
  • 6.8.1有关指针的数据类型的小结192
  • 6.8.2指针运算小结193
  • *6.9引用194
  • 6.9.1什么是变量的引用194
  • 6.9.2引用的简单使用195
  • 6.9.3引用作为函数参数195
  • 习题199
  • 第7章自定义数据类型201
  • 7.1结构体类型201
  • 7.1.1结构体概述201
  • 7.1.2结构体类型变量的定义方法及其初始化202
  • 7.1.3结构体变量的引用205
  • 7.1.4结构体数组207
  • 7.1.5指向结构体变量的指针211
  • 7.1.6结构体类型数据作为函数参数214
  • *7.1.7动态分配和撤销内存的运算符new和delete217
  • 7.2共用体219
  • 7.2.1共用体的概念219
  • 7.2.2对共用体变量的访问方式220
  • 7.2.3共用体类型数据的特点220
  • 7.3枚举类型222
  • 7.4用typedef声明类型225
  • 习题227第3篇基于对象的程序设计第8章类和对象231
  • 8.1面向对象程序设计方法概述231
  • 8.1.1什么是面向对象的程序设计231
  • 8.1.2面向对象程序设计的特点234
  • 8.1.3类和对象的作用235
  • 8.1.4面向对象的软件开发236
  • 8.2类的声明和对象的定义238
  • 8.2.1类和对象的关系238
  • 8.2.2声明类类型238
  • 8.2.3定义对象的方法240
  • 8.2.4类和结构体类型的异同242
  • 8.3类的成员函数243
  • 8.3.1成员函数的性质243
  • 8.3.2在类外定义成员函数244
  • 8.3.3inline成员函数245
  • 8.3.4成员函数的存储方式246
  • 8.4对象成员的引用248
  • 8.4.1通过对象名和成员运算符访问对象中的成员248
  • 8.4.2通过指向对象的指针访问对象中的成员249
  • 8.4.3通过对象的引用变量来访问对象中的成员249
  • 8.5类的封装性和信息隐蔽249
  • 8.5.1公用接口与私有实现的分离249
  • 8.5.2类声明和成员函数定义的分离251
  • 8.5.3面向对象程序设计中的几个名词254
  • 8.6类和对象的简单应用举例254
  • 习题261
  • 第9章关于类和对象的进一步讨论263 [4]
  • 9.1构造函数263
  • 9.1.1对象的初始化263
  • 9.1.2构造函数的作用264
  • 9.1.3带参数的构造函数266
  • 9.1.4用参数初始化表对数据成员初始化267
  • 9.1.5构造函数的重载267
  • 9.1.6使用默认参数的构造函数269
  • 9.2析构函数272
  • 9.3调用构造函数和析构函数的顺序274
  • 9.4对象数组275
  • 9.5对象指针277
  • 9.5.1指向对象的指针277
  • 9.5.2指向对象成员的指针278
  • 9.5.3this指针281
  • 9.6共用数据的保护282
  • 9.6.1常对象283
  • 9.6.2常对象成员284
  • 9.6.3指向对象的常指针285
  • 9.6.4指向常对象的指针变量285
  • 9.6.5对象的常引用289
  • 9.6.6const型数据的小结290
  • 9.7对象的动态建立和释放290
  • 9.8对象的赋值和复制291
  • 9.8.1对象的赋值291
  • 9.8.2对象的复制293
  • 9.9静态成员295
  • 9.9.1静态数据成员296
  • 9.9.2静态成员函数298
  • 9.10友元301
  • 9.10.1友元函数301
  • 9.10.2友元类305
  • 9.11类模板306
  • 习题310
  • 第10章运算符重载314
  • 10.1什么是运算符重载314
  • 10.2运算符重载的方法316
  • 10.3重载运算符的规则318
  • 10.4运算符重载函数作为类成员函数和友元函数320
  • 10.5重载双目运算符323
  • 10.6重载单目运算符328
  • 10.7重载流插入运算符和流提取运算符331
  • 10.7.1重载流插入运算符“<<”331
  • 10.7.2重载流提取运算符“>>”333
  • 10.8不同类型数据间的转换335
  • 10.8.1标准类型数据间的转换335
  • 10.8.2转换构造函数336
  • 10.8.3类型转换函数338
  • 习题343第4篇面向对象的程序设计第11章继承与派生347
  • 11.1继承与派生的概念347
  • 11.2派生类的声明方式350
  • 11.3派生类的构成351
  • 11.4派生类成员的访问属性352
  • 11.4.1公用继承353
  • 11.4.2私有继承355
  • 11.4.3保护成员和保护继承358
  • 11.4.4多级派生时的访问属性361
  • 11.5派生类的构造函数和析构函数363
  • 11.5.1简单的派生类的构造函数363
  • 11.5.2有子对象的派生类的构造函数366
  • 11.5.3多层派生时的构造函数369
  • 11.5.4派生类构造函数的特殊形式372
  • 11.5.5派生类的析构函数372
  • 11.6多重继承373
  • 11.6.1声明多重继承的方法373
  • 11.6.2多重继承派生类的构造函数373
  • 11.6.3多重继承引起的二义性问题376
  • 11.6.4虚基类379
  • 11.7基类与派生类的转换384
  • 11.8继承与组合388
  • 11.9继承在软件开发中的重要意义389
  • 习题390
  • 第12章多态性与虚函数395
  • 12.1多态性的概念395
  • 12.2一个典型的例子396
  • 12.3虚函数401
  • 12.3.1虚函数的作用401
  • 12.3.2静态关联与动态关联405
  • 12.3.3在什么情况下应当声明虚函数406
  • 12.3.4虚析构函数407
  • 12.4纯虚函数与抽象类408
  • 12.4.1纯虚函数408
  • 12.4.2抽象类409
  • 12.4.3应用实例410
  • 习题416
  • 第13章输入输出流417
  • 13.1C++的输入和输出417
  • 13.1.1输入输出的含义417
  • 13.1.2C++的I/O对C的发展——类型安全和
  • 可扩展性417
  • 13.1.3C++的输入输出流418
  • 13.2标准输出流422
  • 13.2.1cout,cerr和clog流422
  • 13.2.2格式输出425
  • 13.2.3用流成员函数put输出字符429
  • 13.3标准输入流430
  • 13.3.1cin流430
  • 13.3.2用于字符输入的流成员函数432
  • 13.3.3istream类的其他成员函数436
  • 13.4文件操作与文件流439
  • 13.4.1文件的概念439
  • 13.4.2文件流类与文件流对象440
  • 13.4.3文件的打开与关闭441
  • 13.4.4对ASCII文件的操作443
  • 13.4.5对二进制文件的操作448
  • 13.5字符串流453
  • 习题458
  • 第14章C++工具459
  • 14.1异常处理459
  • 14.1.1异常处理的任务459
  • 14.1.2异常处理的方法460
  • 14.1.3在函数声明中进行异常情况指定467
  • 14.1.4在异常处理中处理析构函数467
  • 14.2命名空间469
  • 14.2.1为什么需要命名空间469
  • 14.2.2什么是命名空间473
  • 14.2.3使用命名空间解决名字冲突475
  • 14.2.4使用命名空间成员的方法477
  • 14.2.5无名的命名空间479
  • 14.2.6标准命名空间std479
  • 14.3使用早期的函数库480
  • 习题481
  • 附录A常用字符与ASCII代码对照表483
  • 附录B运算符与结合性484
  • 参考文献486

资源下载

资源下载地址1:https://pan.baidu.com/s/1kQnJZonio68cglq-wY1-rg

相关资源

网友留言