第1章 C/C++程序设计概述 1
1.1 C/C++语言的发展及特点 1
1.1.1 C语言的特点 1
1.1.2 C语言的基本结构和语法规则 2
1.2 C程序的基本结构和程序示例 3
1.3 主流的C/C++开发工具 3
1.4 在VC++6.0中实现C程序 5
1.5 在Visual C++2010 Express中实现C程序 9
1.6 本章知识要点和常见错误列表 12
实训1 C程序的调试和运行 13
习题1 14
第2章 C语言的基础知识 15
2.1 标识符与关键字 15
2.1.1 标识符 15
2.1.2 关键字 16
2.2 基本数据类型 16
2.3 常量与变量 18
2.3.1 常量 18
2.3.2 变量 20
2.4 运算符 21
2.4.1 算术运算符和赋值运算符 21
2.4.2 关系运算符和逻辑运算符 23
2.4.3 条件运算符 25
2.4.4 逗号运算符 26
2.4.5 位运算符 26
2.5 表达式 29
2.6 本章知识要点和常见错误列表 32
实训2 多数据、多运算符的混合运算 34
习题2 35
第3章 顺序结构程序设计 38
3.1 数据定义和赋值语句 38
3.1.1 数据定义和赋值语句 39
3.1.2 表达式语句 41
3.1.3 空语句 41
3.1.4 复合语句 42
3.1.5 顺序结构程序设计举例 42
3.2 常用的输入/输出库函数 44
3.2.1 字符输入/输出函数 44
3.2.2 格式输入/输出函数 45
3.2.3 C++中简单的输入/输出控制 49
3.3 编译预处理 51
3.3.1 文件包含 51
3.3.2 宏定义 51
3.3.3 条件编译 56
3.4 本章知识要点和常见错误列表 57
实训3 格式输入与输出函数的应用 58
习题3 60
第4章 选择结构程序设计 66
4.1 单分支选择结构 66
4.2 双分支选择结构 67
4.2.1 if…else语句 67
4.2.2 条件运算符和条件表达式 68
4.3 多分支选择结构 69
4.3.1 if…else if语句 69
4.3.2 switch语句 71
4.4 选择结构的嵌套 72
4.5 本章知识要点和常见错误列表 74
实训4 单分支和双分支结构程序设计 75
实训5 多分支选择结构程序设计 76
习题4 80
第5章 循环结构程序设计 84
5.1 当循环while 84
5.2 直到循环do…while 85
5.3 次数循环for 86
5.4 各类循环的比较和中断 87
5.5 本章知识要点和常见错误列表 90
实训6 双重循环结构程序设计 91
实训7 多重循环结构程序设计 93
习题5 94
第6章 程序的调试和算法的选择 98
6.1 源程序错误 98
6.1.1 语法错误 99
6.1.2 语义错误 99
6.2 Debug调试程序 100
6.2.1 如何进入调试 100
6.2.2 设置断点 100
6.2.3 单步执行 100
6.3 良好的程序风格与算法的选择 102
6.3.1 好程序标准 103
6.3.2 如何选择算法 103
6.3.3 枚举法 104
6.3.4 递推法 105
6.3.5 迭代法 106
习题6 107
第7章 数组 109
7.1 一维数组 109
7.1.1 一维数组的定义 109
7.1.2 一维数组元素的引用 111
7.1.3 一维数组元素的初始化 111
7.1.4 一维数组程序举例 112
7.2 二维数组 113
7.2.1 二维数组的定义 113
7.2.2 二维数组元素的引用 114
7.2.3 二维数组元素的初始化 114
7.2.4 二维数组程序举例 115
7.3 字符数组与字符串 116
7.3.1 字符数组的定义 116
7.3.2 字符数组的初始化 117
7.3.3 字符数组的引用 117
7.3.4 字符数组的输入输出 118
7.3.5 常用的字符串处理函数 119
7.3.6 字符数组字符串程序举例 122
7.4 本章知识要点和常见错误列表 123
实训8 数组程序设计 124
实训9 字符数组程序设计 127
习题7 128
第8章 函数 132
8.1 函数概述 132
8.1.1 模块化程序设计方法 132
8.1.2 函数的分类 133
8.2 函数的定义和调用 134
8.2.1 函数定义 134
8.2.2 函数的调用 135
8.2.3 函数的原型声明 137
8.3 函数间的数据传递 138
8.3.1 函数的参数传递 138
8.3.2 函数的返回值 144
8.4 函数的嵌套调用和递归调用 145
8.4.1 函数的嵌套调用 145
8.4.2 函数的递归调用 146
8.5 变量的作用域与存储类型 148
8.5.1 局部变量和全局变量 148
8.5.2 变量的生存期和存储类别 152
8.6 本章知识要点和常见错误列表 158
实训10 函数应用程序设计 161
习题8 164
第9章 指针 169
9.1 指针的概念与定义 169
9.2 指针的使用 170
9.3 指针形参“返回”函数多个值 173
9.4 指针与数组 174
9.4.1 指针与一维数组 174
9.4.2 指针与二维数组 176
9.4.3 指针与字符串 177
9.5 本章知识要点和常见错误列表 178
实训11 指针形参和数组参数程序设计 179
习题9 182
第10章 结构体和共用体 188
10.1 结构体 188
10.1.1 结构体类型定义 188
10.1.2 结构体变量的定义和内存分配 190
10.1.3 结构体变量的初始化 191
10.1.4 结构体变量的引用 192
10.1.5 结构体数组 193
10.1.6 结构体指针 196
10.1.7 结构体作为函数参数 199
10.2 共用体 201
10.2.1 共用体类型定义 201
10.2.2 共用体变量的定义 201
10.2.3 共用体变量的引用和初始化 202
10.3 枚举类型 203
10.3.1 枚举类型的定义 203
10.3.2 枚举变量的定义和使用 204
10.4 用户自定义类型 206
10.5 本章知识要点和常见错误列表 208
实训12 结构体程序设计 209
习题10 212
第11章 C++编程基础 216
11.1 面向对象的程序设计 216
11.2 类与对象 217
11.2.1 类定义和对象引用 217
11.2.2 类成员的访问控制 219
11.3 类的构造与析构 220
11.3.1 构造函数 220
11.3.2 析构函数 222
11.4 类的继承与派生 224
11.4.1 继承机制 224
11.4.2 派生类定义和引用 224
11.4.3 基类成员在派生类中的访问属性 226
11.4.4 派生类的构造函数和析构函数 227
11.5 类的多态性 229
11.6 本章知识要点和常见错误列表 230
实训13 构造函数和析构函数的应用 231
实训14 类和对象的综合应用 232
习题11 233
第12章 文件 236
12.1 文件和流 236
12.2 文件的打开与关闭 237
12.2.1 文件打开 237
12.2.2 文件关闭 238
12.3 文件的读/写 238
12.3.1 文件的顺序读/写 238
12.3.2 文件定位和文件的随机读/写 243
12.4 本章知识要点和常见错误 244
实训15 文件读/写的综合应用 245
习题12 246
第13章 综合课程设计与经典算法解析 249
13.1 课程设计 249
13.1.1 选题 249
13.1.2 任务书 250
13.1.3 课程设计的要求和成绩评定 259
13.2 课程设计报告书模板 260
13.2.1 课程设计报告书封面 260
13.2.2 课程设计报告书主要内容 261
13.3 大赛常用的经典算法解析 261
13.3.1 大学生程序设计大赛简介 261
13.3.2 大学生程序设计大赛经典算法 264
13.4 经典算法解析 265
13.4.1 三色旗问题 265
13.4.2 排列组合算法 267
13.4.3 奇数魔方阵 268
13.4.4 最大访客数 270
13.4.5 最短路径问题—动态规划 272
习题13 277
附录A C语言关键字 278
附录B ASCII码对照表 279
附录C 运算符的优先级和结合方向 280
附录D C语言常用库函数 282
D.1 输入输出函数(#include〈stdio.h〉) 282
D.2 数学函数(#include〈math.h〉) 283
D.3 字符串函数(#include〈string.h〉) 284
D.4 类型判断函数(#include〈ctype.h〉) 285
D.5 动态分配函数和随机函数(#include〈stdlib.h〉) 285
D.6 图形处理函数(#include〈graphics.h〉) 286
D.7 时间函数(#include〈time.h〉) 286
D.8 printf函数常用格式说明及其功能 287
附录E C语言常用的转义字符 288