第1章 初识C语言 1
1.1 学习C语言的必要性 1
1.2 C语言发展简史 1
1.3 几个重要术语概念 2
1.4 算法与描述工具 3
1.4.1 算法 3
1.4.2 伪代码 3
1.4.3 传统流程图 3
1.4.4 N-S流程图 4
1.5 设计一个好程序 4
1.5.1 好程序的标准 4
1.5.2 结构化程序设计方法简介 5
1.6 C语言特点 6
1.7 关键字与标识符 7
1.7.1 关键字 7
1.7.2 标识符 8
1.8 C程序的基本结构与语句组成 8
1.8.1 C程序的基本结构 8
1.8.2 C程序的语句组成和特点 9
1.9 Turbo C 2.0简介与上机操作 10
1.9.1 程序运行步骤 10
1.9.2 Turbo C 2.0编译系统简介 12
1.9.3 上机操作 12
本章小结 17
习题 18
第2章 C语言的数据类型 21
2.1 C语言的数据类型 21
2.2 常量类型 22
2.2.1 整型常量 22
2.2.2 实型常量 23
2.2.3 字符常量 23
2.2.4 转义字符常量 24
2.2.5 字符串常量 25
2.2.6 符号常量 25
2.3.1 变量概述 26
2.3 变量 26
2.3.2 变量的存储类型 27
2.3.3 变量数据类型 28
2.3.4 变量的作用范围 29
2.3.5 变量说明举例 31
2.4 C语言的运算符 33
2.5 C语言的表达式 34
2.5.1 基本算术表达式 35
2.5.2 数据类型转换表达式 36
2.5.3 赋值表达式 37
2.5.4 复合运算符的赋值表达式 37
2.5.5 自加1、自减1算术表达式 38
本章小结 40
2.5.6 逗号运算符和逗号表达式 40
习题 41
第3章 程序设计初步 45
3.1 文件包含预处理命令 45
3.2 输出函数printf() 46
3.2.1 printf()函数应用格式说明 46
3.2.2 printf()函数使用说明 50
3.3 输入函数scanf() 51
3.3.1 scanf()函数应用格式说明 51
3.3.2 scanf()函数使用说明 52
3.4 选择结构程序设计 53
3.4.1 关系运算和逻辑运算 54
3.4.2 if语句 56
3.4.3 条件表达式构成的选择结构 61
3.4.4 switch语句 61
3.5 循环结构程序设计 65
3.5.1 while语句 66
3.5.2 do-while语句 68
3.5.3 for语句 70
3.5.4 break语句与continue语句 73
3.5.5 循环的嵌套 75
3.6 位运算 78
3.6.1 位逻辑运算符 78
3.6.2 位移位运算符 79
3.6.3 位自反赋值运算符 81
本章小结 82
习题 83
第4章 数组基础 92
4.1 一维数组 92
4.1.1 一维数组的定义 93
4.1.2 一维数组的初始化与赋初值 93
4.1.3 一维数组的引用 95
4.1.4 一维数组应用举例 96
4.2 字符数组与字符串 97
4.2.1 字符数组的定义 98
4.2.2 字符数组初始化 98
4.2.3 字符数组的引用 99
4.2.4 字符数组与字符串的关系 100
4.2.5 字符串的输入与输出 101
4.3 字符串处理函数 102
4.4 二维数组 106
4.4.1 二维数组的定义 106
4.4.2 二维数组的初始化 107
4.4.3 二维数组的引用 108
4.4.4 二维数组应用举例 108
本章小结 110
习题 111
第5章 用户自定义数据类型 118
5.1 结构体类型 118
5.1.1 结构体类型的概念 118
5.1.2 定义结构体变量的方法与初始化 120
5.1.3 结构体变量的引用 122
5.2 结构体数组 124
5.2.1 定义结构体数组的方法 124
5.2.2 结构体数组的初始化 125
5.2.3 结构体数组的引用 125
5.3 共用体类型 127
5.3.1 共用体类型的概念 127
5.3.2 共用体变量成员的引用 128
5.4 枚举类型 129
5.5 类型标识符的重命名 131
本章小结 132
习题 133
6.1.1 变量地址、指针与指针变量 142
第6章 指针 142
6.1 指针与指针变量的概念 142
6.1.2 指针变量的定义与指针运算符 143
6.1.3 指针的初始化 144
6.2 指针与数组 145
6.2.1 指针与一维数组 145
6.2.2 指针与二维数组 148
6.3 指针与字符串 152
6.3.1 字符串指针 152
6.3.2 指向字符串的指针变量的定义 154
6.3.3 指向字符串的指针变量的引用 154
6.4.2 指针数组的使用 156
6.4 指针数组 156
6.4.1 指针数组的概念 156
6.5 多级指针 159
6.5.1 多级指针的概念 159
6.5.2 多级指针的引用 160
6.6 指针数组与main()形参 161
本章小结 162
习题 163
第7章 自定义函数 173
7.1 函数的概念 173
7.2 函数间的数据传递 176
7.2.1 实参与形参 176
7.2.2 变量作为函数参数 177
7.2.3 用数组作为函数参数 180
7.2.4 结构体变量作为函数的参数 185
7.3 函数的嵌套调用与递归调用 185
7.3.1 函数的嵌套调用 185
7.3.2 函数的递归调用 187
7.4 内部函数与外部函数 190
7.4.1 内部函数 191
7.4.2 外部函数 192
本章小结 194
习题 195
8.1 指针函数 206
第8章 指针与函数 206
8.2 指针作为函数参数 209
8.3 指向函数的指针 211
8.4 指向函数的指针数组 214
8.5 指向void类型的指针及对指针的强制类型转换 215
本章小结 217
习题 218
第9章 指针与结构体 223
9.1 指针与结构体变量 223
9.1.1 指向结构体变量的指针 223
9.1.2 指向结构体数组的指针 225
9.1.3 用指向结构体变量的指针变量作函数的参数 226
9.2.1 单链表概念 229
9.2 单链表 229
9.2.2 链表的建立 231
9.2.3 单链表的插入与删除 233
9.2.4 输出链表 236
9.3 其它链式结构 237
本章小结 238
习题 238
第10章 文件 246
10.1 C语言文件概述 246
10.1.1 文件的概念 246
10.1.2 文件的分类 247
10.1.3 文件的处理过程 249
10.1.4 文件类型指针 250
10.2 数据文件的I/O 251
10.2.1 文件的打开和关闭 251
10.2.2 文件的字符I/O函数 252
10.2.3 文件的字符串I/O函数 254
10.2.4 文件的格式化I/O函数 257
10.2.5 文件的数据块I/O函数 259
10.2.6 整数(字)I/O函数 262
10.3 文件的随机I/O 263
10.3.1 取得文件指针的当前位置:ftell()函数 263
10.3.2 改变文件指针的当前位置:fseek()函数 263
10.3.3 置文件指针于文件开头位置:rewind()函数 265
10.4 标准设备文件的I/O 266
10.4.1 标准设备文件的换向 266
10.4.2 标准设备文件的字符I/O函数 267
10.4.3 标准设备文件的字符串I/O函数 267
10.5 文件的错误检测 268
10.6 程序设计举例 269
本章小结 274
习题 275
习题参考答案 282
附录1 常用字符的ASCII码表 287
附录2 C语言的库函数 289
参考书目 293