1 C语言概述 1
1.1 C语言的发展史 1
1.2 C/C++程序简介 2
1.2.1 简单的C/C++程序实例 2
1.2.2 C/C++程序设计规则 4
1.2.3 C/C++程序的编辑、编译与运行 5
1.3 C程序的基本语法成分 7
1.3.1 基本字符集 7
1.3.2 标识符 7
1.3.3 关键字 7
1.4 编译预处理 8
1.4.1 无参数宏定义 8
1.4.2 文件包含 9
习题1 10
2 数据类型及基本运算 11
2.1 C数据类型 11
2.2 基本数据类型 12
2.3 数据的表示 12
2.3.1 常量 12
2.3.2 变量 13
2.4 常用的运算符和表达式 15
2.4.1 算术运算符和算术表达式 15
2.4.2 赋值运算符和赋值表达式 18
2.4.3 逗号运算符和逗号表达式 19
2.4.4 关系运算符和关系表达式 20
2.4.5 逻辑运算符和逻辑表达式 21
2.4.6 位运算符和位表达式 23
2.5.2 使用库函数注意事项 25
2.5.1 库函数的调用 25
2.5 常用的库函数 25
习题2 26
3 顺序结构程序设计 29
3.1 用于顺序结构的基本语句 29
3.1.1 表达式语句 29
3.1.2 复合语句 30
3.1.3 空语句 30
3.2 输入与输出 30
3.2.1 数据的输出 31
3.2.2 数据的输入 34
3.3 顺序结构程序设计举例 37
习题3 38
4.1.1 if语句的三种基本形式 41
4.1 if语句 41
4 选择结构程序设计 41
4.1.2 if语句的嵌套形式 43
4.2 条件表达式 45
4.3 switch语句 46
4.4 应用举例 48
习题4 51
5 循环结构程序设计 53
5.1 while语句 53
5.2 do…while语句 54
5.3 for语句 55
5.4 循环结构的嵌套 57
5.5 循环结构的中断与转移 58
5.5.1 break语句 58
5.5.2 continue语句 59
5.5.3 goto语句 60
5.6 循环结构应用举例 61
习题5 62
6 数组 64
6.1 数组的概念 64
6.2 数组的定义与引用 64
6.2.1 数组的定义 64
6.2.2 数组的引用 65
6.3 数组的存储结构和初始化 67
6.3.1 数组的存储结构 67
6.3.2 数组的初始化 69
6.4 数组应用举例 70
6.5 数组与字符串 74
6.5.2 字符串结束标志 75
6.5.1 用字符数组处理字符串 75
6.5.3 字符串的输入与输出 76
6.5.4 常用的字符串处理函数 79
6.5.5 字符串应用举例 81
习题6 84
7 函数 86
7.1 函数的概念 86
7.1.1 函数实例 86
7.1.2 实例分析 88
7.2 函数的定义 89
7.2.1 函数定义形式 89
7.2.2 说明事项 91
7.3 函数的调用 92
7.3.1 函数调用形式 92
7.3.2 函数调用方式 93
7.3.3 参数传递 94
7.3.4 函数声明 97
7.4 函数的嵌套与递归 99
7.4.1 嵌套函数 99
7.4.2 递归函数 101
7.5 变量的作用域 104
7.5.1 局部变量 104
7.5.2 全局变量 106
7.6 变量的存储类别 107
7.6.1 动态存储 108
7.6.2 静态存储 108
7.6.3 寄存器型存储 111
7.6.4 外部存储 111
7.7.2 有参数宏与函数的区别 114
7.7.1 有参数宏定义 114
7.7 带参数宏与函数的区别 114
习题7 115
8 指针 119
8.1 指针的概念 119
8.1.1 地址与指针 119
8.1.2 指针变量及其定义 120
8.1.3 指针变量的引用 120
8.2 指针与数组 122
8.2.1 指针与一维数组 122
8.2.2 指针与二维数组 126
8.3 指针与函数 130
8.3.1 指针变量作为函数的参数 130
8.3.2 数指针 132
8.3.3 通过函数指针调用其他函数 132
8.3.4 函数指针作为函数的参数 134
8.4 指针与字符串 135
8.4.1 单字符串处理 135
8.4.2 多字符串处理 138
8.5 多级指针 141
8.5.1 二级指针的定义 141
8.5.2 二级指针与指针数组的联系 141
8.6 命令行参数 143
8.7 指针类型小结 148
习题8 148
9 结构与其他自定义类型 151
9.1 结构类型的认识 151
9.2 结构类型的定义 152
9.3.1 结构变量 153
9.3 结构变量、结构数组和结构指针 153
9.3.2 结构数组 155
9.3.3 结构指针 159
9.4 动态数据结构“链表” 163
9.4.1 链表概述 163
9.4.2 单链表结点的类型定义 164
9.4.3 动态存储分配函数 165
9.4.4 创建链表 166
9.4.5 结点的删除与插入 170
9.4.6 链表综合应用举例 174
9.5 共用体类型 177
9.5.1 共用体类型的定义 177
9.5.2 共用体变量的引用 178
9.6.2 枚举类型的使用规则 180
9.6.1 枚举类型的定义 180
9.6 枚举类型 180
9.7 类型自定义 182
9.7.1 typedef语句的形式 183
9.7.2 typedef语句使用说明 183
习题9 183
10 文件 186
10.1 文件类型和文件指针 186
10.1.1 文件类型概述 186
10.1.2 文件类型和文件指针 187
10.2 文件的打开与关闭 188
10.2.1 文件的打开 188
10.3 文件的读写 189
10.3.1 fputc和fgetc函数 189
10.2.2 文件的关闭 189
10.3.2 fputs和fgets函数 191
10.3.3 fwrite和fread函数 192
10.3.4 fscanf和fprintf函数 194
10.4 文件的定位与出错检测 194
10.4.1 文件的定位 194
10.4.2 文件的出错检测与处理 197
习题10 199
11 图形处理初步 201
11.1 图形处理基础 201
11.1.1 显示器的图形模式 201
11.1.2 像素坐标 201
11.1.3 图形模式的初始化 202
11.1.4 色彩设置 202
11.1.5 线型设置 203
11.2.1 点函数 204
11.2 基本绘图函数 204
11.2.2 直线函数 205
11.2.3 多边形函数 206
11.2.4 圆弧函数 207
11.3 图形填充 209
11.3.1 设置填充模式 209
11.3.2 填充 210
11.3.3 具有自动填充功能的封闭图形函数 211
11.4 图形方式下的文本输出 211
11.4.1 文本输出函数 211
11.4.2 设置文本的输出格式 212
11.5 图形视口 213
11.6.2 动画处理函数 215
11.6.1 简单动画的制作方法 215
11.6 简单动画 215
11.6.3 动画算法设计步骤 216
习题11 218
12 C++基础 219
12.1 C++对C的扩充 219
12.1.1 C++数据类型、常量、变量、操作符与C的差别 219
12.1.2 C++函数使用上与C的差别 223
12.2 类和对象 226
12.2.1 类的概念及其定义 226
12.2.2 对象的概念及其定义 228
12.2.3 构造函数 230
12.2.4 析构函数 231
12.2.5 静态成员 232
12.2.6 友元函数和友元类 234
12.3.1 基类和派生类 236
12.3 继承和派生 236
12.3.2 派生类的继承关系 238
12.3.3 派生类的构造函数和析构函数 241
12.4 多态性 244
12.4.1 函数重载 244
12.4.2 运算符重载 245
12.4.3 虚函数和动态联编 248
12.4.4 纯虚函数 250
12.4.5 抽象类 252
12.5 C++的I/O流 252
12.5.1 屏幕输出 253
12.5.2 键盘输入 254
12.5.3 格式化输入/输出 256
12.5.4 磁盘文件的输入和输出 261
习题12 265
13 面向对象程序设计 266
13.1 面向对象程序设计概述 266
13.1.1 面向过程程序设计与面向对象程序设计的区别 266
13.1.2 面向对象程序设计的基本概念 267
13.1.3 面向对象程序设计的特点 268
13.2 面向对象程序设计应用举例 269
习题13 272
附录 274
附录A C语言主要关键字及其用途 274
附录B 运算符优先级和结合性 276
附录C 常用字符与ASCII编码对照表 277
附录D 常用库函数 278
附录E 常用关键字和术语的中英文对照表 285
附录F 习题参考解答 288
附录G 高校计算机等级考试(二级C语言)模拟试题及解析 324