第1章 程序设计及C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言出现的历史背景 1
1.1.2 C语言的特点 2
1.2 C语言程序的构成 3
1.3 程序的书写风格和书写格式 5
1.4 本章小结 5
1.5 练习与提高 5
第2章 C语言的基本数据及其运算 7
2.1 C语言数据类型简介 7
2.2 标识符 7
2.2.1 字符集 7
2.2.2 标识符概述 8
2.2.3 标识符分类 8
2.3 常量与变量 9
2.3.1 常量 9
2.3.2 符号常量 9
2.3.3 变量 9
2.3.4 变量的初始化 9
2.4 整型数据 10
2.4.1 整型数据在内存中的存储形式 10
2.4.2 整型常量 11
2.4.3 整型变量 11
2.5 实型数据 12
2.5.1 实型常量 12
2.5.2 实型变量 12
2.6 字符型数据 13
2.6.1 字符常量 13
2.6.2 字符串常量 14
2.6.3 字符变量 15
2.7 运算符和表达式 15
2.7.1 C语言运算符简介 16
2.7.2 表达式的求值规则 16
2.7.3 混合运算中的类型转换 16
2.8 算术运算符和算术表达式 18
2.8.1 基本算术运算符 18
2.8.2 算术表达式和运算符的优先级与结合性 18
2.8.3 自增、自减运算符 18
2.9 赋值运算与赋值表达式 19
2.9.1 赋值运算符 19
2.9.2 类型转换 19
2.9.3 复合的赋值运算符 20
2.9.4 赋值表达式 20
2.10 逗号运算符和逗号表达式 21
2.11 关系运算符和关系表达式 21
2.11.1 关系运算符及其优先次序 21
2.11.2 关系表达式 21
2.12 逻辑运算符及逻辑表达式 22
2.12.1 逻辑运算符及其优先次序 22
2.12.2 逻辑表达式 23
2.13 条件运算符与条件表达式 24
2.13.1 条件运算符与条件表达式概述 24
2.13.2 条件运算符的优先级与结合性 25
2.14 应用举例 26
2.15 本章小结 27
2.16 练习与提高 27
第3章 顺序结构程序设计 30
3.1 C语言语句概述 30
3.2 赋值语句 32
3.3 字符数据的输入与输出 33
3.3.1 字符输出函数 33
3.3.2 字符输入函数 35
3.4 格式的输入与输出 35
3.4.1 格式输出函数 35
3.4.2 格式输入函数 43
3.5 应用举例 47
3.6 本章小结 49
3.7 练习与提高 50
第4章 选择结构程序设计 53
4.1 if语句 53
4.1.1 简单if语句 53
4.1.2 双分支if语句 54
4.1.3 多分支if语句 55
4.1.4 if语句使用说明 58
4.2 if语句的嵌套 58
4.3 switch语句 61
4.4 应用举例 63
4.5 本章小结 70
4.6 练习与提高 70
第5章 循环结构程序设计 73
5.1 while语句 73
5.2 do...while语句 76
5.3 for语句 78
5.4 几种循环的比较 83
5.5 循环嵌套 83
5.6 continue语句 85
5.7 break语句 86
5.8 应用举例 87
5.9 本章小结 95
5.10 练习与提高 95
第6章 数组 99
6.1 数组和数组元素 99
6.2 一维数组 100
6.2.1 一维数组的定义和使用 100
6.2.2 一维数组的初始化 101
6.2.3 一维数组的应用举例 103
6.3 多维数组 111
6.3.1 二维数组的定义和引用 111
6.3.2 二维数组的初始化 113
6.3.3 二维数组的程序举例 114
6.4 字符数组 117
6.4.1 字符数组的定义和引用 117
6.4.2 字符数组的初始化 118
6.4.3 字符串的输入和输出 118
6.4.4 用于字符处理的库函数 120
6.5 应用举例 122
6.6 本章小结 127
6.7 练习与提高 128
第7章 函数 132
7.1 模块化程序设计 132
7.1.1 模块化程序设计概述 132
7.1.2 函数概述 133
7.2 函数的定义 135
7.2.1 无参函数的定义 135
7.2.2 有参函数的定义 135
7.2.3 空函数的定义 136
7.2.4 函数的返回值 137
7.3 函数的调用 138
7.3.1 函数调用的形式 138
7.3.2 函数的声明 139
7.3.3 函数参数的传递 141
7.4 函数的嵌套调用与递归调用 142
7.4.1 函数的嵌套调用 142
7.4.2 函数的递归调用 143
7.5 数组做函数参数 146
7.5.1 数组元素做函数实参 146
7.5.2 数组名做函数参数 147
7.5.3 多维数组名做函数参数 148
7.6 变量的作用域 148
7.6.1 局部变量 148
7.6.2 全局变量 150
7.7 变量的存储类别 152
7.7.1 变量的生存期 152
7.7.2 局部变量的存储类别 153
7.7.3 全局变量的存储类别 155
7.7.4 存储类别小结 157
7.8 内部函数和外部函数 158
7.8.1 内部函数 158
7.8.2 外部函数 158
7.9 应用举例 158
7.10 本章小结 161
7.11 练习与提高 162
第8章 编译预处理 164
8.1 宏定义 164
8.1.1 不带参数的宏定义 164
8.1.2 带参数的宏定义 165
8.2 文件包含 167
8.3 条件编译 169
8.4 应用举例 170
8.5 本章小结 172
8.6 练习与提高 172
第9章 指针 176
9.1 相关概念 176
9.1.1 变量的地址 176
9.1.2 数据的访问方式 177
9.1.3 指针和指针变量 177
9.2 指针变量的定义和使用 177
9.2.1 指针变量的定义 177
9.2.2 指针变量的初始化和赋值 178
9.2.3 指针变量的引用 179
9.2.4 指针的运算 180
9.3 指针变量做函数参数 181
9.4 数组的指针和指向数组的指针变量 184
9.4.1 指向数组元素的指针 184
9.4.2 通过指针引用数组元素 184
9.4.3 数组名做函数参数 188
9.4.4 指向多维数组的指针与指针变量 193
9.5 字符串的指针和指向字符串的指针变量 197
9.5.1 字符串的表示形式 197
9.5.2 对字符指针变量与字符数组的使用 198
9.5.3 字符指针做函数参数 200
9.6 函数的指针和指向函数的指针变量 201
9.6.1 通过函数的指针变量调用函数 201
9.6.2 指向函数的指针变量做函数参数 202
9.7 返回指针值的函数 203
9.8 指针数组和指向指针的指针 204
9.8.1 指针数组的概念 204
9.8.2 指向指针的指针 205
9.8.3 main()函数的命令行参数 206
9.9 应用举例 207
9.10 本章小结 212
9.11 练习与提高 213
第10章 结构体与共用体 215
10.1 结构体类型及变量的定义 215
10.1.1 结构体概述 215
10.1.2 结构体类型的定义 216
10.1.3 结构体变量的定义 217
10.2 结构体变量的初始化和引用 218
10.2.1 结构体变量的初始化 218
10.2.2 结构体变量的引用 219
10.3 结构体数组 220
10.3.1 定义结构体数组 220
10.3.2 结构体数组的初始化 221
10.3.3 结构体数组的应用 221
10.4 指向结构体类型数据的指针 222
10.4.1 指向结构体变量的指针 222
10.4.2 指向结构体数组的指针 223
10.4.3 结构体变量和指向结构体的指针做函数参数 225
10.5 用指针处理链表 226
10.5.1 链表概述 226
10.5.2 处理动态链表所需的函数 228
10.5.3 链表的基本操作 228
10.6 共用体 234
10.6.1 共用体变量的引用方式 235
10.6.2 共用体类型数据的特点 235
10.7 枚举类型 236
10.8 用typedef定义类型 238
10.9 应用举例 240
10.10 本章小结 243
10.11 练习与提高 244
第11章 位运算 247
11.1 位运算符与位运算 247
11.1.1 按位与运算符 247
11.1.2 按位或运算符 248
11.1.3 按位异或运算符 248
11.1.4 按位取反运算符 249
11.1.5 左移运算符 250
11.1.6 右移运算符 250
11.1.7 位运算赋值运算符 250
11.1.8 不同长度的数据进行位运算 250
11.2 位段 252
11.3 应用举例 253
11.4 本章小结 255
11.5 练习与提高 255
第12章 文件 258
12.1 文件的概念 258
12.2 文件的操作函数 260
12.2.1 文件的打开 260
12.2.2 文件的关闭 261
12.3 文件的检测函数 261
12.4 常用的读/写函数 262
12.4.1 读/写字符函数 262
12.4.2 读/写字符串函数 264
12.4.3 读/写数据块函数 265
12.4.4 格式化读/写函数 268
12.5 文件的定位 268
12.5.1 rewind()函数 269
12.5.2 随机读/写和fseek()函数 269
12.6 应用举例 271
12.7 本章小结 273
12.8 练习与提高 273
第13章 实用项目开发技术简介 275
13.1 C语言图形功能简介 275
13.1.1 图形与硬件 275
13.1.2 文本与图形 275
13.1.3 图形设计 279
13.2 图形模式的初始化 279
13.3 独立图形运行程序的建立 281
13.4 屏幕颜色的设置和清屏函数 282
13.5 基本画图函数 284
13.5.1 画点 284
13.5.2 画线 284
13.6 基本图形的填充 287
13.6.1 设定填充方式 287
13.6.2 任意封闭图形的填充 289
13.7 图形操作函数 290
13.7.1 图形窗口操作 290
13.7.2 屏幕操作函数 290
13.8 图形模式下的文本操作 292
13.8.1 文本的输出 292
13.8.2 文本字体、字型和输出方式的设置 292
13.8.3 用户对文本字符大小的设置 294
13.9 C语言动画设计 295
13.10 菜单设计技术 298
13.10.1 下拉式菜单的设计 298
13.10.2 选择式菜单的设计 300
13.11 大型程序开发的项目管理 301
13.11.1 项目管理器 301
13.11.2 用项目管理器开发程序项目的步骤 301
13.11.3 项目管理器的使用技巧 302
13.12 本章小结 303
13.13 练习与提高 304
附录A ASCII 306
附录B 运算符和结合性 307
附录C C语言常用语法提要 308
附录D C语言库函数 312
参考文献 317