第1章 程序设计基础知识 1
1.1 计算机中数的表示与编码 1
1.1.1 进位记数制 2
1.1.2 二进位数在计算机内的表示 4
1.1.3 常用的信息编码 6
1.2 程序设计及程序设计语言 7
1.3 算法及算法表示 8
1.4 用程序流程图表示算法 9
1.5 程序设计方法 11
1.5.1 结构化程序设计 11
1.5.2 面向对象程序设计 12
1.6 小结与知识扩展 12
1.6.1 小结 12
1.6.2 计算机中常用存储单位及其换算 13
习题 14
第2章 C++简单程序设计 15
2.1 C++程序的基本结构和要素 15
2.1.1 一个简单的C++程序 15
2.1.2 字符集 17
2.1.3 词法记号 18
2.1.4 注释 19
2.2 基本数据类型和数据 19
2.2.1 基本数据类型 20
2.2.2 常量 22
2.2.3 变量和引用 25
2.3 运算符与表达式 27
2.3.1 算术表达式 28
2.3.2 自增和自减运算符 28
2.3.3 赋值表达式 30
2.3.4 逗号表达式 30
2.3.5 关系表示式 31
2.3.6 逻辑表达式 32
2.3.7 条件表达式 32
2.3.8 sizeof运算符 33
2.3.9 位运算 33
2.3.10 运算符的优先级和结合性 36
2.4 数据类型转换 36
2.4.1 赋值时的类型转换 36
2.4.2 表达式中隐含转换 38
2.4.3 强制类型转换 38
2.5 简单的输入与输出控制 39
2.5.1 C++的输入与输出 39
2.5.2 通过I/O流控制符进行格式控制 40
2.6 C++基础知识编程案例 41
2.7 小结与知识扩展 43
2.7.1 小结 43
2.7.2 C语言的printf()和scanf()函数 43
2.7.3 C语言的getchar()和putchar()函数 45
2.7.4 数据溢出 46
习题 47
第3章 程序控制结构 50
3.1 选择控制结构 51
3.1.1 选择控制语句if else 51
3.1.2 条件运算符?:代替if else语句 52
3.1.3 if else语句的嵌套 53
3.1.4 多路选择控制语句switch 56
3.2 循环控制结构 57
3.2.1 while语句 57
3.2.2 do while语句 59
3.2.3 for语句 60
3.2.4 输入信息控制循环 61
3.2.5 循环嵌套 62
3.3 其他控制语句 64
3.3.1 break语句 64
3.3.2 continue语句 64
3.3.3 goto语句 65
3.4 程序控制编程案例 66
3.5 小结与知识扩展 73
3.5.1 小结 73
3.5.2 字符函数库 74
习题 76
第4章 函数 80
4.1 函数的定义与调用 80
4.1.1 函数定义 81
4.1.2 函数调用 82
4.2 函数的参数传递 84
4.2.1 数值传递 85
4.2.2 引用传递 86
4.3 递归函数 87
4.4 函数探幽 89
4.4.1 默认参数值的函数 89
4.4.2 内联函数 91
4.4.3 函数重载 93
4.4.4 函数模板 95
4.5 使用C++系统函数 97
4.6 函数编程案例 98
4.7 小结与知识扩展 102
4.7.1 小结 102
4.7.2 main()函数 103
习题 104
第5章 数组 109
5.1 数组的基本概念 109
5.2 一维数组 110
5.2.1 一维数组的声明 110
5.2.2 访问一维数组的元素 110
5.2.3 一维数组的初始化 112
5.3 多维数组 113
5.3.1 二维数组的声明 114
5.3.2 访问二维数组的元素 114
5.3.3 二维数组的初始化 115
5.4 数组作为函数参数 117
5.4.1 一维数组名作为参数 117
5.4.2 二维数组的行地址作为参数 120
5.5 数组与字符串 122
5.5.1 字符型数组的初始化 122
5.5.2 字符串的基本操作 123
5.6 数组编程案例 126
5.6.1 排序 126
5.6.2 查找 127
5.6.3 统计 129
5.6.4 字符处理 131
5.6.5 数列处理 132
5.7 小结与知识扩展 134
5.7.1 小结 134
5.7.2 数组越界 134
5.7.3 算法的时间复杂度及其表示 135
习题 137
第6章 自定义数据类型 140
6.1 结构体 140
6.1.1 结构体类型的定义 140
6.1.2 结构体变量的引用 143
6.1.3 结构体数组 144
6.2 共用体 146
6.3 枚举类型 147
6.4 类型自定义语句 149
6.5 类和对象 150
6.5.1 类的定义 150
6.5.2 对象的使用 151
6.5.3 构造函数和析构函数 153
6.6 小结与知识扩展 154
6.6.1 小结 154
6.6.2 构造函数的重载 154
习题 155
第7章 指针 156
7.1 指针的概念 156
7.2 指针变量 158
7.2.1 指针变量的声明 158
7.2.2 指针的基本操作 159
7.2.3 指针变量的初始化 159
7.2.4 指针的运算 161
7.3 指针与数组 164
7.3.1 指针与数组的关系 164
7.3.2 使用指针访问数组元素 165
7.3.3 指向多维数组的指针 166
7.3.4 多级指针 168
7.3.5 指针数组 170
7.4 指针与函数 171
7.4.1 指针变量作为函数参数 171
7.4.2 指向函数的指针 174
7.4.3 指针作为函数的返回类型 176
7.5 指针与字符串 177
7.5.1 字符型指针与字符串 177
7.5.2 字符串标准库函数 179
7.6 动态内存分配与new和delete运算符 180
7.6.1 new运算符 180
7.6.2 delete运算符 182
7.7 指针编程案例 183
7.8 小结与知识扩展 190
7.8.1 小结 190
7.8.2 malloc()和free()函数 191
7.8.3 常指针 193
7.8.4 链表操作 194
习题 200
第8章 C++程序结构 202
8.1 作用域 202
8.2 生存期 205
8.3 局部变量和全局变量 206
8.4 编译预处理 207
8.4.1 文件包含 208
8.4.2 宏定义 208
8.4.3 条件编译 213
8.5 多文件结构 215
8.6 名称空间 216
8.7 小结与知识扩展 219
8.7.1 小结 219
8.7.2 命令行参数 220
8.7.3 异常处理 222
习题 225
第9章 输入/输出流与文件操作 226
9.1 输入/输出流概述 226
9.1.1 输入/输出流的概念 226
9.1.2 输入/输出标准流 227
9.2 控制输出格式 228
9.2.1 使用控制符 228
9.2.2 使用流对象cout的成员函数 229
9.3 使用成员函数精确控制输入/输出 230
9.3.1 输入函数 230
9.3.2 输出函数 233
9.4 串流类 233
9.5 文件流类 234
9.5.1 文件的概念 234
9.5.2 文件的读写操作 235
9.6 小结与知识扩展 237
9.6.1 小结 237
9.6.2 C语言的文件操作函数 238
习题 243
第10章 VC++调试器 246
10.1 建立应用程序调试版本 247
10.1.1 调试版本与发行版本 247
10.1.2 项目调试创建 247
10.1.3 设置开发环境参数 251
10.2 基于IDE的调试 256
10.2.1 使用调试窗口 257
10.2.2 断点调试 257
10.2.3 运行调试器 263
10.2.4 调试器窗口 263
10.2.5 使用调试器 263
10.3 高级调试技巧 268
10.3.1 调试过程中异常处理的设置 268
10.3.2 异常处理编程 269
10.4 小结与知识扩展 273
10.4.1 小结 273
10.4.2 调试线程 273
习题 274
参考文献 276