第1章 C/C++语言程序设计概述 1
1.1 引言 1
1.2 C/C++语言的特点 1
1.3 程序与程序设计 2
1.4 算法及其表示方法 3
1.4.1 算法的特性与要求 3
1.4.2 算法描述 4
1.5 简单C程序的基本结构 6
1.5.1 两个简单程序实例 6
1.5.2 C/C++程序的基本构成 7
1.6 C程序的调试 10
本章学习指导 11
习题1 12
第2章 C语言程序设计基础 13
2.1 问题的提出 13
2.2 常量 13
2.3 变量 16
2.4 运算符和表达式 17
2.4.1 运算符和表达式概述 17
2.4.2 算术运算符和算术表达式 18
2.4.3 关系运算符和关系表达式 19
2.4.4 逻辑运算符和逻辑表达式 20
2.4.5 赋值运算符和赋值表达式 22
2.4.6 自增、自减运算符及其表达式 24
2.4.7 逗号运算符和逗号表达式 24
2.4.8 位运算符 25
2.4.9 其他运算符 27
2.5 基本输入\输出函数 29
2.5.1 格式输入函数scanf() 29
2.5.2 格式输出函数printf() 31
2.5.3 字符输入函数getchar() 33
2.5.4 字符输出函数putchar() 34
本章学习指导 34
习题2 35
第3章 控制结构 36
3.1 问题的提出 36
3.2 C语句和程序结构 36
3.2.1 C语句概述 36
3.2.2 C程序基本结构 37
3.3 条件选择结构 38
3.3.1 if选择结构 38
3.3.2 if-else选择结构 38
3.3.3 if-else的嵌套结构 39
3.4 多分支选择结构 41
3.5 循环控制结构 43
3.5.1 while语句 43
3.5.2 do-while语句 45
3.5.3 for语句 45
3.5.4 循环语句的嵌套 47
3.6 转向语句 47
3.6.1 break语句 48
3.6.2 continue语句 48
3.6.3 goto语句 49
本章学习指导 49
习题3 52
第4章 数组 53
4.1 问题的提出 53
4.2 一维数组 53
4.2.1 一维数组的定义 54
4.2.2 一维数组的初始化 55
4.2.3 一维数组元素的引用 56
4.2.4 一维数组的应用 56
4.3 二维数组 59
4.3.1 二维数组的引入 59
4.3.2 二维数组的定义 59
4.3.3 二维数组的初始化 60
4.3.4 二维数组的应用 61
4.4 字符数组 64
4.4.1 字符串与一维字符数组 64
4.4.2 二维字符数组 65
4.4.3 字符数组的输入和输出 66
4.4.4 字符串处理函数 67
本章学习指导 73
习题4 75
第5章 指针 77
5.1 问题的提出 77
5.2 指针和地址 77
5.3 指针变量的定义和引用 78
5.3.1 指针变量的定义和初始化 78
5.3.2 指针变量的引用 80
5.4 指针变量的运算 81
5.4.1 指针变量的赋值运算 82
5.4.2 指针的移动 82
5.4.3 两个指针变量相减 83
5.4.4 两个指针变量的比较 83
5.5 指针与数组 84
5.5.1 指向一维数组的指针变量 84
5.5.2 二维数组与指针变量 86
5.5.3 通过行指针变量引用二维数组元素 87
5.6 指针与字符串 89
5.7 二级指针与指针数组 92
5.7.1 二级指针 92
5.7.2 指针数组 94
5.8 用于动态内存分配的函数 97
本章学习指导 99
习题5 100
第6章 函数 102
6.1 问题的提出 102
6.2 函数及其分类 102
6.3 函数的定义 104
6.4 函数原型 106
6.5 函数调用 106
6.5.1 函数调用的一般形式 107
6.5.2 传值调用 107
6.5.3 传址调用 109
6.5.4 指向函数的指针 113
6.5.5 返回指针的函数 115
6.6 函数的嵌套调用和递归调用 116
6.6.1 函数的嵌套调用 116
6.6.2 函数的递归调用 117
6.7 命令行参数 121
6.8 变量的作用域和存储类型 122
本章学习指导 124
习题6 127
第7章 文件 128
7.1 问题的提出 128
7.2 文件的基本概念 128
7.3 文件的打开与关闭 130
7.4 文件的读/写 132
7.4.1 按字符方式读/写文件 132
7.4.2 按行方式读/写文件 135
7.4.3 按格式读/写文件 136
7.4.4 按块读/写文件 137
7.5 文件的定位与测试 138
7.5.1 文件的顺序存取与随机存取 139
7.5.2 检测文件结束函数feof() 139
7.5.3 反绕函数rewind() 139
7.5.4 移动文件位置指针函数fseek() 140
7.5.5 测定文件位置指针当前指向的函数ftell() 140
本章学习指导 142
习题7 143
第8章 结构体与共用体 145
8.1 问题的提出 145
8.2 结构类型 146
8.2.1 结构类型的定义 146
8.2.2 结构变量的定义 147
8.2.3 结构成员的引用 149
8.2.4 结构变量的初始化 150
8.3 结构数组 151
8.3.1 结构数组的定义和初始化 151
8.3.2 结构数组元素的引用 151
8.4 结构指针变量 155
8.4.1 结构指针变量的定义与初始化 155
8.4.2 指向结构变量的指针变量 155
8.4.3 指向结构数组的指针变量 156
8.5 结构体与函数 156
8.5.1 结构变量作为函数的参数 156
8.5.2 结构变量的地址作为函数的参数 158
8.5.3 结构数组作为函数的参数 160
8.6 共用体 162
8.6.1 共用体的定义和引用 163
8.6.2 共用体与结构体的嵌套使用 164
8.7 枚举 164
8.8 用typedef定义类型 165
8.9 链表 168
8.9.1 单向链表 168
8.9.2 链表的建立 169
8.9.3 链表的插入和删除 171
本章学习指导 177
习题8 179
第9章 图形程序设计基础 181
9.1 问题的提出 181
9.2 图形适配器的基本工作方式 181
9.3 常用图形函数 182
9.4 图形程序举例 187
本章学习指导 188
习题9 189
第10章 C++程序设计基础 191
10.1 引言 191
10.2 C++程序结构 191
10.3 C++语言的输入/输出流 192
10.4 引用 194
10.5 函数的重载 195
10.6 带默认参数的函数 197
10.7 C++新增运算符 198
10.8 const修饰符 199
10.9 类和对象 200
10.9.1 类和对象的定义 200
10.9.2 构造函数和析构函数 205
10.9.3 类的友元 210
10.9.4 this指针 212
10.10 重载 213
10.10.1 类成员函数重载 213
10.10.2 类构造函数重载 214
10.10.3 运算符重载 215
10.11 继承 218
10.11.1 基类与派生类 218
10.11.2 public继承 220
10.11.3 private继承 223
10.11.4 protected继承 224
10.11.5 多继承 225
10.11.6 派生类的构造函数和析构函数 227
10.12 多态性和虚拟函数 233
10.12.1 多态性 233
10.12.2 虚拟函数 234
10.12.3 虚拟析构函数 242
本章学习指导 242
习题10 242
附录A常用字符与代码对照表 244
附录B C语言中的关键字 246
附录C运算符的优先级与结合性 247
参考文献 249