第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 程序设计基础 3
1.2.1 程序 3
1.2.2 程序设计 3
1.2.3 算法 4
1.2.4 数据结构 9
1.3 C语言程序的结构 9
1.4 C语言程序的开发与环境 11
1.4.1 C语言程序的开发 11
1.4.2 C语言程序的开发环境 12
本章小结 14
习题1 15
第2章 数据描述与基本操作 16
2.1 C语言的数据类型 16
2.2 常量与变量 17
2.2.1 常量和变量简介 17
2.2.2 整型数据 18
2.2.3 浮点型数据 22
2.2.4 字符型数据 24
2.2.5 变量的初始化 27
2.3 运算符与表达式 28
2.3.1 算术运算符和算术表达式 28
2.3.2 赋值运算符和赋值表达式 29
2.3.3 关系运算符和关系表达式 32
2.3.4 逻辑运算符和逻辑表达式 33
2.3.5 逗号运算符和逗号表达式 34
2.4 输入和输出函数 35
2.4.1 字符型数据的输入和输出 35
2.4.2 格式输入与输出函数 36
本章小结 41
习题2 41
第3章 C语言的控制结构 43
3.1 结构化程序设计 43
3.1.1 结构化程序设计的方法 43
3.1.2 结构化程序设计的步骤 44
3.1.3 结构化程序设计的特点 45
3.1.4 结构化程序设计的3种基本控制结构 45
3.2 顺序结构程序设计 47
3.3 选择结构程序设计 52
3.3.1 单分支选择结构 52
3.3.2 双分支选择结构 53
3.3.3 多分支(多情况)选择结构 54
3.3.4 条件运算符和条件表达式 58
3.4 循环结构程序设计 59
3.4.1 while语句 59
3.4.2 do…while语句 62
3.4.3 for语句 63
3.4.4 几种循环语句的比较 66
3.4.5 break语句 66
3.4.6 continue语句 67
3.4.7 多重循环 67
3.4.8 程序举例 68
本章小结 71
习题3 71
第4章 数组 73
4.1 一维数组的定义和引用 73
4.1.1 一维数组的定义 73
4.1.2 一维数组的初始化 74
4.1.3 一维数组元素的引用 75
4.1.4 一维数组应用举例 76
4.2 二维数组的定义和引用 81
4.2.1 二维数组的定义 81
4.2.2 二维数组的初始化 82
4.2.3 二维数组元素的引用 83
4.2.4 二维数组应用举例 84
4.3 字符数组的定义和引用 86
4.3.1 字符数组的定义 86
4.3.2 字符数组的初始化 87
4.3.3 字符数组的引用 87
4.3.4 字符串与字符数组 89
4.3.5 字符数组的输入与输出 90
4.3.6 字符串处理函数 93
4.3.7 字符数组应用举例 95
本章小结 100
习题4 101
第5章 函数 103
5.1 模块化程序设计与函数 103
5.1.1 模块化程序设计原则 103
5.1.2 模块与函数 104
5.1.3 C源程序的结构 104
5.2 标准库函数与函数的定义 105
5.2.1 标准库函数 105
5.2.2 函数的定义 106
5.2.3 函数参数 108
5.3 函数调用与返回值 109
5.3.1 函数调用 109
5.3.2 函数的返回值 112
5.4 数组作为函数参数 113
5.4.1 数组元素作为实参 113
5.4.2 一维数组名作为函数参数 114
5.4.3 多维数组名作为函数参数 117
5.5 变量的作用域与存储属性 118
5.5.1 局部变量与全局变量 118
5.5.2 变量的存储属性 121
5.5.3 局部变量的存储类型 122
5.6 函数的其他问题 124
5.6.1 函数的递归调用 124
5.6.2 函数的声明 126
5.6.3 全局变量的声明 127
5.6.4 内部函数和外部函数 128
本章小结 129
习题5 129
第6章 指针 131
6.1 指针的概念 131
6.2 指针变量的定义 132
6.3 指针变量的引用 133
6.3.1 指针变量的赋值 133
6.3.2 引用指针变量指向的值 135
6.3.3 引用指针变量的值 136
6.4 指针与数组 137
6.4.1 指针变量的算术运算 137
6.4.2 指向一维数组的指针 138
6.4.3 指向二维数组的指针 142
6.4.4 行指针变量 145
6.4.5 指向字符串的指针 145
6.5 指针与函数 148
6.5.1 指针变量作为函数参数 148
6.5.2 数组指针作为函数参数 151
6.5.3 指针作为函数的返回值 155
6.5.4 指向函数的指针变量 156
6.6 指针数组与指向指针的指针 158
6.6.1 指针数组 158
6.6.2 指向指针的指针 160
6.6.3 main函数的参数 161
本章小结 161
习题6 162
第7章 构造数据类型 163
7.1 结构体数据类型 163
7.1.1 结构体类型的定义 163
7.1.2 结构体类型变量的定义 164
7.1.3 结构体变量的初始化 166
7.1.4 结构体变量成员的引用 168
7.2 结构体数组 169
7.2.1 结构体数组的定义 170
7.2.2 结构体数组的初始化 170
7.2.3 结构体数组的引用 171
7.3 结构体指针 172
7.3.1 指向结构体变量的指针 172
7.3.2 指向结构体数组的指针 174
7.3.3 结构体指针变量作为函数参数 175
7.3.4 结构体指针变量作为函数返回值 176
7.4 链表 177
7.4.1 动态存储分配 177
7.4.2 链表的操作 178
7.5 共用体数据类型 183
7.6 枚举类型 185
7.7 类型定义符typedef 187
本章小结 188
习题7 189
第8章 编译预处理和位运算 190
8.1 编译预处理 190
8.1.1 宏定义#define 190
8.1.2 文件包含#include 196
8.1.3 条件编译 197
8.2 位运算 198
习题8 203
第9章 文件 204
9.1 C文件概述 204
9.1.1 C文件的分类 204
9.1.2 文件指针 206
9.2 文件的打开与关闭 206
9.2.1 文件的打开 207
9.2.2 文件的关闭 208
9.3 文件的读写 209
9.3.1 字符读写函数 209
9.3.2 字符串读写函数 212
9.3.3 数据块读写函数 213
9.3.4 格式化读写函数 215
9.4 文件定位函数 216
9.4.1 重置文件指针函数 216
9.4.2 设置指针位置函数 217
9.4.3 取指针位置函数 217
9.5 文件出错检测函数 217
9.5.1 读写出错检测函数 218
9.5.2 清除文件出错标志函数 218
9.5.3 清除文件函数 218
本章小结 219
习题9 219
附录A 常用字符与ASCⅡ码对照表 220
附录B 关键字 222
附录C 运算符的优先级与结合性 223
附录D 常用的ANSI C标准库函数 224
参考文献 229