第1章 简单C程序设计 1
1.1 C程序的构成 2
1.1.1 简单的C程序实例 2
1.1.2 阅读C程序 3
1.1.3 C程序结构 6
1.2 简单程序扩展 7
1.2.1 计算器基本功能 7
1.2.2 计算器解决方案 8
1.2.3 计算过程实现及分析 9
1.2.4 深入解读 13
1.3 Visual C++6.0编译环境简介 16
1.3.1 Visual C++6.0的启动 16
1.3.2 源程序录入 16
1.3.3 编译、链接和运行 18
1.3.4 调试 18
1.3.5 退出编译环境 22
1.4 本章小结 22
练习与思考1 23
第2章 简单判定性问题求解 25
2.1 判定性问题及判定条件的描述 26
2.1.1 关系型判定条件 26
2.1.2 逻辑型判定条件 27
2.1.3 按位进行的逻辑运算 28
2.2 if-else判定性结构 30
2.2.1 if判定结构 30
2.2.2 if语句的嵌套问题 39
2.2.3 条件运算符和条件表达式 39
2.3 switch判定结构 40
2.4 应用实例 41
2.4.1 计算器 41
2.4.2 学生成绩管理 44
2.5 本章小结 47
练习与思考2 47
第3章 循环结构及应用 50
3.1 概述 51
3.2 for循环 51
3.2.1 for循环的一般结构 51
3.2.2 for循环的深入探讨 54
3.3 while循环 57
3.4 do while循环 60
3.5 关于循环的一些问题 62
3.5.1 循环的嵌套 62
3.5.2 无限循环 64
3.5.3 循环语句的选择 67
3.6 如何从循环中跳出 68
3.6.1 break语句 68
3.6.2 continue语句 70
3.6.3 goto语句 71
3.7 应用实例 72
3.7.1 计算器 72
3.7.2 学生成绩档案管理系统 77
3.8 本章小结 80
练习与思考3 80
第4章 模块化设计与应用 83
4.1 模块化程序设计方法 84
4.1.1 模块化程序设计思想 84
4.1.2 模块规划实例 84
4.2 函数 86
4.2.1 函数的定义 87
4.2.2 函数的调用 89
4.3 预处理 95
4.3.1 文件包含 95
4.3.2 宏定义 96
4.4 应用实例 104
4.5 本章小结 119
练习与思考4 119
第5章 相同类型数据集合 122
5.1 数组与数组元素的概念 123
5.2 相同类型数据的一维线性存储 125
5.2.1 一维数组的定义 125
5.2.2 一维数组的初始化 127
5.2.3 一维数组的引用 128
5.2.4 一维数组程序举例 129
5.3 相同类型数据的二维及多维存储 131
5.3.1 二维数组的定义 131
5.3.2 二维数组的初始化 132
5.3.3 二维数组的引用 134
5.3.4 多维数组的初始化和引用 136
5.3.5 数组程序举例 137
5.4 字符类型数据集合的存储 138
5.5 字符串处理函数 141
5.6 字符串指针变量与字符数组 147
5.7 应用实例 148
5.8 本章小结 161
练习与思考5 162
第6章 深入模块化设计与应用 165
6.1 算法基本概念 166
6.1.1 概念 166
6.1.2 引例 167
6.2 简单的排序算法 170
6.2.1 冒泡排序算法 171
6.2.2 选择排序算法 174
6.3 嵌套与递归设计及应用 179
6.3.1 函数的嵌套调用 179
6.3.2 函数的递归调用 182
6.4 模块间的批量数据传递 187
6.4.1 指针作为函数参数 187
6.4.2 一维数组作为函数参数 188
6.4.3 二维数组作为函数参数 189
6.5 模块化设计中程序代码的访问 191
6.6 应用实例 192
6.6.1 计算器 192
6.6.2 学生成绩管理 194
6.7 本章小结 206
练习与思考6 206
第7章 构造数据类型 210
7.1 结构体 212
7.1.1 结构体类型的定义 212
7.1.2 结构体变量 212
7.1.3 结构体数组 215
7.1.4 结构体指针 219
7.1.5 结构体与函数 222
7.1.6 位段 223
7.2 共用体 224
7.2.1 共用体类型的定义 224
7.2.2 共用体变量的定义 224
7.2.3 共用体变量的赋值和引用 225
7.3 枚举 227
7.4 自定义类型 228
7.5 应用实例 228
7.6 本章小结 236
练习与思考7 237
第8章 综合设计与应用 240
8.1 变量的作用域与存储类别 241
8.1.1 变量的作用域 241
8.1.2 变量的存储类别 244
8.2 指针与数组 248
8.2.1 一维数组与指针 248
8.2.2 多维数组与指针 251
8.2.3 指针数组 254
8.3 函数main()中的参数 256
8.4 指针型函数 258
8.5 动态存储空间分配 260
8.6 链表 263
8.6.1 链表的概念 263
8.6.2 链表的基本操作 265
8.6.3 带头结点链表简介 276
8.7 本章小结 277
练习与思考8 278
第9章 数据永久性存储 282
9.1 数据的永久性存储 283
9.2 文件组织方式 284
9.3 文件操作 285
9.3.1 标准输入/输出头文件stdio.h 285
9.3.2 文件打开与关闭 287
9.3.3 文件读/写函数 290
9.3.4 文件定位函数 300
9.4 应用实例 302
9.5 本章小结 305
练习与思考9 305
附录 C语言参考 308
附1 C语言发展史及版本历程 309
附1.1 C语言的发展史 309
附1.2 C语言的版本历程 310
附2 C语言关键字 310
附3 ASCII表 311
附4 Visual C++各数据类型所占字节数和取值范围 313
附5 C运算符及优先级 314
附6 格式化输入/输出控制字符列表 315
附6.1 函数printf() 315
附6.2 函数scanf() 316
附7 ANSIC常用标准库函数 317
附7.1 数学函数 317
附7.2 字符处理函数 318
附7.3 字符串处理函数 319
附7.4 缓冲文件系统的输入/输出函数 320
附7.5 动态内存分配函数 322
附7.6 非缓冲文件系统的输入/输出函数 323
参考文献 324