第1章 程序设计基础 1
1.1 程序设计语言的发展 1
1.2 算法与程序设计 1
1.2.1 算法及其表示 1
1.2.2 结构化程序设计与面向对象程序设计 5
1.3 C语言简介 6
1.3.1 C语言的产生与发展 6
1.3.2 C语言的特点与应用领域 6
1.4 C语言的结构与执行 6
1.4.1 C语言源程序的结构特点 6
1.4.2 高级语言程序的执行过程 7
1.4.3 程序设计的开发期与开发习惯 7
1.5 C语言的运行与调试 9
1.5.1 C程序的执行过程 9
1.5.2 C程序开发的实验方法 9
1.5.3 Visual C++ 6.0编写程序与调试程序的方法 9
习题1 14
第2章 数据类型、运算符与表达式 15
2.1 C语言的数据类型 15
2.1.1 基本数据类型简介 15
2.1.2 基本数据类型在两种环境下的表示(主要是所占字节数及取值范围) 16
2.2 标识符 16
2.2.1 可用于标识符的字符集 16
2.2.2 标识符的分类 17
2.3 常量 17
2.3.1 整型常量 17
2.3.2 实型常量 19
2.3.3 字符常量 20
2.3.4 字符串常量 21
2.3.5 符号常量与预处理简介 22
2.4 变量 22
2.4.1 整型变量 23
2.4.2 实型变量 26
2.4.3 字符变量 27
2.5 数据间的混合运算 28
2.5.1 各数据类型转换规则 28
2.5.2 自动类型转换与强制转换 29
2.6 变量赋初值 30
2.7 运算符和表达式 31
2.7.1 C语言运算符简介与表达式的类型 31
2.7.2 表达式的求值规则 31
2.7.3 算术运算符和算术表达式 31
2.7.4 赋值运算符和赋值表达式 33
2.7.5 逗号运算符和逗号表达式 35
2.7.6 关系运算符和关系表达式 35
2.7.7 逻辑运算符和逻辑表达式 36
2.7.8 条件运算符和条件表达式 38
2.7.9 位运算符和位运算 39
习题2 40
第3章 顺序结构程序设计与编译预处理 42
3.1 C语句概述 42
3.2 赋值语句 44
3.3 赋值表达式与赋值语句的区别 45
3.4 输入与输出 46
3.4.1 字符数据的输入与输出 46
3.4.2 格式输入与输出 49
3.4.3 文件操作中的输入与输出简介 59
3.5 常用函数举例 59
3.6 编译预处理 60
3.6.1 宏定义 60
3.6.2 文件包含 62
3.7 顺序结构程序设计举例 63
习题3 64
第4章 选择结构程序设计 65
4.1 关系运算与逻辑运算 65
4.1.1 关系表达式的应用 65
4.1.2 逻辑表达式的应用 65
4.2 if语句 67
4.2.1 if语句的3种形式 67
4.2.2 if语句的嵌套与{}语句块的使用 70
4.3 switch语句 73
4.4 应用举例 76
习题4 83
第5章 循环结构程序设计 84
5.1 goto语句及用goto语句构成的循环 84
5.2 while语句 85
5.3 do...while语句 89
5.4 for语句 92
5.5 几种循环的比较 97
5.6 循环嵌套 98
5.7 break语句与循环的终止 100
5.8 continue语句 102
5.9 应用举例 103
习题5 114
第6章 数组 116
6.1 一维数组 116
6.1.1 一维数组的定义 116
6.1.2 一维数组元素的引用 117
6.1.3 一维数组的初始化 117
6.1.4 一维数组程序举例 118
6.2 二维数组 121
6.2.1 二维数组的定义与存储 121
6.2.2 二维数组元素的引用 122
6.2.3 二维数组的初始化 123
6.2.4 二维数组程序举例 123
6.3 字符数组 125
6.3.1 字符数组的定义 125
6.3.2 字符数组的初始化 125
6.3.3 字符串和字符串结束标志 125
6.3.4 字符数组的输入与输出 126
6.3.5 字符串处理函数 128
6.3.6 字符数组程序举例 130
习题6 132
第7章 函数 134
7.1 概述 134
7.2 函数的定义 134
7.3 函数的参数和返回值 135
7.3.1 形式参数和实际参数 135
7.3.2 函数的返回值 136
7.4 函数的调用 137
7.4.1 函数调用的形式和方式 137
7.4.2 被调函数的声明 138
7.4.3 嵌套调用 139
7.4.4 递归调用 140
7.4.5 程序举例 143
7.5 数组作函数参数 144
7.5.1 数组元素作函数实参 144
7.5.2 数组名作函数参数 145
7.5.3 多维数组名作函数实参 147
7.6 变量的作用域与存储类别 148
7.6.1 变量的作用域 148
7.6.2 变量的存储类别 150
7.7 内部函数和外部函数 152
7.7.1 内部函数 152
7.7.2 外部函数 152
7.8 函数应用举例 152
习题7 154
第8章 指针 155
8.1 地址和指针的概念 155
8.2 变量的指针和指向变量的指针变量 156
8.2.1 指针变量的定义 157
8.2.2 指针变量的基本运算 157
8.2.3 用指针变量作为函数参数 162
8.3 数组的指针和指向数组的指针变量 165
8.3.1 指向数组元素的指针变量 165
8.3.2 通过指针引用数组元素 166
8.3.3 用数组名作为函数参数 170
8.3.4 指向多维数组的指针和指针变量 175
8.4 字符串的指针和指向字符串的指针变量 180
8.4.1 字符串的表示形式 180
8.4.2 对使用字符指针变量与字符数组的讨论 181
8.4.3 用字符指针作为函数参数 183
8.5 数的指针和指向函数的指针变量 185
8.5.1 用函数指针变量调用函数 185
8.5.2 用指向函数的指针变量作为函数参数 187
8.6 返回指针值的函数 189
8.7 指针数组和指向指针的指针 191
8.7.1 指针数组的概念 191
8.7.2 指向指针的指针 194
8.7.3 用指针数组作为函数参数 195
8.8 应用举例 198
习题8 200
第9章 结构体与共用体 201
9.1 结构体 201
9.1.1 结构体类型的定义 201
9.1.2 结构体类型变量的定义 202
9.1.3 结构体变量的引用 204
9.1.4 结构体变量的初始化 204
9.2 结构体数组 206
9.2.1 定义结构体数组 206
9.2.2 结构体数组的初始化 206
9.2.3 结构体数组应用举例 207
9.3 指向结构体类型数据的指针 208
9.3.1 指向结构体变量的指针 208
9.3.2 指向结构体数组的指针 209
9.3.3 用结构体变量和指向结构体的指针作为函数参数 210
9.4 用指针处理链表 213
9.4.1 链表概述 213
9.4.2 处理动态链表所需的函数 215
9.4.3 动态链表的基本操作 216
9.5 共用体 220
9.5.1 共用体的概念及特征 221
9.5.2 共用体变量的引用方式 222
9.6 枚举类型 224
9.7 用typedef定义类型 226
9.8 应用举例 227
习题9 229
第10章 文件 231
10.1 文件概述 231
10.2 文件类型指针 232
10.3 标准文件操作 233
10.3.1 文件的打开和关闭 233
10.3.2 文件的读/写 234
10.3.3 文件的定位 242
10.4 文件状态检测函数 243
10.5 文件操作应用举例 243
习题10 246
附录A 常用ASCII表 247
附录B C语言中的关键字 248
附录C 运算符和结合性 249
附录D C库函数 250
参考文献 256