第1章 C语言概述 1
1.1 计算机语言 1
1.2 C语言简介 1
1.2.1 C语言的历史 1
1.2.2 C语言编程说明 2
1.3 简单的C语言程序介绍 3
1.4 C语言程序的开发过程 6
小结 8
习题 8
第2章 基本数据类型和运算符 10
2.1 关键字、标识符和保留标识符 10
2.2.1 常量和变量的概念 12
2.2 基本数据类型 12
2.2.2 整型变量及其输出 14
2.2.3 实型变量及其输出 19
2.2.4 整型常量和实型常量 21
2.2.5 字符常量和字符串常量 22
2.2.6 字符变量及其输出 25
2.2.7 用char定义小整数 27
2.2.8 符号常量 28
2.3 运算符和表达式 30
2.3.1 表达式 30
2.3.2 算术运算符 31
2.3.3 算术表达式中数据类型的转换 32
2.3.4 赋值运算符 35
2.3.5 标准系统库函数调用 39
2.3.6 增量运算符 41
2.3.7 逗号运算符和逗号表达式 43
2.3.8 运算符优先级和结合方向 43
小结 45
习题 46
第3章 简单程序和选择语句 49
3.1 结构化程序设计概述 49
3.2 scanf()函数和字符输入、输出函数调用 51
3.2.1 数据输入的概念 51
3.2.2 scanf()函数的调用 52
3.2.3 字符输入函数 55
3.2.4 字符输出函数 55
3.3 表达式语句 56
3.4 复合语句 57
3.5 副作用和顺序点 57
3.6 关系运算符 59
3.7 逻辑运算符 60
3.8 条件运算符 64
3.9 if条件语句 65
3.9.1 if结构 66
3.9.2 if-else结构 70
3.9.3 if-else-if结构 72
3.9.4 条件语句的嵌套 77
3.10 结构化流程图 81
3.11 switch语句 85
3.12 程序设计举例 90
小结 95
习题 96
第4章 循环语句和转移语句 100
4.1 循环的概念 100
4.2 for循环 101
4.3 while循环 111
4.4 do-while循环 114
4.5 break语句 117
4.6 continue语句 117
4.7 多重循环 119
4.8 goto语句 127
习题 129
小结 129
第5章 数组 133
5.1 一维数组 133
5.1.1 一维数组的定义 133
5.1.2 一维数组元素的引用 134
5.1.3 一维数组元素的初始化 136
5.2 二维数组 138
5.2.1 二维数组的定义 138
5.2.2 二维数组的引用 139
5.2.3 二维数组元素的初始化 141
5.3 数组的查找与排序操作 144
5.3.1 排序 144
5.3.2 查找 147
5.4 字符数组和字符串 149
5.4.1 字符数组的定义 150
5.4.2 字符数组的引用 150
5.4.3 字符数组的初始化 151
5.4.4 字符串及其结束标志 153
5.4.5 字符数组的输入输出 155
5.4.6 常用的字符串处理函数 157
5.5 程序设计举例 161
小结 165
习题 166
第6章 函数 171
6.1 函数的概念 171
6.2 函数的定义 172
6.3 函数的调用 173
6.4 函数的返回值 177
6.5 函数参数及函数间的数据传递 181
6.5.1 非数组名作为函数参数 185
6.5.2 数组名作为函数参数 186
6.6 函数的嵌套与递归调用 189
6.6.1 函数的嵌套调用 189
6.6.2 函数的递归调用 192
6.7 变量的存储类型及其作用域 195
6.7.1 局部变量及其存储类型 196
6.7.2 全局变量及其存储类型 201
6.8 内部函数和外部函数 204
6.8.1 内部函数 204
6.8.2 外部函数 205
6.9 应用举例 207
小结 213
习题 214
第7章 指针 217
7.1 指针的基本概念 217
7.2 指针变量的定义和初始化 218
7.2.1 指针变量的定义 218
7.2.2 指针变量的初始化 219
7.3 指针运算符 219
7.3.1 取地址运算符& 219
7.3.2 指针运算符* 220
7.4 指针变量的运算 220
7.4.1 赋值运算 220
7.4.2 加减算术运算 222
7.4.3 两指针变量进行关系运算 224
7.4.4 指针变量还可以与0比较 225
7.5 指针变量作为函数参数 227
7.6 指针和数组的关系 235
7.6.1 指向数组的指针变量 235
7.6.2 通过指针引用数组元素 236
7.6.3 通过指针引用数组元素时应注意的几个问题 238
7.6.4 数组名作函数参数 239
7.7 指向字符串的指针变量 245
7.7.1 字符串的表示形式 245
7.7.2 使用字符串指针变量与字符数组的区别 246
7.7.3 字符串指针作为函数参数 248
7.8.1 多维数组的地址 252
7.8 指向多维数组的指针变量 252
7.8.2 指向数组的指针变量——数组指针变量 256
7.9 指针数组和指向指针的指针 257
7.9.1 指针数组的概念 257
7.9.2 指针数组的应用 259
7.9.3 指向指针的指针变量 264
7.10 指向函数的指针 266
7.10.1 函数指针的概念 266
7.10.2 函数指针的应用 268
7.11 指针型函数 272
小结 274
习题 277
8.2 预处理指令#include 286
8.1 概述 286
第8章 预处理程序 286
8.3 预处理指令#define:符号常量 287
8.4 预处理指令#define:宏 288
8.4.1 无参宏定义 288
8.4.2 带参宏定义 292
8.5 条件编译 294
小结 298
习题 299
第9章 结构与联合 301
9.1 结构定义和结构变量的引用 301
9.1.1 结构定义 301
9.1.2 结构变量的引用 304
9.1.3 结构变量的初始化 305
9.2 结构数组 306
9.2.1 结构数组的定义 306
9.2.2 结构数组的初始化 307
9.3 指向结构的指针 309
9.4 结构与函数 311
9.5 引用自身的结构 315
9.6 字段结构 317
9.7 位运算 318
9.8 联合 320
9.9 枚举 322
9.10 类型定义 324
9.11 程序设计举例 327
小结 330
习题 331
第10章 输入输出 333
10.1 终端输出函数 333
10.1.1 字符输出函数putchar 333
10.1.2 格式输出函数printf 334
10.2 终端输入函数 341
10.2.1 字符输入函数getchar 341
10.2.2 格式输入函数scanf 342
10.2.3 字符串输入函数gets 345
10.3 系统命令调用函数system 346
10.4 程序举例 347
习题 349
小结 349
第11章 文件 351
11.1 C文件概述 351
11.2 文件类型指针 352
11.3 文件的打开与关闭 353
11.3.1 文件的打开(fopen)函数 353
11.3.2 文件的关闭(fclose)函数 354
11.4 文件的读写 355
11.4.1 文件的字符读写函数 355
11.4.2 文件的字符串读写函数 357
11.4.3 文件的数据块读写函数 359
11.4.4 文件的格式化输入输出函数 361
11.4.5 其他读写函数 362
11.5.1 置文件位置指针于文件开头位置的函数rewind 364
11.5 文件的定位 364
11.5.2 改变文件位置指针位置的函数fseek 365
11.5.3 取得文件当前位置的函数ftell 366
11.6 文件的错误检测 366
11.6.1 文件读写错误检测函数ferror 367
11.6.2 清除文件错误标志函数clearerr 367
11.7 程序设计举例 367
小结 371
习题 371
附录1 常用字符与ASCII代码对照表 374
附录2 C语言常用语法提要 375
附录3 C库函数 380
参考文献 388