第1章 C语言程序开发过程简述 1
1.1 程序设计概述 1
1.1.1 程序设计与程序设计语言 1
1.1.2 用户应用程序开发过程 3
1.2 C程序的结构 6
1.3 C程序开发环境 8
1.3.1 Visual C++6.0集成开发环境简介 8
1.3.2 Visual C++平台下开发C程序的步骤 9
习题1 11
第2章 顺序结构暨数据类型和表达式 13
2.1 顺序结构暨简单的格式输入/输出语句 13
2.1.1 顺序结构 13
2.1.2 最简单的格式输入语句 14
2.1.3 最简单的格式输出语句 14
2.2 C语言数据类型分类 15
2.3 常量 16
2.3.1 常量 16
2.3.2 变量 18
2.4 整型变量 20
2.4.1 整型数的补码存储形式 20
2.4.2 整数的取值范围 20
2.4.3 C语言中整型变量的取值范围 21
2.5 实型变量 21
2.5.1 实型数据的存储形式 22
2.5.2 实型变量 22
2.6 字符变量 23
2.6.1 字符的存储形式 23
2.6.2 字符变量 24
2.7 不同数据类型之间的相互转换 24
2.7.1 自动类型转换 25
2.7.2 强制类型转换 25
2.8 运算符和表达式 26
2.8.1 算术运算符和算术表达式 27
2.8.2 赋值运算符和赋值表达式 28
2.8.3 关系运算符和关系表达式 30
2.8.4 逻辑运算符和逻辑表达式 31
2.8.5 条件运算符和条件表达式 33
2.8.6 逗号运算符和逗号表达式 34
2.9 位运算 34
2.9.1 位运算符和位运算表达式 34
2.9.2 位运算详解 35
2.10 完整的输入/输出函数 39
2.10.1 字符的输入/输出函数 39
2.10.2 字符串的输入/输出函数 40
2.10.3 格式转换说明符 40
2.10.4 格式修饰符 43
2.11 顺序结构暨运算符表达式综合应用举例 45
习题2 48
第3章 选择结构和循环结构 52
3.1 选择结构 52
3.1.1 选择结构概述 52
3.1.2 if语句和单双路分支 53
3.1.3 多路分支结构 57
3.2 循环控制结构 61
3.2.1 循环结构概述 61
3.2.2 用goto语句实现当循环 61
3.2.3 while当循环语句 62
3.2.4 do...while当循环语句 63
3.2.5 for循环语句 64
3.2.6 循环语句的嵌套 66
3.2.7 break语句和continue语句 66
3.2.8 几种循环的比较 69
3.3 控制结构应用举例 69
习题3 76
第4章 数组与字符串 82
4.1 一维数组 82
4.1.1 一维数组的声明、定义和初始化 82
4.1.2 一维数组元素的引用 84
4.1.3一维数组的应用 84
4.2 二维数组 87
4.2.1 二维数组的声明、定义与初始化 87
4.2.2 二维数组及元素的引用 89
4.2.3 二维数组的应用 89
4.3 字符数组与字符串 92
4.3.1 字符数组 93
4.3.2 字符数组的引用 95
4.3.3 字符串的操作 96
4.3.4 字符串处理标准库函数 99
4.4 数组综合应用举例 102
习题4 110
第5章 函数与带参数宏 115
5.1 函数的声明、定义与调用 115
5.1.1 函数的声明与定义 115
5.1.2 函数调用 116
5.1.3 函数参数传递 118
5.1.4 主函数main()中的参数 121
5.2 函数的嵌套调用与递归调用 122
5.2.1 函数的嵌套调用 122
5.2.2 函数的递归调用 123
5.3 内部函数和外部函数 124
5.3.1 内部函数 125
5.3.2 外部函数 125
5.4 带参数宏 126
5.5 库函数及预处理命令#include 129
5.6 函数综合应用举例 130
习题5 138
第6章 变量的作用域与存储类型 142
6.1 变量的作用域 142
6.1.1 局部作用域 142
6.1.2 全局作用域 143
6.2 局部变量与全局变量 143
6.2.1 局部变量 143
6.2.2 全局变量 145
6.3 全局变量作用域的扩展 146
6.4 变量的生命历程与存储类型 147
6.4.1 自动变量 148
6.4.2 外部变量 150
6.4.3 静态变量 151
6.4.4 寄存器变量 152
6.5 综合应用举例 152
6.5.1 局部变量综合应用举例 152
6.5.2 外部变量的应用举例 154
习题6 156
第7章 指针 161
7.1 变量的地址和指针变量 161
7.1.1 变量的地址及变量存取方式 161
7.1.2 指针变量的声明和指针变量的基类型 163
7.1.3 指针变量的定义 164
7.2 指针运算 164
7.2.1 指针运算符 164
7.2.2 指针运算 165
7.3 指针变量作为函数的参数 167
7.4 数组的指针与指向数组的指针变量 169
7.4.1 指向一维数组的指针变量 169
7.4.2 指向多维数组的指针变量 172
7.5 数组名作为函数的参数 174
7.5.1 用指向一维数组的指针作函数的参数 174
7.5.2 用指向多维数组的指针作函数参数 177
7.6 字符串的指针和指向字符串的指针变量 179
7.6.1 字符串的访问形式 179
7.6.2 字符串指针作为函数参数 180
7.6.3 字符数组与字符串指针的区别 181
7.7 指向函数的指针 181
7.7.1 函数的指针 181
7.7.2 用指向函数的指针作函数参数 182
7.8 返回指针值的函数 183
7.9 指针数组与指向指针的指针 184
7.9.1 指针数组的概念 184
7.9.2 指向指针的指针 186
7.9.3 指针数组作main()函数的参数 187
7.10 指针的综合应用举例 188
习题7 191
第8章 结构体和共用体 197
8.1 结构体类型 197
8.1.1 结构体类型 197
8.1.2 结构体类型的定义 198
8.2 结构体变量的声明与引用 200
8.2.1 结构体变量的声明 200
8.2.2 结构体变量的引用 201
8.3 结构体数组 204
8.3.1 结构体数组的声明 204
8.3.2 结构体数组的引用 204
8.4 结构体与指针 207
8.4.1 结构体指针变量 207
8.4.2 指向结构体数组的指针 208
8.4.3 结构体指针数组 208
8.5 共用体类型 209
8.5.1 共用体类型 209
8.5.2 共用体类型的定义 210
8.6 共用体变量的声明与引用 211
8.6.1 共用体变量的声明 211
8.6.2 共用体变量的引用 211
8.7 结构体和共用体作为函数的参数 213
8.7.1 结构体作为函数参数 213
8.7.2 共用体作为函数参数 215
8.8 链表的基本操作 216
8.8.1 链表概述 216
8.8.2 动态链表的建立 218
8.8.3 链表节点的查找 220
8.8.4 链表节点的插入 224
8.8.5 链表节点的删除 225
8.9 特殊的基本数据类型——枚举类型 227
8.9.1 枚举型的定义 227
8.9.2 枚举型变量的声明与引用 228
8.10 位段及其运算 229
8.10.1 位段的定义 230
8.10.2 位段变量的声明 230
8.10.3 位段变量的使用 231
8.11 结构体共用体枚举的综合应用 231
习题8 236
第9章 文件 239
9.1 文件概述 239
9.1.1 ASCII文件 239
9.1.2 二进制文件 240
9.1.3 文本文件与二进制文件的存取 240
9.2 文件的打开与关闭 241
9.2.1 文件打开函数fopen() 242
9.2.2 文件关闭函数fclose() 243
9.3 文件的顺序读写 244
9.3.1 字符读写函数 244
9.3.2 字符串读写函数 246
9.3.3 文件格式化读写函数 247
9.3.4 数据块读写函数 250
9.4 文件的定位与随机读写 252
9.5 文件操作应用举例 256
习题9 261
参考文献 264
附录A 常用字符与ASCII代码对照表 265
附录B C语言中的关键字 266
附录C C语言中的运算符和结合性 268
附录D C语言常用语法提要 270
附录E Turbo C语言常用库函数表 273