第1章 C语言概述 1
1.1 程序设计语言及其发展 1
1.2 C语言的标准 2
1.3 C语言的程序结构 3
1.3.1 简单的C语言程序案例 3
1.3.2 C语言程序的基本结构 6
1.3.3 集成开发环境 7
习题 7
第2章 C语言程序设计的基本知识 9
2.1 数据类型 9
2.2 标识符、常量和变量 9
2.2.1 标识符 9
2.2.2 常量和变量 10
2.3 运算符和表达式 18
2.3.1 算术运算符和表达式 19
2.3.2 赋值运算符和表达式 21
2.3.3 关系运算符和表达式 22
2.3.4 逻辑运算符和表达式 23
2.3.5 其他运算符和表达式 25
习题 25
第3章 顺序结构 27
3.1 C语言的语句 27
3.2 输入/输出函数 28
3.2.1 格式输出函数printf() 28
3.2.2 格式输入函数scanf() 33
3.2.3 字符输出函数putchar 35
3.2.4 字符输入函数getchar 36
3.3 顺序结构的应用 36
习题 39
第4章 选择结构 41
4.1 用if语句实现选择结构 41
4.1.1 if语句的基本形式 41
4.1.2 if语句的嵌套 44
4.2 switch语句 46
习题 49
第5章 循环结构 55
5.1 while循环结构 55
5.2 do…while循环结构 57
5.3 for循环结构 60
5.4 循环嵌套 62
5.5 break语句和continue语句 64
5.5.1 break语句 64
5.5.2 continue语句 65
习题 66
第6章 编译预处理 75
6.1 宏定义 76
6.1.1 无参数的宏定义 76
6.1.2 带参数的宏定义 78
6.2 文件包含 83
习题 84
第7章 函数 86
7.1 函数的定义 87
7.2 函数调用 89
7.3 函数的返回值 94
7.4 函数的说明 94
习题 98
第8章 数组 101
8.1 一维数组 101
8.1.1 一维数组的定义 101
8.1.2 一维数组元素的引用 103
8.1.3 一维数组的初始化 104
8.1.4 一维数组的应用 105
8.2 二维数组 108
8.2.1 二维数组的定义 108
8.2.2 二维数组元素的引用 109
8.2.3 二维数组的初始化 110
8.2.4 二维数组的应用 111
8.3 字符串与字符数组 112
8.3.1 字符串 112
8.3.2 字符数组 113
8.3.3 用于字符处理的函数 117
8.3.4 字符串处理程序设计示例 119
8.3.5 二维字符数组 119
习题 121
第9章 指针 126
9.1 变量的地址与指针 126
9.2 指针变量的定义和基本类型 129
9.3 指针变量的赋值 129
9.4 指针变量的引用 131
9.5 指针变量作为函数参数 137
9.6 指向一维数组的指针变量 139
9.6.1 一维数组指针 139
9.6.2 数组元素地址作为实参 143
9.6.3 数组名作为函数参数 144
9.6.4 函数的指针形参和函数体中数组的区别 146
9.7 指向二维数组的指针变量 147
9.7.1 二维数组地址 147
9.7.2 引用二维数组元素 151
9.7.3 二维数组名作为实参 151
9.8 字符串与字符串指针变量 154
9.9 指针数组 158
9.9.1 指针数组的定义及引用 158
9.9.2 指针数组作为实参 160
9.10 指向指针的指针 160
9.11 指针数组作为min函数的形参 162
9.12 指针与函数 164
9.12.1 指向函数的指针变量 164
9.12.2 返回指针值的函数 165
习题 166
第10章 结构体及共用体 170
10.1 结构体 170
10.1.1 结构体类型的定义和变量的说明 171
10.1.2 结构体变量的赋值、初始化及引用 175
10.1.3 结构体数组的定义、初始化及引用 178
10.1.4 结构体指针变量的说明和使用 180
10.1.5 结构体变量作为函数参数 184
10.2 共用体 186
10.2.1 共用体类型的定义和变量的说明 186
10.2.2 共用体变量的引用 187
习题 188
第11章 文件管理 193
11.1 概述 193
11.2 文件的打开与关闭 194
11.2.1 文件指针 194
11.2.2 文本文件与二进制文件 195
11.2.3 文件的打开 196
11.2.4 文件的关闭 197
11.3 文件的读/写 198
11.3.1 fputc函数和fgetc函数 198
11.3.2 fread函数和fwrite函数 201
11.3.3 fscanf函数和fprintf函数 205
11.3.4 fgets函数和fputs函数 208
11.4 文件的定位 209
习题 212
第12章 C语言高级程序设计 215
12.1 位运算 215
12.1.1 位运算符 216
12.1.2 按位与运算 216
12.1.3 按位或运算 217
12.1.4 按位异或运算 217
12.1.5 按位取反运算 218
12.1.6 左移运算符 218
12.1.7 右移运算符 219
12.1.8 程序举例 219
12.2 动态存储分配 220
12.3 链表 226
12.3.1 利用结构体变量构成链表 226
12.3.2 动态链表 228
12.3.3 链表的建立 229
12.3.4 单向链表的遍历 230
12.3.5 查找数据项 230
12.3.6 插入结点 231
12.3.7 删除结点 233
12.3.8 清空链表 234
习题 243
附录1 C语言中的关键字 245
附录2 运算符与结合性 246
附录3 ASCII码字符表 247
参考文献 248