本书是“国家精品在线开放课程”配套教材,第一版于2018年出版,出版后受到广大读者好评。作者根据实际教学过程中总结的一些经验和发现的一些不足及问题,结合本校和MOOC学生的反馈意见,重新修订本教材。主要内容如下:
(1)教学内容升级。教学内容整体10章保持不变,重点章节的部分案例及实验,习题等大量内容重新修订,使其更吸引学生兴趣,能够更客观地反映学生编程水平。
(2)教材布局修订。本教材既适用于传统教学,也适用于采用翻转课堂教学法的学习者,还适合对程序设计感兴趣的社会学习者。因此,本教材的布局很有新意,按照引言、基础理论、课堂练习、实验、小结、习题和知识补充与扩展等七部分展开。新版将除了对各部分内容进行调整和置换,还将课堂练习部分拆分成3部分:重点难点剖析、编程实战和课堂练习。拆分之后,更适合翻转课堂老师使用教材,也方便学生学习。
(3)习题升级。习题根据难度等级不同分成作业和练习题,其中练习题分成简单练习题,中等练习题,较难的练习题;练习题在在线OJ网站发布,供学生进行编程练习使用。
戴波,李忻洋,陈文宇,丘志杰
----------------------------
戴波,电子科技大学计算机学院副教授,教学骨干。主讲多门课程,如组合数学、程序设计基础、数据结构与算法、计算机算法与程序设计等课程。全年上课课时超过300学时,人数近1千人。 每门课程学生评价优良。
第 1 篇 C 语言程序设计
第 1 章 C 语言程序设计概述 3
1 . 1 引言 3
1 . 2 程序设计语言的发展历程 4
1 . 3 软件开发过程 6
1 . 4 算法的表示形式 6
1 . 5 C 语言程序的基础知识 9
1 . 6 C/C + + 语言程序的编写和运行 13
1 . 7 华为 CodeArts IDE 的安装及基本使用 21
1 . 8 华为鲲鹏体系介绍 21
1 . 9 华为云平台 24
1 . 10 鲲鹏平台 openEuler 编译及运行 C 语言程序 24
1 . 11 小结 25
1 . 12 课后作业 26
第 2 章 基本数据类型及运算 27
2 . 1 基本数据类型 27
2 . 2 常量 29
2 . 3 变量 33
2 . 4 运算符与表达式 35
2 . 5 混合运算与类型转换 48
2 . 6 数据的输入/输出 50
2 . 7 课堂练习题 56
2 . 8 小结 60
2 . 9 课后作业 60
2 . 10 知识补充与扩展 61
第 3 章 控制语句 62
3 . 1 程序的三种基本结构 62
3 . 2 复合语句 63
3 . 3 if 条件分支语句 64
3 . 4 switch 多路开关语句 68
3 . 5 for 循环 69
3 . 6 while 循环和 do while 循环 70
3 . 7 循环嵌套 72
3 . 8 break、continue 和 goto 语句 73
3 . 9 课堂练习题 76
3 . 10 上机实验 77
3 . 11 小结 78
3 . 12 课后作业 78
3 . 13 知识补充与扩展 80
第 4 章 数组和结构 81
4 . 1 一维数组 81
4 . 2 二维数组 84
4 . 3 字符数组 88
4 . 4 结构及结构变量 92
4 . 5 结构数组 96
4 . 6 课堂练习题 97
4 . 7 上机实验 99
4 . 8 小结 100
4 . 9 课后作业 100
4 . 10 知识补充与扩展 101
第 5 章 指针 103
5. 2 指针运算 106
5. 3 指针和数组 109
5. 4 字符串指针 114
5. 5 指针数组 118
5. 6 课堂练习题 120
5. 7 上机实验 122
5. 8 小结 123
5. 9 课后作业 124
5. 10 知识补充与扩展 125
第 6 章 函数 127
6. 1 函数定义和调用 131
6. 2 函数参数传递 134
6. 3 函数返回指针 139
6. 4 递归函数 141
6 . 5 课堂练习题 143
6 . 6 上机实验 145
6 . 7 小结 147
6 . 8 课后作业 148
6 . 9 知识补充与扩展 149
第 2 篇 C + + 语言程序设计
第 7 章 C + + 语言编程基础 153
7 . 1 面向对象的三个核心概念 153
7 . 2 C + + 语言中的 I/O 154
7 . 3 C + + 语言中的数据类型 155
7 . 4 C + + 语言中的内联函数 159
7 . 5 函数重载 160
7 . 6 带默认形参值的函数 160
7 . 7 C + + 语言中的动态内存分配和释放 162
7 . 8 课堂练习题 163
7 . 9 小结 165
7 . 10 课后作业 165
7 . 11 知识补充与扩展 166
C + + 的文件操作 166
第 8 章 类与对象 168
8 . 1 类类型的定义 168
8 . 2 类成员的访问控制 170
8 . 3 类类型的使用 172
8 . 4 构造函数的引入 175
8 . 5 析构函数的引入 176
8 . 6 重载构造函数的引入 178
8 . 7 复制构造函数的引入 180
8 . 8 对象数组 181
8 . 9 对象指针 182
8 . 10 this 指针 183
8 . 11 类类型作为参数类型的三种形式 184
8 . 12 静态成员 186
8 . 13 友元机制 189
8 . 14 类的组合 192
8 . 15 数据成员的初始化和释放顺序 193
8 . 16 常对象与常成员 194
8 . 17 课堂练习题 196
8 . 18 上机实验 199
8 . 19 小结 202
8 . 20 课后作业 203
第 9 章 继承、派生与多态 206
9 . 1 派生类的概念 206
9 . 2 公有继承 209
9 . 3 派生类的构造和析构 210
9 . 4 保护成员的引入 212
9 . 5 改造基类的成员函数 213
9 . 6 派生类与基类同名成员的访问方式 214
9 . 7 私有继承和保护继承 214
9 . 8 多继承 217
9 . 8 . 1 多继承中的二义性问题 218
9 . 8 . 2 虚基类 220
9 . 9 多态 221
9 . 10 运算符重载 222
9 . 11 赋值兼容规则 230
9 . 12 虚函数 233
9 . 13 课堂练习题 240
9 . 14 上机实验 242
9 . 15 小结 243
9 . 16 课后作业 244
第 10 章 模板、命名空间和异常处理 249
10 . 1 模板 249
10 . 2 命名空间 254
10 . 3 异常处理 259
10 . 4 课堂练习题 263
10 . 5 小结 263
10 . 6 课后作业 263
10 . 7 知识补充与扩展 264
10 . 8 网站推荐 264