第1章 概述 1
1.1 C语言的介绍 1
1.1.1 C语言的历史 1
1.1.2 C语言的基本用途 1
1.1.3 C语言的特点 2
1.2 C程序基本结构 3
1.3 编码风格 5
1.4 使用集成开发环境(IDE)编程 7
1.4.1 C程序的一般开发过程 7
1.4.2 Turbo C 2.0集成开发环境的使用方法 7
1.4.3 Linux操作系统中C程序的开发方法 8
1.4.4 Visual C++6.0集成开发环境 9
1.5 案例 11
1.6 小结 11
习题 11
第2章 变量与表达式 13
2.1 简单表达式 13
2.1.1 算术运算符及其表达式 13
2.1.2 C语言表达式书写规则 14
2.2 变量与常量 14
2.2.1 变量 15
2.2.2 常量和符号常量 17
2.3 数据类型 20
2.3.1 整型数据 21
2.3.2 实型数据 24
2.3.3 字符型数据 25
2.3.4 类型转换 26
2.4 赋值语句 27
2.5 复杂表达式 29
2.5.1 自增、自减运算符 29
2.5.2 关系运算符与关系表达式 31
2.5.3 逻辑运算符与逻辑表达式 32
2.5.4 逗号运算符 33
2.6 基本输入输出函数 34
2.6.1 字符输入与输出函数 34
2.6.2 格式化输入与输出函数 36
2.6.3 常用函数 44
2.7 顺序结构程序设计 45
2.8 案例 46
2.9 小结 48
习题 48
第3章 控制语句 53
3.1 if…else语句 53
3.1.1 if…else语句的三种形式 53
3.1.2 if语句的嵌套 58
3.1.3 条件运算符 60
3.2 switch…case语句 62
3.3 for语句 68
3.4 while、do…while语句 72
3.4.1 while语句 72
3.4.2 do…while语句 73
3.5 break、continue语句 75
3.5.1 break语句 75
3.5.2 continue语句 76
3.6 goto语句 77
3.7 多重循环 78
3.8 案例 84
3.9 小结 89
习题 89
第4章 数组 91
4.1 数组的概念 91
4.1.1 数组的一般概念 91
4.1.2 数组的特点 91
4.1.3 数组的使用场合 91
4.2 一维数组 92
4.2.1 一维数组的定义 92
4.2.2 一维数组元素的引用 92
4.2.3 一维数组的赋值 93
4.2.4 一维数组应用举例 94
4.3 多维数组 100
4.3.1 多维数组的定义 100
4.3.2 二维数组的引用 101
4.3.3 二维数组的赋值 102
4.3.4 二维数组应用举例 103
4.4 字符数组 107
4.4.1 字符数组的定义 107
4.4.2 字符数组的赋值 107
4.4.3 字符数组的引用 108
4.4.4 字符串 109
4.4.5 字符数组的输入输出 110
4.4.6 常用的字符串处理函数 111
4.4.7 字符数组应用举例 116
4.5 案例 122
4.6 小结 125
习题 125
第5章 函数 129
5.1 函数的定义 129
5.1.1 函数定义的一般格式 129
5.1.2 “空函数” 130
5.2 函数的运用 131
5.2.1 函数的调用 131
5.2.2 参数传递 136
5.3 变量的作用域与生存期 140
5.3.1 局部变量 141
5.3.2 全局变量 141
5.3.3 变量的生存期 143
5.3.4 用extern声明外部变量 146
5.3.5 用static声明外部变量 147
5.3.6 函数的存储类别 147
5.4 函数的嵌套与递归调用 148
5.4.1 函数的嵌套调用 148
5.4.2 函数的递归调用 149
5.5 案例 151
5.6 小结 157
习题 157
第6章 指针 160
6.1 指针的含义 160
6.2 指针变量 161
6.2.1 指针变量的定义 161
6.2.2 指针变量的引用 161
6.2.3 指针的运算 163
6.3 指针与数组 165
6.3.1 指向数组元素的指针 165
6.3.2 指针与字符串 170
6.3.3 指针数组 173
6.3.4 指针与二维数组 175
6.4 指针与函数 179
6.4.1 指针作为函数的参数 179
6.4.2 指针函数 181
6.4.3 函数指针 183
6.5 案例 184
6.6 小结 190
习题 190
第7章 结构体与其他构造数据类型 194
7.1 结构体 194
7.2 结构体数组的定义和引用 200
7.2.1 结构体数组的定义 200
7.2.2 结构体数组的初始化 201
7.2.3 结构体数组的输入与输出 201
7.3 指向结构体的指针 202
7.3.1 结构体指针的定义和引用 203
7.3.2 指向结构体数组的指针 203
7.4 结构体与函数 204
7.4.1 结构体传递给函数的方式 205
7.4.2 结构体的应用 206
7.5 复杂的结构体 209
7.5.1 结构体作为结构体成员 209
7.5.2 结构体的自我引用 211
7.6 链表 211
7.6.1 链表概述 211
7.6.2 C语言中的内存管理函数 213
7.6.3 创建动态链表 214
7.6.4 链表的插入操作 216
7.6.5 链表的删除操作 217
7.6.6 链表的查找操作 218
7.6.7 链表的输出操作 219
7.7 共用体 221
7.7.1 共用体类型的定义与变量的定义 221
7.7.2 共用体变量的初始化和应用 224
7.8 位域 225
7.8.1 位域定义的一般形式 225
7.8.2 位域的引用 227
7.9 枚举类型 228
7.9.1 枚举类型的定义与变量的定义 228
7.9.2 枚举类型的应用 229
7.10 类型定义typedef 230
7.11 案例 232
7.12 小结 239
习题 239
第8章 文件 241
8.1 文件的概念 241
8.1.1 文件的基本概念 241
8.1.2 文件的分类 241
8.1.3 流 242
8.1.4 缓冲式输入输出 243
8.2 文件类型指针 243
8.3 文件的操作 244
8.3.1 文件的打开和关闭 244
8.3.2 文件的顺序读写 247
8.3.3 文件的随机读写 257
8.4 案例 262
8.5 小结 264
习题 264
第9章 编译预处理与多模块可执行程序的生成 265
9.1 宏定义 265
9.1.1 不带参数的宏定义 265
9.1.2 带参数的宏定义 267
9.2 文件包含 270
9.3 条件编译 272
9.4 多模块可执行程序的生成 275
9.5 小结 277
习题 277
第10章 位运算 279
10.1 位运算 279
10.1.1 按位与运算符 279
10.1.2 按位或运算符 280
10.1.3 按位异或运算符 281
10.1.4 按位取反运算符 282
10.1.5 左移运算符 282
10.1.6 右移运算符 283
10.1.7 不同长度的数据进行位运算 284
10.2 设置、清除和检测位 284
10.3 小结 286
习题 286
附录一 常用字符与ASCII码对照表 287
附录二 运算符的优先级与结合性 289
附录三 C常用库函数 291
参考文献 296