第一章 C语言概述 1
1.1 计算机语言 1
1.2 C语言的发展与特点 1
1.3 简单的C语言程序介绍 3
1.4 C语言程序的开发过程 6
1.4.1 在Turbo C集成环境下运行C程序 6
1.4.2 在Unix操作系统下运行C程序的过程 7
本章小结 8
习题一 8
第二章 基本数据类型和表达式 11
2.1 保留字和标识符 11
2.2.1 常量和变量的概念 13
2.2 基本数据类型 13
2.2.2 整型变量及其输出 14
2.2.3 实型变量及其输出 17
2.2.4 整型常量和实型常量 19
2.2.5 字符常量和字符串常量 19
2.2.6 字符变量及其输出 22
2.2.7 变量的初始化 24
2.3 运算符和表达式 24
2.3.1 表达式 24
2.3.2 算术运算符和算术表达式 25
2.3.3 算术表达式中数据类型的转换 26
2.3.4 赋值运算 28
2.3.5 标准库函数调用 31
2.3.6 增量运算符与增量表达式 32
2.3.7 关系运算符和关系表达式 33
2.3.8 逻辑运算符和逻辑表达式 34
2.3.9 位运算符 37
2.3.10 条件运算符和条件表达式 38
2.3.11 逗号运算符和逗号表达式 39
2.3.12 运算符优先级和结合方向 39
本章小结 41
习题二 41
第三章 简单语句和选择语句 45
3.1 结构化程序设计概述 45
3.2.1 为何要输入数据 47
3.2.2 scanf函数 47
3.2 scanf函数和字符输入、输出函数简介 47
3.2.3 字符输入函数 50
3.2.4 字符输出函数 50
3.3 表达式语句 51
3.4 复合语句 51
3.5 if条件语句 52
3.5.1 if结构 52
3.5.2 if-else结构 56
3.5.3 if-else-if结构 57
3.5.4 条件语句的嵌套 61
3.6 结构化流程图 65
3.7 switch语句 68
3.8 程序设计举例 72
本章小结 75
习题三 76
第四章 循环语句和转移语句 79
4.1 循环的概念 79
4.2 for循环 80
4.3 while循环 88
4.4 do-while循环 90
4.5 break语句 92
4.6 continue语句 93
4.7 多重循环 94
4.8 goto语句 99
本章小结 100
习题四 101
第五章 数组 103
5.1 一维数组 103
5.1.1 一维数组的定义 103
5.1.2 一维数组元素的引用 104
5.1.3 一维数组元素的初始化 106
5.2 二维数组 107
5.2.1 二维数组的定义 107
5.2.2 二维数组的引用 108
5.2.3 二维数组元素的初始化 109
5.3 数组的查找与排序操作 112
5.3.1 排序 112
5.3.2 查找 115
5.4.1 字符数组的定义 117
5.4 字符数组和字符串 117
5.4.2 字符数组的引用 118
5.4.3 字符数组的初始化 119
5.4.4 字符串及其结束标志 120
5.4.5 字符数组的输入输出 122
5.4.6 常用的字符串处理函数 124
5.5 程序设计举例 127
本章小结 130
习题五 131
第六章 函数 135
6.1 函数的概念 135
6.2 函数的定义 136
一、函数调用格式及执行过程 137
6.3 函数的调用 137
二、函数的调用方式 138
三、对被调用函数的使用说明 139
6.4 函数的返回值 140
6.5 函数参数及函数间的数据传递 144
6.5.1 非数组名作为函数参数 147
6.5.2 数组名作为函数参数 148
6.6 函数的嵌套与递归 150
6.6.1 函数的嵌套调用 150
6.6.2 函数的递归调用 154
6.7 变量的存储类型及其作用域 156
6.7.1 局部变量及其存储类型 157
6.7.2 全局变量及其存储类型 161
6.8.1 内部函数 164
6.8 内部函数和外部函数 164
6.8.2 外部函数 165
6.9 应用举例 166
本章小结 173
习题六 173
第七章 指针 177
7.1 变量的地址和指针 177
7.2 指针变量的定义 178
7.3 指针变量的运算及操作 179
7.3.1 给指针变量赋值 179
7.3.2 移动指针 181
7.3.3 指针比较 184
7.3.4 通过指针变量引用存储单元 185
7.4 指针与函数参数 190
7.4.1 形参为指针变量时,实参和形参之间的数据传递 191
7.4.2 返回地址值的函数 193
7.5 函数型指针 194
7.5.1 函数型指针的定义 194
7.5.2 函数型指针的赋值 195
7.5.3 函数型指针的引用 195
7.6 数组与指针 198
7.6.1 一维数组和指针 198
7.6.2 二维数组与指针 199
7.6.3 指针与字符串 202
7.7 命令行参数 205
7.8 程序设计举例 206
本章小结 208
习题七 209
第八章 编译预处理 210
8.1 宏定义 219
8.2 文件包含 224
8.3 条件编译 226
本章小结 229
习题八 229
第九章 结构与联合 231
9.1 结构定义和结构变量的引用 231
9.1.1 结构定义 231
9.1.2 结构变量的引用 233
9.1.3 结构变量的初始化 234
9.2.1 结构数组的定义 235
9.2 结构数组 235
9.2.2 结构数组的初始化 236
9.3 指向结构的指针 238
9.4 结构与函数 239
9.5 引用自身的结构(链表) 243
9.6 字段结构 245
9.7 联合 246
9.8 枚举 248
9.9 类型定义 249
9.10 程序设计举例 251
本章小结 254
习题九 255
10.1.1 字符输出函数putchar 257
第十章 输入输出 257
10.1 终端输出函数 257
10.1.2 格式输出函数printf 258
10.2 终端输入函数 263
10.2.1 字符输入函数getchar 263
10.2.2 格式输入函数scanf 264
10.2.3 字符串输入函数gets 267
10.3 系统命令调用函数system 268
10.4 程序举例 269
本章小结 270
习题十 270
11.1 C文件概述 273
第十一章 文件 273
11.2 文件类型指针 274
11.3 文件的打开与关闭 275
11.3.1 文件的打开(fopen函数) 275
11.3.2 文件的关闭(fclose函数) 276
11.4 文件的读写 277
11.4.1 文件的字符读写函数 277
11.4.2 文件的字符串读写函数 278
11.4.3 文件的数据块读写函数 280
11.4.4 文件的格式化输入输出函数 282
11.4.5 其他读写函数 283
11.5 文件的定位 284
11.5.1 置文件位置指针于文件开头位置的函数rewind 284
11.5.2 改变文件位置指针位置的函数fseek 285
11.5.3 取得文件当前位置的函数ftell 286
11.6 文件的错误检测 286
11.6.1 文件读写错误检测函数ferror 286
11.6.2 清除文件错误标志函数clearerr 287
11.7 程序设计举例 287
本章小结 290
习题十一 291
附录1 常用字符与ASCII代码对照表 293
附录2 C语言常用语法提要 295
2.1 标识符 295
2.2 常量 295
2.3 表达式 295
2.4 数据定义 296
2.5 函数定义 297
2.6 变量的初始化 297
2.7 语句 298
2.8 预处理命令 299
附录3 C库函数 301
3.1 数学函数 302
3.2 字符型函数 303
3.3 字符串函数 303
3.4 输入输出函数 304
3.5 动态存储分配函数 306
3.6 其他函数 306
参考文献 308