第1章 C语言概述 1
1.1 C语言简介 1
1.2 简单的C程序 2
1.3 C程序的编辑、编译、连接和运行 4
1.4 习题 5
第2章 C程序设计基础 6
2.1 C语言的数据类型 6
2.1.1 常量和变量 6
2.1.2 整型数据 7
2.1.3 实型数据 10
2.1.4 字符型数据 11
2.2 运算符和表达式 13
2.2.1 算术运算符 13
2.2.2 算术表达式 14
2.2.3 不同数据类型间的混合运算 14
2.2.4 赋值运算符 15
2.2.5 赋值表达式 16
2.2.6 赋值表达式的类型转换 16
2.2.7 自增、自减运算符 18
2.2.8 逗号运算符和逗号表达式 19
2.2.9 求字节数运算符 19
2.2.10 位运算符 20
2.2.11 位运算举例 21
2.2.12 位运算应用 25
2.3 顺序结构程序设计 28
2.4 C语句的种类 29
2.5 数据的输入与输出 31
2.5.1 格式输出函数printf 31
2.5.2 格式输入函数scanf 35
2.5.3 函数getchar、putchar及getch 37
2.6 程序设计举例 38
2.7 习题 39
第3章 选择结构程序设计 44
3.1 关系运算符和关系表达式 44
3.1.1 关系运算符 44
3.1.2 关系表达式 44
3.2 逻辑运算符和逻辑表达式 45
3.2.1 逻辑运算符 45
3.2.2 逻辑表达式 46
3.3 if语句 47
3.3.1 if语句的3种形式 47
3.3.2 条件运算符 50
3.4 switch语句 51
3.5 if语句和switch语句的嵌套形式 52
3.5.1 if语句的嵌套 52
3.5.2 switch语句的嵌套 53
3.6 程序设计举例 54
3.7 习题 58
第4章 循环结构程序设计 60
4.1 while语句和do…while语句 60
4.1.1 while语句 60
4.1.2 do…while语句 61
4.2 for语句构成的循环 63
4.3 break语句和continue语句 65
4.3.1 break语句 65
4.3.2 continue语句 65
4.4 goto语句构成的循环 67
4.5 嵌套循环结构 67
4.6 程序设计举例 69
4.7 习题 75
第5章 数组 78
5.1 一维数组 78
5.1.1 一维数组的定义 78
5.1.2 一维数组元素的引用和初始化 79
5.1.3 一维数组程序设计举例 80
5.2 二维数组 85
5.2.1 二维数组的定义 85
5.2.2 二维数组元素的引用和初始化 86
5.2.3 二维数组程序设计举例 87
5.3 字符数组与字符串 90
5.3.1 字符数组的定义 90
5.3.2 字符数组元素的引用和初始化 91
5.3.3 字符串 91
5.3.4 字符数组元素的输入输出 92
5.3.5 处理字符串的函数 94
5.3.6 字符数组程序设计举例 97
5.4 习题 102
第6章 函数 105
6.1 函数概述 105
6.2 函数的定义 106
6.3 函数的参数和返回值 107
6.3.1 形式参数和实际参数 107
6.3.2 函数的返回值 108
6.4 函数的调用 110
6.4.1 函数调用的一般形式 110
6.4.2 函数调用的方式 110
6.4.3 函数调用的说明 111
6.5 函数的嵌套和递归调用 112
6.5.1 函数的嵌套调用 112
6.5.2 函数的递归调用 114
6.6 数组作为函数的参数 116
6.7 局部变量和全局变量 118
6.7.1 局部变量 118
6.7.2 全局变量 119
6.8 变量的存储类别 120
6.8.1 静态存储变量和动态存储变量 120
6.8.2 局部变量的存储 120
6.8.3 全局变量的存储 123
6.9 内部函数和外部函数 124
6.10 程序设计举例 126
6.11 习题 131
第7章 编译预处理 135
7.1 宏定义 135
7.1.1 不带参数的宏定义 135
7.1.2 带参数的宏定义 137
7.2 “文件包含”处理 138
7.3 条件编译 141
7.4 习题 143
第8章 指针 145
8.1 指针的基本概念 145
8.1.1 变量的地址 145
8.1.2 指针变量的定义 146
8.1.3 指针变量的引用 146
8.2 指针与一维数组 149
8.2.1 指向一维数组的指针变量 149
8.2.2 通过指针引用一维数组元素 150
8.2.3 指针使用的几个细节 152
8.3 指针与字符串 153
8.3.1 使用指针处理字符串 153
8.3.2 字符型指针变量作函数参数 155
8.3.3 字符指针变量与字符数组的区别 157
8.4 指针与二维数组 158
8.4.1 二维数组的指针 158
8.4.2 行指针变量 159
8.4.3 二维数组的指针作函数参数 160
8.5 指针数组与多级指针 161
8.5.1 指针数组 161
8.5.2 多级指针的概念 163
8.6 指针与函数 164
8.6.1 指针变量作为函数的参数 164
8.6.2 函数的指针 165
8.6.3 返回指针值的函数 168
8.7 main函数的参数 169
8.7.1 main函数参数的概念 169
8.7.2 main函数参数的处理 170
8.8 程序设计举例 172
8.9 习题 175
第9章 结构体与其他数据类型 177
9.1 结构体类型概念 177
9.2 结构体类型变量和数组 178
9.2.1 结构体类型变量 178
9.2.2 结构体类型数组 182
9.3 指向结构体类型的指针 185
9.4 位段结构 187
9.5 使用指针处理链表 189
9.5.1 链表概述 189
9.5.2 内存分配和释放函数 190
9.5.3 单向链表的操作 192
9.6 共用体和枚举类型 197
9.6.1 共用体类型 197
9.6.2 枚举类型 200
9.7 用typedef声明类型 201
9.8 程序设计举例 202
9.9 习题 204
第10章 文件 207
10.1 C文件概述 207
10.1.1 数据文件的存储形式 207
10.1.2 标准文件与非标准文件 208
10.1.3 文件类型指针 209
10.2 文件的打开与关闭 209
10.2.1 使用fopen函数打开文件 209
10.2.2 使用fclose函数关闭文件 211
10.3 文件的定位和检测 212
10.3.1 文件的顺序读写和随机读写 212
10.3.2 定位函数rewind和fseek 212
10.3.3 检测函数feof和ftell 213
10.3.4 检查读写函数ferror和设置标志函数clearerr 214
10.4 文件的读写 214
10.4.1 fgetc函数和fputc函数 214
10.4.2 fread函数和fwrite函数 217
10.4.3 fscanf函数和fprintf函数 219
10.4.4 fgets函数和fputs函数 221
10.5 程序设计举例 223
10.6 习题 226
上机实验 229
参考文献 239
附录A C语言关键字 240
附录B 运算符的优先级及其结合性 241
附录C C的常用函数库 243
附录D ASCII码表 250