第1章 C语言程序设计概述 1
1.1 程序与程序设计 1
1.2 C语言简介 2
1.2.1 C语言的发展历程 2
1.2.2 C语言的优点和规则 3
1.3 简单的C语言程序 4
1.4 C语言程序的上机步骤 4
1.5 C语言的基本词法 6
1.6 C语言程序的基本结构 7
本章小结 8
习题 9
2.1 算法的概念 11
第2章 算法及算法设计简介 11
2.2 C语言基本语句类型及算法的表示方式 12
2.2.1 C语言基本语句类型 12
2.2.2 算法的表示方法 12
2.3 简单的算法实例 14
2.4 结构化程序设计方法简介 17
本章小结 18
习题 19
第3章 数据描述与基本操作 20
3.1 基本数据类型 20
3.1.1 整型 20
3.1.2 实型 23
3.1.3 字符型 24
3.2.1 赋值运算符 27
3.2 常用的运算符和表达式 27
3.2.2 算术运算符 29
3.2.3 位运算符 31
3.2.4 条件运算符和逗号运算符 34
3.2.5 长度测试运算符 35
3.2.6 数值型数据的混合运算 35
3.3 表达式及赋值语句 36
3.4 基本输入输出操作的实现 36
3.4.1 基本输入输出的概念 36
3.4.2 字符、字符串数据的输入输出 37
3.4.3 格式化输入输出函数 38
3.5 顺序结构程序设计实例 44
习题 46
本章小结 46
第4章 选择结构程序设计 52
4.1 关系运算符与关系表达式 52
4.1.1 关系运算符及其优先次序 52
4.1.2 关系表达式 53
4.2 逻辑运算符和逻辑表达式 53
4.2.1 逻辑运算符及其优先次序 53
4.2.2 逻辑表达式 54
4.3 if语句 54
4.3.1 if语句的三种形式 55
4.3.2 if语句的嵌套 57
4.4 switch语句 59
4.5 选择结构程序设计实例 61
习题 64
本章小结 64
5.1 循环结构的应用场合 69
5.2 while语句 69
第5章 循环结构程序设计 69
5.3 do~while语句 70
5.4 for语句 72
5.5 多重循环 74
5.6 几种循环语句的比较 75
5.7 转移控制语句 75
5.7.1 break语句 75
5.7.2 continue语句 76
5.7.3 goto语句 77
5.8 单循环及多重循环结构的实例 77
习题 79
本章小结 79
第6章 数组与指针 85
6.1 数组 85
6.1.1 数组的概念 85
6.1.2 数组的定义、初始化和引用 86
6.1.3 字符数组 91
6.2 指针的概念 97
6.2.1 地址与指针的概念 97
6.2.2 指针的定义与引用 98
6.3 指针与数组 101
6.3.1 指向一维数组的指针 101
6.3.2 指向多维数组的指针 104
6.4 字符串的指针 107
6.5 指针数组和数组指针 109
6.5.1 指针数组 109
6.5.2 数组指针 111
6.6 指向指针的指针 111
本章小结 112
习题 112
第7章 函数与模块化程序设计 121
7.1 模块化程序设计与C程序结构 121
7.1.1 模块化程序设计方法的指导思想 121
7.1.2 模块分解的原则 121
7.1.3 C程序的一般结构 122
7.2.1 函数定义 123
7.2 函数定义与函数声明 123
7.2.2 函数声明 124
7.3 参数的返回与参数传递 125
7.3.1 函数的返回 125
7.3.2 形参与实参 126
7.4 函数的调用 127
7.4.1 函数调用的一般形式 127
7.4.2 函数的传值调用 128
7.4.3 地址传送方式传递数据 129
7.4.4 库函数的调用 130
7.5 函数的嵌套与递归调用 131
7.5.1 函数的嵌套调用 131
7.5.2 函数的递归调用 132
7.6.1 动态存储和静态存储 133
7.6.2 变量的作用域 133
7.6 变量的存储类型 133
7.6.3 动态变量 136
7.6.4 寄存器变量 136
7.6.5 局部静态变量 137
7.6.6 外部变量 138
7.7 数组与函数参数 138
7.7.1 数组元素作为函数实参 138
7.7.2 数组名作为函数实参 139
7.8 指针与函数 143
7.8.1 指向函数的指针 143
7.8.2 返回指针的函数 145
习题 146
本章小结 146
第8章 结构体和共用体 155
8.1 结构体类型概述 155
8.2 结构体变量的定义和引用 156
8.2.1 结构体变量的定义 156
8.2.2 结构体变量的初始化 157
8.2.3 结构体变量的引用 157
8.3 结构体数组 159
8.3.1 结构体数组的定义 159
8.3.2 结构体数组的初始化 160
8.3.3 结构体数组的引用 160
8.4 结构和指针 160
8.4.1 指向结构体变量的指针 161
8.4.3 指向结构体的指针作函数参数 162
8.4.2 指向结构体数组的指针 162
8.5 动态存储分配 164
8.5.1 链表概述 164
8.5.2 动态存储分配的函数 164
8.5.3 建立链表 165
8.5.4 链表的插入操作 167
8.5.5 链表的删除操作 168
8.6 共用体类型 169
8.6.1 共用体类型的定义 169
8.6.2 共用体类型变量的特点 169
8.6.3 共用体类型变量的引用方式 170
8.7 枚举类型 171
8.8.1 位域 172
8.8 用typedef定义类型 172
8.8.2 typedef语句的使用 173
本章小结 174
习题 174
第9章 编译预处理 178
9.1 宏定义 178
9.1.1 简单宏定义 178
9.1.2 带参数的宏定义 179
9.2 文件包含 182
9.3 条件编译 183
9.4 行控制 183
9.5 带参数的主函数 184
本章小结 184
习题 184
10.1 C文件系统的分类 187
第10章 文件 187
10.2 文件的打开与关闭 188
10.2.1 文件类型指针 188
10.2.2 打开文件 188
10.2.3 关闭文件 190
10.3 文件的读写 190
10.3.1 字符输入/输出函数 190
10.3.2 格式输入/输出函数 191
10.3.3 字符串输入/输出函数 192
10.3.4 “记录”方式的输入和输出 193
10.4 文件处理的其他常用函数 194
10.4.1 文件的定位 194
习题 196
本章小结 196
10.4.2 出错检测 196
第11章 常用程序设计方法 198
11.1 排序及应用 198
11.1.1 排序算法的种类 198
11.1.2 冒泡排序法 199
11.1.3 选择排序法 200
11.1.4 插入排序法 200
11.1.5 希尔排序法 201
11.2 查找 202
11.2.1 顺序查找 202
11.2.2 折半查找 202
11.3 迭代法 203
11.4 递推法 205
11.5 穷举搜索法 206
11.6 递归法 210
11.7 回溯法 216
11.8 贪婪法 223
11.9 分治法 228
本章小结 229
习题 230
第12章 C语言图形介绍 231
12.1 键盘控制 231
12.2 鼠标控制 231
12.3 光标控制 232
12.4 Turbo C的图形功能 233
12.5 图形方式下的文本输出函数 236
12.6 常用统计图形的绘制 239
12.7 综合应用实例 243
本章小结 244
第13章 C++介绍 245
13.1 C++的特点 245
13.1.1 C转入C++时不需改变的内容 245
13.1.2 C转入C++时一些与类无关的新特性 246
13.2 C++的核心新特性——类 248
13.2.1 类和对象 248
13.2.2 类成员的访问 249
13.2.3 构造函数和析构函数 250
本章小结 252
附录 253
参考文献 266