前言 1
第1章 C语言程序设计概述 1
1.1 引言 1
1.2 C语言的历史 1
1.3 C语言的特点 2
1.4 C语言的程序结构 3
1.5 结构化程序设计 6
习题 7
本章小结 7
第2章 结构化程序的开发 8
2.1 引言 8
2.2 算法 8
2.3 流程图与伪代码 9
2.4 使用控制结构对算法进行描述 10
2.5 结构化程序设计原则 12
2.6 自顶向下、逐步求精的程序设计方法 12
2.7 实例:用自顶向下、逐步求精的方法制定算法 14
习题 16
本章小结 16
3.1 引言 18
3.2 数据类型、常量和变量 18
第3章 数据类型、运算符和表达式 18
3.3 整型数据 21
3.4 实型数据 23
3.5 字符类型和布尔类型 24
3.6 运算符 27
3.7 表达式 37
习题 39
本章小结 39
第4章 程序控制 41
4.1 引言 41
4.2 程序控制的三种基本结构 41
4.3 条件控制语句 42
4.4 循环控制语句 49
4.5 程序举例 56
习题 58
本章小结 58
第5章 函数 61
5.1 引言 61
5.2 C语言的程序模块 61
5.3 函数 62
5.4 头文件 64
5.5 函数的调用 64
5.6 参数的传递 65
5.7 函数的嵌套调用 69
5.8 函数的递归调用 70
5.9 变量的作用域与存储类型 71
5.10 函数的分类 74
5.11 举例说明 74
本章小结 75
习题 75
6.3 一维数组 78
6.2 数组的概念 78
第6章 数组 78
6.1 引言 78
6.4 多维数组 81
6.5 字符数组 84
6.6 实例1:数组排序 85
6.7 实例2:在数组中查找指定的数据 87
本章小结 89
习题 89
7.2 指针的概念 92
第7章 指针 92
7.1 引言 92
7.3 指针变量的声明和初始化 93
7.4 指针变量的引用 94
7.5 指针表达式和指针的算术运算 95
7.6 指针和数组的关系 96
7.7 指针数组和指向指针的指针 104
7.8 函数对指针的调用 108
7.9 对指针使用const限定符 112
7.10 函数指针和指向函数的指针变量 115
本章小结 119
习题 120
第8章 字符和字符串 122
8.1 引言 122
8.2 字符和字符串的基本知识 122
8.3 字符处理函数库 124
8.4 字符串的基本输入/输出 127
8.5 字符串处理库中的字符操作函数 129
8.6 字符串转换函数 133
本章小结 135
习题 136
第9章 格式化输入/输出 137
9.1 引言 137
9.2 printf的格式化输出 137
9.3 scanf函数的格式化输入 141
9.4 非格式化输入/输出 144
习题 145
本章小结 145
第10章 结构体、共用体、位运算和枚举 148
10.1 引言 148
10.2 结构体 148
10.3 共用体 162
10.4 位运算 167
10.5 枚举 173
10.6 类型定义:typedef 175
习题 177
本章小结 177
第11章 文件处理 179
11.1 引言 179
11.2 文件概述 179
11.3 文件和流 180
11.4 文件操作 181
11.5 出错的检测 193
11.6 非缓冲文件系统 193
本章小结 195
习题 196
12.1 引言 197
12.2 自引用结构 197
第12章 数据结构 197
12.3 动态内存分配 198
12.4 链表 198
12.5 堆栈 201
12.6 队列 202
12.7 树 204
习题 208
本章小结 208
第13章 预处理程序 209
13.1 引言 209
13.2 预处理指令#include 209
13.3 预处理指令#define:无参宏定义 211
13.4 预处理指令#define:有参宏定义 213
13.5 条件编译 214
13.6 预处理指令#error和#program 217
13.7 运算符#和## 218
13.8 行号 219
13.9 预定义的符号常量 220
13.10 宏assert 221
本章小结 221
习题 222
第14章 高级话题 223
引言 223
14.1 软件结构化设计中的一些概念 223
14.2 结构化设计中的需求分析 225
14.3 结构化设计中的概要设计和详细设计 227
14.4 用结构化程序设计方法对一系统的设计 230
本章小结 235
习题 235
附录A 常用字符与ASCII代码对照表 236
附录B C语言运算符的优先级和结合性 237
附录C C语言标准库头文件表及函数 238
参考文献 244