第1章C语言概述 1
1.1程序设计语言及其发展 2
1.1.1机器语言 2
1.1.2汇编语言 2
1.1.3高级语言 3
1.2 C语言的历史 3
1.3 C语言的标准 4
1.4 C语言的程序结构 4
1.4.1简单的C程序剖析 4
1.4.2 C程序的基本结构 8
1.5 C程序的运行 8
1.5.1运行C程序的步骤 8
1.5.2集成开发环境(IDE) 9
本章小结 9
习题 9
第2章C语言程序设计基础 11
2.1常量 12
2.1.1整型常量 12
2.1.2实型常量 12
2.1.3单字符常量 13
2.1.4字符串常量 14
2.1.5符号常量 14
2.2变量 15
2.2.1变量名 15
2.2.2变量的类型 16
2.2.3变量的定义及操作 19
2.3运算符与表达式 20
2.3.1算术运算符和算术表达式 21
2.3.2关系运算符和关系表达式 21
2.3.3逻辑运算符和逻辑表达式 22
2.3.4赋值运算符和赋值表达式 24
2.3.5自增、自减运算符 25
2.3.6条件运算符 26
2.3.7逗号运算符和逗号表达式 26
2.4运算符的优先级与结合性 27
2.4.1优先级 27
2.4.2结合性 27
2.5类型转换 28
2.5.1隐式类型转换 28
2.5.2显式类型转换 30
本章小结 30
习题 30
第3章 输入与输出 30
3.1读入一个字符 33
3.2输出一个字符 33
3.3格式化输入 35
3.3.1整数输入 35
3.3.2实数输入 37
3.3.3单个字符输入 37
3.3.4字符串输入 37
3.4格式化输出 38
3.5程序举例 40
本章小结 43
习题 43
第4章 选择结构程序设计 45
4.1 if语句 46
4.1.1简单if语句 46
4.1.2 if…else语句 47
4.1.3嵌套if…else语句 49
4.1.4阶梯式if…else语句 50
4.2 switch语句 51
本章小结 53
习题 53
第5章 循环结构程序设计 56
5.1 goto语句 57
5.2 while语句 59
5.3 do…while语句 60
5.4 for语句 62
5.5 break语句与continue语句 65
5.5.1 break语句 65
5.5.2 continue语句 66
5.6循环的嵌套 67
本章小结 67
习题 68
第6章 数组 71
6.1一维数组 72
6.1.1一维数组的定义 72
6.1.2一维数组的引用 73
6.1.3一维数组的初始化与赋值 73
6.1.4一维数组的应用举例 75
6.2二维数组 76
6.2.1二维数组的定义 76
6.2.2二维数组的引用 77
6.2.3二维数组的初始化与赋值 77
6.3字符数组与字符串 79
6.3.1字符数组的定义 79
6.3.2字符数组的初始化与赋值 80
6.3.3字符串和字符数组 80
6.3.4字符数组的输入输出 81
6.3.5字符串处理函数 82
本章小结 86
习题 86
第7章 函数 89
7.1函数概述 90
7.2函数声明 93
7.3函数定义和函数调用 94
7.3.1函数定义 94
7.3.2函数调用 95
7.3.3参数传递 96
7.4程序举例 100
7.5函数的嵌套调用和递归调用 102
7.5.1函数的嵌套调用 102
7.5.2函数的递归调用 102
7.6变量的作用域 104
7.6.1局部变量 105
7.6.2全局变量 106
7.7变量的存储类别 108
本章小结 111
习题 111
第8章 指针 115
8.1指针概述 116
8.2访问变量的地址 117
8.3指针变量的定义与运算 118
8.3.1指针变量的定义 118
8.3.2指针变量的初始化与赋值 118
8.3.3通过指针访问变量 119
8.3.4指针的运算 123
8.4指针与一维数组 123
8.5指向指针的指针与指针数组 127
8.5.1指向指针的指针 127
8.5.2指针数组 129
8.6指针与二维数组 132
8.6.1指向二维数组元素的指针 132
8.6.2二维数组名与指针 133
8.6.3二维数组与指向一维数组的指针变量 136
8.7指针与字符串 138
8.8指针兼容性 141
8.8.1指针大小兼容 141
8.8.2 void指针 142
8.8.3指针转换 142
8.9指针与函数 143
8.9.1指针作为实际参数 143
8.9.2指针型函数 147
8.9.3函数指针变量 149
8.10 main函数的参数 150
本章小结 151
习题 152
第9章 编译预处理 156
9.1概述 157
9.1.1预处理器的工作方式 157
9.1.2预处理命令 158
9.2宏定义 158
9.2.1不带参数的宏定义 158
9.2.2带参数的宏定义 160
9.3文件包含 161
9.4条件编译 162
本章小结 164
习题 165
第10章 结构体、共用体与枚举类型 167
10.1结构体 168
10.1.1定义结构体类型 168
10.1.2定义结构体变量 169
10.1.3访问结构体成员 172
10.1.4结构体变量的初始化 174
10.1.5结构体嵌套 175
10.1.6结构体数组 176
10.1.7结构体指针变量 177
10.1.8结构体与函数 180
10.2共用体 184
10.2.1定义共用体类型 184
10.2.2定义共用体变量 184
10.2.3访问共用体成员 185
10.2.4共用体变量的赋值 186
10.2.5共用体变量的初始化 186
10.2.6共用体的应用 186
10.3枚举类型 187
10.3.1定义枚举类型 188
10.3.2定义枚举类型变量 188
10.4用typedef定义类型 189
本章小结 191
习题 191
第11章 文件管理 194
11.1概述 195
11.2文件的打开与关闭 195
11.2.1文件指针 196
11.2.2文本文件与二进制文件 196
11.2.3文件的打开 197
11.2.4文件的关闭 198
11.3文件的读/写 199
11.3.1 fputc函数和fgetc函数 199
11.3.2 fread函数和fwrite函数 202
11.3.3 fscanf函数和fprinf函数 205
11.3.4 fgets 函数和fputs函数 207
11.4文件的定位 209
本章小结 211
习题 211
第12章C语言高级程序设计 214
12.1位运算 215
12.1.1位运算符 215
12.1.2按位与运算 216
12.1.3按位或运算 216
12.1.4按位异或运算 217
12.1.5按位取反运算 218
12.1.6左移运算符(<<) 218
12.1.7右移运算符(>>) 219
12.1.8程序举例 219
12.2动态存储分配 220
12.2.1 malloc函数 221
12.2.2 calloc函数 223
12.2.3 realloc函数 224
12.2.4 free函数 225
12.3链表 225
12.3.1链表概述 225
12.3.2增加新节点 228
12.3.3单向链表的遍历 231
12.3.4查找数据项 233
12.3.5插入节点 234
12.3.6删除节点 236
12.3.7清空链表 237
本章小结 246
习题 246
附录1部分ASCII码表 248
附录2 C语言的部分关键字 249
附录3运算符的优先级和结合性 250
参考文献 251