第1章 C语言程序设计基础 1
1.1 C语言的发展及其特点和应用 3
1.1.1 C语言的发展 3
1.1.2 C语言的特点 3
1.2 C语言程序的基本结构 4
1.3算法表示方法 7
1.4运行C语言程序的基本步骤 12
小结 15
习题一 15
第2章 基本数据类型、运算符与表达式 18
2.1 C语言的数据类型 19
2.2常量、变量和标识符 20
2.3简单数据类型与表示范围 23
2.3.1整型数据 23
2.3.2实型数据 26
2.3.3字符型数据和字符串常量 28
2.3.4各数据类型间的混合运算 31
2.3.5简单数据类型的表示范围 33
2.3.6数据的简单输出 33
2.4 C语言的运算符与表达式 34
2.4.1 C语言运算符简介 34
2.4.2赋值运算符和赋值表达式 36
2.4.3强制类型转换符 40
2.4.4算术运算符和算术表达式 41
2.4.5自增自减运算符 42
2.4.6位运算符、位运算表达式 44
2.4.7逗号运算符和逗号表达式 46
2.4.8指针运算符、sizeof运算符 47
2.5运算符的优先级和结合性 48
小结 48
习题二 50
第3章 顺序结构程序设计 53
3.1结构化程序设计 54
3.1.1结构化程序设计概述 54
3.1.2结构化程序设计的基本结构及其特点 54
3.2算法 55
3.2.1算法的基本概念 55
3.2.2算法的特性 55
3.2.3算法的流程图表示法 56
3.2.4基本算法 57
3.3 C语句概述 58
3.4输入/输出语句 59
3.4.1格式化输出函数printf() 60
3.4.2格式化输入函数scanf() 62
3.4.3字符输出函数putchar() 63
3.4.4字符输入函数getchar() 64
3.5顺序结构程序设计举例 65
小结 66
习题三 67
第4章 选择结构程序设计 69
4.1 C语言程序中语句的分类 69
4.2关系运算符、逻辑运算符、条件运算符 71
4.2.1关系运算符和关系表达式 71
4.2.2逻辑运算符和逻辑表达式 72
4.2.3条件运算符和条件表达式 73
4.3选择结构的程序设计 73
4.3.1 if语句 73
4.3.2 switch语句 74
4.4选择结构程序设计举例 76
小结 79
习题四 79
第5章 循环结构程序设计 81
5.1 while语句 82
5.2 do...while语句 84
5.3 for语句 86
5.4 goto、break、continue语句 88
5.6循环的嵌套 90
5.7程序举例 91
小结 93
习题五 94
第6章 数组 95
6.1一维数组的定义和引用 97
6.1.1一维数组的定义 97
6.1.2一维数组元素的引用 97
6.1.3一维数组的初始化 98
6.1.4一维数组程序举例 99
6.2二维数组 101
6.2.1二维数组的定义 101
6.2.2二维数组元素的引用 102
6.2.3二维数组的初始化 102
6.2.4二维数组程序举例 103
6.3字符数组 106
6.3.1字符数组的定义 106
6.3.2字符数组的初始化 106
6.3.3字符数组的引用 107
6.3.4字符串 108
6.3.5字符串的输入/输出 108
6.3.6字符串操作函数 111
6.3.7字符数组应用举例 113
小结 115
习题六 116
第7章 函数 117
7.1函数概述 120
7.1.1函数与模块化程序设计方法 120
7.1.2函数的分类 120
7.1.3主函数 121
7.2函数定义和调用 121
7.2.1函数定义 122
7.2.2函数调用 125
7.3函数参数传递 126
7.3.1传值调用 126
7.3.2传址调用 127
7.4函数与数组 129
7.5函数与指针 133
7.5.1返回指针的函数 134
7.5.2指向函数的指针 135
7.6函数与结构 136
7.6.1结构指针及结构变量的传址调用 137
7.6.2结构型函数 138
7.6.3结构指针型函数 139
7.7递归函数 140
7.8命令行参数 144
7.9标准库函数 146
7.10程序举例 147
小结 151
习题七 151
第8章 指针 154
8.1指针与指针变量的概念 155
8.1.1指针的概念 155
8.1.2指针变量 155
8.2指针变量的定义和引用 157
8.2.1指针变量的定义 157
8.2.2指针变量的引用 158
8.3指针和地址运算 159
8.4指针与数组 161
8.4.1指针变量与数组 161
8.4.2指针变量在一维数组中的应用 163
8.4.3指针变量在多维数组中的应用 165
8.5指针与字符串 169
8.5.1字符串操作的特点及字符指针变量的引入 169
8.5.2指向字符串的指针变量 170
8.6指针数组与多级指针 172
8.6.1指针数组的定义 172
8.6.2指针数组的使用 173
8.6.3多级指针 174
8.7指针变量与函数 175
8.7.1函数的操作方式与指针变量 175
8.7.2指针型函数的定义与使用 176
8.7.3函数指针的定义与使用 176
8.7.4与指针有关的函数参数传递方式 178
8.7.5带参数的main函数和命令行参数 183
8.8指针与动态内存分配 184
8.8.1动态存储的概念 184
8.8.2 C语言的动态存储管理方式 184
小结 186
习题八 188
第9章 编译预处理 194
9.1宏定义 195
9.1.1不带参数的宏定义 196
9.1.2带参数的宏定义 197
9.2文件包含处理 200
9.3条件编译 204
小结 207
习题九 209
第10章 复杂数据类型 211
10.1复杂数据类型概述 212
10.2结构体 213
10.2.1结构体类型的定义 213
10.2.2结构体变量的定义和引用 213
10.2.3结构体变量的赋值 216
10.2.4结构体数组 217
10.3线性链表 220
10.3.1固定内存分配与动态内存分配的概念 220
10.3.2链表的概念 221
10.3.3动态存储分配链表的基本操作 223
10.4共用体 226
10.4.1共用体类型的定义 226
10.4.2共用体变量的定义和引用 226
10.4.3共用体变量的赋值 228
10.5枚举类型 228
10.5.1枚举类型的定义 228
10.5.2枚举变量的说明与引用 229
10.6自定义类型 230
10.7复杂数据类型应用综合举例 231
小结 234
习题十 235
第11章 文件 240
11.1文件的基本概念 241
11.2文件的类别 242
11.3文件指针 243
11.4文件操作概述 244
11.5文件的打开、读/写和关闭 245
11.5.1文件的打开(fopen函数) 245
11.5.2文件的关闭(fclose函数) 246
11.5.3文件的读/写 247
11.6文件的定位读/写 252
11.7文件应用综合举例 254
小结 257
习题十一 257
附录1 C语言的字符集——ASCII字符表 258
附录2 C语言的关键字 259
附录3 运算符的结合性 260
附录4 C语言的库函数 261
附录5 C语言常见错误 268
附录6 Turbo C常见错误提示英汉对照 272
参考文献 278