使用本书的建议 1
第1版 出版说明 1
第1版 前言 1
第1章 C语言概述 1
教学目标 1
学习要求 1
授课内容 1
1.1 程序设计与计算机语言 1
第2版 前言 1
1.2 C语言的发展方向 2
1.3 C程序的基本结构 3
1.4 输入、编译、调试和运行一个C程序 4
1.5 算法与程序 4
1.6 C语言的简要历史 6
自学内容 6
1.7 C语言的特点 7
程序设计举例 8
调试技术 12
1.8 Visual C++的集成开发环境 12
1.9 用Developer Studio编写和调试简单C程序 13
练习题目 16
第2章 基本数据类型 17
教学目标 17
学习要求 17
授课内容 17
2.1 数据类型 17
2.2 常量 20
2.3 变量 22
2.4 常见的库函数 23
自学内容 28
2.5 八进制和十六进制常量 28
2.6 类型修饰符 29
程序设计举例 30
调试技术 33
2.7 Developer Studio的文本编辑器 33
练习题目 35
第3章 运算符和表达式 38
教学目标 38
学习要求 38
授课内容 38
3.1 算术运算符和算术表达式 39
3.2 逻辑运算符和逻辑表达式 39
3.3 赋值运算符和赋值表达式 40
3.4 自增运算符和自减运算符 41
3.5 表达式中各运算符的运算顺序 42
自学内容 44
3.6 其他具有副作用的运算符 44
3.7 问号表达式和逗号表达式 44
3.8 类型转换 46
程序设计举例 47
调试技术 50
3.9 Developer Studio的文件处理功能 50
3.10 Visual C++程序的编译、连接和运行 52
3.11 查看和修改编译、连接错误 53
练习题目 54
4.1 程序的基本控制结构 59
授课内容 59
学习要求 59
教学目标 59
第4章 控制结构 59
4.2 C语言的控制结构 62
4.3 结构化程序设计 64
4.4 伪代码 66
自学内容 69
4.5 结构化程序设计方法简介 69
4.6 C语言的其他控制转移语句 70
程序设计举例 75
调试技术 81
4.7 使用FileView标签 81
练习题目 81
授课内容 85
学习要求 85
教学目标 85
第5章 数组类型 85
5.1 一维数组 86
5.2 二维数组 88
5.3 多维数组 92
5.4 字符型数组 93
自学内容 98
5.5 类型修饰符和常量修饰符 98
5.6 枚举类型 99
程序设计举例 101
调试技术 105
5.7 Developer Studio的跟踪调试功能 105
练习题目 107
授课内容 112
学习要求 112
教学目标 112
第6章 函数 112
6.1 函数的定义 113
6.2 函数的调用 114
6.3 函数原型 115
6.4 函数间的参数传递 116
6.5 递归函数 118
6.6 局部变量和全局变量 121
自学内容 122
6.7 变量的存储类别 122
程序设计举例 125
调试技术 130
6.8 常用的调试方法与技巧 130
练习题目 133
学习要求 137
授课内容 137
第7章 编译预处理 137
教学目标 137
7.1 文件包含 138
7.2 宏定义 139
7.3 条件编译命令 143
7.4 预定义宏 146
7.5 位运算表达式 148
自学内容 151
7.6 通用工具库 151
7.7 诊断库 153
程序设计举例 154
调试技术 156
7.8 程序中的错误类型 156
7.9 基本调试手段 157
7.10 注释语句在调试中的作用 158
练习题目 159
第8章 结构体和共用体 162
教学目标 162
学习要求 162
授课内容 162
8.1 结构体类型引入 162
8.2 结构体类型变量的定义 164
8.3 结构体类型变量的使用及初始化 166
8.4 结构体数组 168
8.5 结构体中的数组和结构体 170
8.6 共用体类型 171
8.7 日期类型和时间类型 174
自学内容 174
8.8 Typedef语句 175
8.9 如何确定各种数据类型变量占用的存储量 176
程序设计举例 176
调试技术 179
8.10 使用ClassView标签 179
练习题目 181
第9章 指针 184
教学目标 184
学习要求 184
授课内容 184
9.1 地址与指针 184
9.2 指针运算 186
9.3 指针与数组 190
9.4 动态存储分配 194
自学内容 196
9.5 指针和函数 196
9.6 指针的数组 199
9.7 指针的初始化 202
程序设计举例 202
调试技术 204
9.8 Visual C++的帮助功能 204
练习题目 206
学习要求 210
授课内容 210
10.1 文件概述 210
教学目标 210
第10章 文件 210
10.2 文件的打开与关闭 211
10.3 文件的格式读写 213
10.4 按字符方式读写文件 216
自学内容 219
10.5 文件的成块读写 219
10.6 文件指针管理 222
10.7 非缓冲文件系统简介 223
程序设计举例 225
调试技术 228
10.8 Developer Studio的调试窗口 228
10.9 Developer Studio的输出窗口 231
练习题目 231
授课内容 234
学习要求 234
11.1 线性表 234
教学目标 234
第11章 线性表 234
11.2 顺序表 237
11.3 单链表 242
自学内容 249
11.4 循环链表 249
11.5 双向链表 251
程序设计举例 254
练习题目 266
第12章 堆栈和队列 267
教学目标 267
学习要求 267
授课内容 267
12.1 堆栈 267
12.2 队列 271
自学内容 275
12.3 双栈共享一个存储空间 275
12.4 队列的链式存储结构 276
程序设计举例 278
练习题目 280
第13章 查找 281
教学目标 281
学习要求 281
授课内容 281
13.1 查找 281
13.2 顺序查找与折半查找分析 282
13.3 哈希查找 284
自学内容 291
13.4 二次探测的哈希查找 291
程序设计举例 294
练习题目 301
第14章 排序 302
教学目标 302
学习要求 302
授课内容 302
14.1 排序 302
14.2 简单插入排序 303
14.3 简单选择排序 304
14.4 基数排序 305
14.5 快速排序 307
自学内容 308
14.6 归并排序 308
程序设计举例 311
练习题目 312
学习要求 314
授课内容 314
第15章 数值计算 314
教学目标 314
15.1 多项式的计算 315
15.2 多元一次代数方程组的求根计算 318
15.3 非线性方程的求根计算 323
15.4 求逆矩阵 325
自学内容 329
15.5 积分计算 329
15.6 梯度法求解非线性方程组的根 332
程序设计举例 336
练习题目 343
附录1 ASCⅡ码表 345
附录2 常用库函数 347
参考文献 354