第1章 程序设计思想 1
1.1 程序设计 1
1.1.1 程序设计的基本步骤 1
1.1.2 程序设计的学习方法 1
1.2 算法 2
1.2.1 算法概念 2
1.2.2 算法的特性 3
1.2.3 算法的表示 3
1.2.4 算法的复杂度 6
1.2.5 结构化程序设计方法 6
1.2.6 算法举例 8
1.3 编程准备 9
1.3.1 TurboC编程开发环境 9
1.3.2 VC++编程开发环境 13
1.3.3 实例运行过程 13
1.4 上机实践 16
第2章 数值处理 18
2.1 程序的基本结构 18
2.2 数据类型 19
2.3 标识符、常量和变量 20
2.3.1 标识符 20
2.3.2 常量和变量 21
2.3.3 整型数据 22
2.3.4 实型数据 24
2.3.5 字符型数据 26
2.4 变量赋值 28
2.4.1 变量赋初值 28
2.4.2 赋值运算符和赋值表达式 28
2.4.3 运算符的优先级和结合性 29
2.5 算术运算符和算术表达式 30
2.5.1 算术运算符 30
2.5.2 算术表达式 31
2.5.3 算术运算符优先级和结合性 31
2.5.4 算术运算中的类型转换 32
2.6 位运算符、逗号运算符和求字节运算符 33
2.6.1 位运算符 33
2.6.2 逗号运算符 35
2.6.3 求字节运算符 36
2.7 基本输入输出函数 36
2.7.1 格式化输出函数——printf 37
2.7.2 格式化输入函数——scanf 40
2.7.3 字符输出函数——putchar 41
2.7.4 字符输入函数——getchar 41
2.8 编译预处理 42
2.8.1 宏定义 42
2.8.2 文件包含 44
2.8.3 条件编译 46
2.9 程序设计举例 47
2.10 上机实践 48
习题2 49
第3章 逻辑处理 54
3.1 关系运算符和关系表达式 54
3.1.1 关系运算符 54
3.1.2 关系表达式 54
3.2 逻辑运算符和逻辑表达式 55
3.2.1 逻辑运算符 55
3.2.2 逻辑表达式 55
3.3 语句和复合语句 56
3.4 分支结构 56
3.4.1 if语句 56
3.4.2 switch语句 59
3.4.3 条件运算符 61
3.5 循环结构 61
3.5.1 while语句 62
3.5.2 do-while语句 63
3.5.3 for语句 65
3.5.4 循环语句的嵌套 65
3.5.5 break语句和continue语句 66
3.6 程序设计举例 67
3.7 上机实践 69
习题3 74
第4章 数据组织 80
4.1 数组 80
4.1.1 一维数组 80
4.1.2 二维数组 83
4.1.3 字符数组 85
4.2 结构体 89
4.2.1 结构体变量 89
4.2.2 结构体数组 92
4.3 共用体 92
4.4 枚举类型 94
4.5 typedef自定义类型 96
4.6 程序设计举例 97
4.7 上机实践 99
习题4 104
第5章 编程模块化思想 110
5.1 函数 110
5.1.1 函数概述 110
5.1.2 函数的定义 111
5.1.3 函数的调用与参数 112
5.1.4 对被调用函数的声明 114
5.1.5 函数的返回值与函数类型 116
5.1.6 函数的参数传递 117
5.1.7 函数的嵌套调用和递归调用 121
5.2 局部变量和全局变量 124
5.2.1 局部变量 124
5.2.2 全局变量 125
5.3 变量的存储类别 128
5.3.1 局部变量的存储 129
5.3.2 全局变量的存储 131
5.4 内部函数和外部函数 133
5.4.1 内部函数 133
5.4.2 外部函数 133
5.4.3 多文件编译 134
5.5 程序设计举例 135
5.6 上机实践 138
习题5 140
第6章 指针 148
6.1 指针的概念 148
6.2 变量与指针 149
6.2.1 指针变量的引用 150
6.2.2 指针变量作为函数参数 151
6.3 数组与指针 153
6.3.1 指向数组元素的指针 153
6.3.2 通过指针引用数组元素 153
6.3.3 用数组名作函数参数 154
6.3.4 二维数组与指针 156
6.4 字符串与指针 158
6.4.1 字符串的表示形式 158
6.4.2 字符指针作函数参数 160
6.5 函数与指针 161
6.5.1 用函数指针变量调用函数 161
6.5.2 用指向函数的指针作函数参数 162
6.5.3 返回指针值的函数 163
6.6 指针数组与二级指针 164
6.6.1 指针数组的概念 164
6.6.2 二级指针 166
6.6.3 主函数与命令行参数 166
6.7 结构与指针 167
6.7.1 指向结构体变量的指针 167
6.7.2 指向结构体数组的指针 168
6.7.3 用指向结构体的指针作函数参数 169
6.8 链表 170
6.8.1 动态分配和释放空间的函数 170
6.8.2 建立和输出链表 171
6.8.3 链表的基本操作 173
6.9 程序设计举例 176
6.10 上机实践 180
习题6 182
第7章 文件 190
7.1 文件的概念 190
7.2 文件的打开和关闭 192
7.2.1 文件的打开 192
7.2.2 文件的关闭 193
7.3 文件的读写 193
7.3.1 读写一个字符的函数 194
7.3.2 读写字符串函数 196
7.3.3 读写一个数据块函数 197
7.3.4 文件格式化读写函数 199
7.4 文件的定位 200
7.5 程序设计举例 203
7.6 上机实践 205
习题7 206
第8章 综合设计 210
8.1 学生成绩管理系统 210
8.1.1 需求分析 210
8.1.2 总体设计 211
8.1.3 详细设计与实现 212
8.1.4 参考程序 215
8.2 通信录系统 223
8.2.1 需求分析 223
8.2.2 总体设计 224
8.2.3 详细设计 225
8.2.4 参考程序 227
8.3 贪吃蛇游戏 234
8.3.1 需求分析 234
8.3.2 总体设计 234
8.3.3 详细设计与实现 235
8.3.4 参考程序 237
附录A 常用字符与ASCII代码对照表 242
附录B 运算符的优先级和结合性 243
附录C 库函数 244
参考文献 250