第1章 C语言概述 1
1.1 程序设计语言的发展历程 1
1.2 C语言的发展历程 3
1.3 C语言的主要特点 4
1.4 C语言程序的基本组成 4
1.5 C语言程序的书写风格 7
1.6 C语言程序的编译及运行 8
1.7 程序及算法 9
1.7.1 程序 9
1.7.2 算法的概念 9
1.7.3 算法的描述 10
1.8 程序设计方法 12
1.8.1 结构化程序设计方法 12
1.8.2 面向对象程序设计方法 13
1.9 Visual C++ 6.0的运行环境及基本操作 14
1.10 程序举例 18
本章小结 19
习题 19
第2章 C语言基础及顺序结构程序设计 21
2.1 C语言的字符集 21
2.2 C语言的关键字和标识符 21
2.2.1 关键字 22
2.2.2 标识符 22
2.3 C语言的数据类型 22
2.4 常量 23
2.4.1 整型常量 24
2.4.2 实型常量 24
2.4.3 字符常量 25
2.4.4 字符串常量 26
2.4.5 符号常量 27
2.5 变量 28
2.5.1 变量的概念 28
2.5.2 变量的定义与初始化 28
2.5.3 整型变量 29
2.5.4 实型变量 29
2.5.5 字符变量 30
2.6 C语言的运算符和表达式概述 32
2.6.1 运算符 32
2.6.2 表达式 32
2.6.3 运算符的优先级和结合性 32
2.7 C语言中最基本的运算符和表达式 34
2.7.1 算术运算符和算术表达式 34
2.7.2 赋值运算符和赋值表达式 36
2.7.3 关系运算符和关系表达式 38
2.7.4 逻辑运算符和逻辑表达式 38
2.7.5 条件运算符和条件表达式 40
2.7.6 逗号运算符和逗号表达式 41
2.7.7 强制类型转换运算符 42
2.7.8 其他运算符 43
2.8 C语言的基本语句 44
2.9 数据的输入与输出 45
2.9.1 字符输入/输出函数 46
2.9.2 格式输出函数 47
2.9.3 格式输入函数 51
2.10 顺序结构程序设计 54
2.11 程序举例 56
本章小结 59
习题 59
第3章 选择结构程序设计 64
3.1 选择结构的概念 64
3.2 if语句 66
3.2.1 if语句的3种形式 66
3.2.2 if语句的嵌套 72
3.3 switch语句 75
3.4 程序举例 79
本章小结 85
习题 85
第4章 循环结构程序设计 90
4.1 循环的概念 90
4.2 while语句 91
4.3 do...while循环 94
4.4 for循环 96
4.5 break语句和continue语句 100
4.5.1 break语句 100
4.5.2 continue语句 101
4.6 多重循环 102
4.7 程序举例 105
4.8 3种循环语句的比较 111
本章小结 112
习题 112
第5章 数组 117
5.1 数组及数组元素的概念 117
5.2 一维数组的定义和引用 117
5.2.1 一维数组的定义 117
5.2.2 一维数组元素的引用 118
5.2.3 一维数组的初始化 119
5.2.4 一维数组程序举例 120
5.3 多维数组 128
5.3.1 二维数组的定义 128
5.3.2 二维数组元素的引用 129
5.3.3 二维数组的初始化 129
5.3.4 多维数组的定义 130
5.3.5 多维数组程序举例 130
5.4 字符数组 135
5.4.1 字符数组的定义 135
5.4.2 字符数组的初始化 135
5.4.3 字符串及其字符串的结束标志 137
5.4.4 字符数组的输入/输出 137
5.4.5 常用的字符串处理函数 138
5.4.6 字符数组程序举例 142
5.5 程序举例 145
本章小结 147
习题 148
第6章 函数与编译预处理 151
6.1 函数概述 151
6.1.1 模块化程序设计方法 151
6.1.2 函数的分类 152
6.1.3 函数的定义 153
6.2 函数的调用 154
6.2.1 函数的调用方式 154
6.2.2 对被调函数原型的声明 155
6.3 函数的参数传递方式与函数的返回值 156
6.3.1 函数的参数传递方式 156
6.3.2 函数的返回值 161
6.4 函数的嵌套调用与递归调用 162
6.4.1 函数的嵌套调用 162
6.4.2 函数的递归调用 163
6.5 变量的作用域与存储类别 165
6.5.1 局部变量和全局变量 165
6.5.2 变量的动态和静态存储方式 168
6.5.3 局部变量的存储类别 168
6.5.4 全局变量的存储类别 170
6.6 内部函数和外部函数 172
6.6.1 内部函数 172
6.6.2 外部函数 172
6.7 编译预处理 173
6.7.1 宏定义 173
6.7.2 文件包含 178
6.7.3 条件编译 179
6.8 程序举例 182
本章小结 189
习题 189
第7章 指针 194
7.1 地址和指针的概念 194
7.2 指向变量的指针变量 195
7.2.1 指向变量的指针变量的定义 195
7.2.2 指针运算符 195
7.2.3 指针变量的初始化 197
7.2.4 指针变量的运算 198
7.2.5 指针变量作为函数参数 199
7.3 指针与数组 201
7.3.1 一维数组和指针 201
7.3.2 二维数组和指针 206
7.4 字符串的指针和指向字符串的指针变量 209
7.4.1 字符串的指针 209
7.4.2 字符串作为函数参数 211
7.5 指针数组 212
7.6 指向指针的指针 213
7.7 函数的指针 215
7.7.1 函数的指针和指向函数的指针变量 215
7.7.2 函数的指针作为函数参数 216
7.8 返回指针的函数 217
7.9 main()函数的返回值和参数 219
7.9.1 main()函数的返回值 219
7.9.2 main()函数的参数 219
7.10 程序举例 220
本章小结 222
习题 223
第8章 结构体和共用体 226
8.1 结构体 226
8.1.1 结构体类型的定义 226
8.1.2 结构体变量的说明 227
8.1.3 结构体变量的引用 228
8.1.4 结构体变量的赋值 228
8.1.5 结构体变量的初始化 229
8.1.6 结构体数组 230
8.1.7 指向结构体变量的指针变量 233
8.2 动态存储分配与链表 234
8.2.1 链表的概念 235
8.2.2 动态存储分配 235
8.2.3 建立和输出链表 237
8.2.4 链表的基本操作 237
8.3 共用体类型 244
8.3.1 共用体类型概述 244
8.3.2 共用体变量的定义 244
8.3.3 共用体变量的引用和赋值 245
8.4 枚举类型 246
8.4.1 枚举类型的定义 246
8.4.2 枚举类型变量的赋值和使用 247
8.5 用户自定义类型 249
8.6 程序举例 251
本章小结 253
习题 254
第9章 文件 257
9.1 文件的基本概念 257
9.1.1 文件的分类 257
9.1.2 文件的操作过程 258
9.1.3 文件缓冲区 258
9.2 文件类型指针 259
9.3 文件的打开与关闭 259
9.3.1 文件的打开函数 259
9.3.2 文件的关闭函数 261
9.4 文件的读/写 261
9.4.1 文件的写函数 261
9.4.2 文件的读函数 265
9.4.3 文件的读/写函数程序举例 269
9.5 文件的随机读/写 271
9.6 文件检测函数 273
9.7 程序举例 273
本章小结 275
习题 275
第10章 位运算 278
10.1 位运算符和位运算 278
10.1.1 位运算符 278
10.1.2 位运算符的运算功能 279
10.2 位段结构 285
10.2.1 位段的概念 285
10.2.2 位段结构的定义和使用 285
10.3 程序举例 287
本章小结 287
习题 288
附录A 部分字符的ASCII码对照表 289
附录B Visual C++ 6.0库函数 290
附录C Visual C++ 6.0编译错误信息 296
参考文献 300