第1章 C/C++语言的面向过程程序设计 1
1.1面向过程与结构化程序设计 1
1.2面向对象与面向过程 4
1.3本书采取的措施 8
1.3.1引入简化面向过程设计的C++特征 8
1.3.2介绍典型算法并强调应用 10
1.4实验 如何编写实验报告 11
1.5习题 11
第2章 C++语言的基础知识 12
2.1 C++的基本数据类型 12
2.1.1初识C++ 12
2.1.2标识符 15
2.1.3变量 16
2.1.4基本数据类型 16
2.1.5变量的存储类型 17
2.1.6常量 20
2.1.7匈牙利命名法 23
2.2 C++的表达式 24
2.2.1运算表达式和运算符 24
2.2.2赋值运算符与赋值表达式 25
2.2.3逗号运算符与逗号表达式 26
2.3典型例题及错误分析 27
2.3.1典型例题 27
2.3.2初学者最容易出现的语法错误 28
2.3.3容易出现的其他错误 28
2.4程序的编辑、编译和运行的基本概念 30
2.5实验 如何编辑、编译和运行一个实际程序 34
2.6习题 34
第3章 结构化编程基础 36
3.1典型C++程序结构 36
3.1.1函数和函数原型 36
3.1.2 const修饰符和预处理程序 38
3.1.3程序注释 39
3.1.4程序语句 40
3.1.5大小写字母的使用 41
3.1.6程序的书写格式 41
3.2关系运算与逻辑运算 42
3.3结构化程序设计概述 44
3.4控制选择结构 44
3.4.1用if语句实现选择结构设计 44
3.4.2用switch语句实现选择结构设计 48
3.5循环控制结构设计 49
3.5.1 while语句 49
3.5.2 do.while语句 50
3.5.3 for语句 51
3.5.4 break语句、continue语句及goto语句 52
3.5.5控制语句的嵌套 55
3.6数据的简单输入输出格式 55
3.7典型例题及错误分析 59
3.7.1典型例题 59
3.7.2错误分析 60
3.8实验 编程调试实验 63
3.9习题 64
第4章 计算机解题和程序调试 66
4.1枚举法 66
4.1.1重复运算 66
4.1.2分支运算 67
4.1.3逻辑思维的计算机表示 68
4.1.4使用枚举法解题的思路 69
4.1.5参考程序 70
4.2逻辑问题求解实例 72
4.2.1赛车问题 72
4.2.2新郎新娘问题 74
4.3计算机解题小结 75
4.4程序调试基础知识 76
4.4.1一个简单的示例程序 76
4.4.2编译程序 76
4.4.3排错 78
4.4.4基本调试命令简介 79
4.5实验 程序调试练习 81
4.6习题 82
第5章 构造类型初探 83
5.1指针 83
5.1.1构造指针类型 83
5.1.2指针类型及指针运算 85
5.1.3自己给指针分配地址 87
5.2引用 87
5.3数组 89
5.3.1一维数组 90
5.3.2数组与指针的关系 92
5.3.3一维字符串数组 94
5.3.4指针数组 95
5.3.5命令行参数 95
5.4类型定义关键字typedef 96
5.5使用数组与指针易犯的错误 96
5.5.1数组使用错误 96
5.5.2指针使用不当 97
5.6实验 综合实验 99
5.7习题 100
第6章 函数与多文件编程 102
6.1函数 102
6.1.1函数值和return语句 102
6.1.2函数调用形式 104
6.1.3函数的形式参数和实在参数 106
6.1.4函数的返回区 106
6.2编译指令 106
6.3内联函数 108
6.4函数重载和默认参数 109
6.5正确使用库函数 110
6.6解题和算法描述 112
6.6.1计算机解题 113
6.6.2常用过程设计算法的描述方法 116
6.7多个文件中的函数调用 117
6.7.1使用多个文件进行模块化设计 117
6.7.2头文件和函数原型的作用 118
6.7.3组合为一个工程项目 118
6.7.4使用文件包含的方法 120
6.7.5 #define和const的异同 120
6.8实验 编辑多文件程序实验 121
6.9习题 121
第7章 函数、函数指针和多维数组 124
7.1指针与const限定符 124
7.1.1左值和右值 124
7.1.2指向常量的指针 124
7.1.3常量指针 127
7.1.4指向常量的常量指针 128
7.2函数的参数及其传递方式 128
7.2.1变量作为函数参数 128
7.2.2变量指针作为函数参数 129
7.2.3传引用方式 130
7.2.4正确选择函数原型及传递参数 130
7.2.5使用const限定数组和指针作为函数参数 133
7.3指针函数 134
7.4函数指针 137
7.4.1通过函数指针完成对函数的调用 137
7.4.2通过函数指针对象将函数作为参数传给其他函数 139
7.5多维数组 141
7.5.1多维数组和指针 141
7.5.2字符串多维数组 145
7.5.3使用数组名传递地址的注意事项 146
7.6综合例题 147
7.7实验 使用函数和函数指针 154
7.7.1熟悉使用函数和指针 154
7.7.2熟悉使用函数指针 154
7.8习题 154
第8章 常用算法实例 157
8.1迭代算法 157
8.2递推算法 158
8.2.1基础知识 158
8.2.2递推实例 158
8.3递归算法 162
8.3.1递归与递推的比较 162
8.3.2图解递归执行过程实例 163
8.4查找算法 164
8.4.1线性查找 164
8.4.2二分查找 165
8.5冒泡排序 166
8.5.1图解排序过程 166
8.5.2算法分析 167
8.5.3算法设计 167
8.5.4参考程序 168
8.6逻辑问题 168
8.6.1算法分析 169
8.6.2参考程序 169
8.7蒙特卡罗法 170
8.7.1产生随机数 170
8.7.2求π的近似值 171
8.8实验 递归编程实验 173
8.9习题 173
第9章 结构和链表 174
9.1结构 174
9.1.1结构定义及其变量的初始化 174
9.1.2结构数组 176
9.1.3结构指针 176
9.1.4动态分配内存 178
9.1.5使用构造函数初始化结构变量 178
9.1.6构造类型的演变 180
9.1.7结构作为函数的参数 181
9.2链表 182
9.2.1链表的建立和访问 182
9.2.2链表结点的插入和删除 185
9.3使用链表实例 188
9.3.1设计的功能 188
9.3.2算法分析 189
9.3.3参考程序 191
9.3.4测试程序 197
9.4枚举 199
9.5联合 200
9.6实验 链表实验 201
9.7习题 202
第10章 使用对象和函数模板 204
10.1使用string对象 204
10.1.1 string对象 204
10.1.2使用string类的典型成员函数实例 207
10.1.3字符串数组和string对象 209
10.1.4使用complex对象 209
10.1.5使用对象小结 210
10.2函数模板 211
10.3向量容器 215
10.3.1定义向量列表 215
10.3.2向量最基本的操作方法 216
10.3.3使用泛型算法 220
10.4泛型算法应用于普通数组 225
10.5函数参数及其返回值 229
10.5.1正确选择函数原型及传递参数 230
10.5.2返回引用的函数 230
10.5.3返回指针的函数 231
10.5.4返回对象的函数 231
10.5.5函数返回值作为参数 232
10.6出圈游戏 232
10.7实验 向量实验 235
10.8习题 235
第11章 流类库和文件 237
11.1流类库 237
11.1.1默认输入输出格式控制 237
11.1.2使用ios base类 238
11.2文件流 242
11.2.1文件流的概念 242
11.2.2常用输出文件流成员函数 244
11.2.3常用输入流及其成员函数 246
11.3实验 文件存取实验 249
11.4习题 249
第12章 课程设计实例——学生成绩管理程序 252
12.1设计要求 252
12.1.1功能设计要求 252
12.1.2总体设计 254
12.1.3函数设计 255
12.2参考程序 259
12.3测试示例 280
12.3.1菜单项及空表和空文件测试 280
12.3.2测试建表 281
12.3.3测试读取文件 284
附录 288
附录A 按字母表顺序排序的C和C++保留字 288
附录B C语言关键字 288
附录C C语言的printf格式输出函数 289
附录D C语言的scanf格式输入函数 291
参考文献 293