第1章 计算机与程序 1
1.1 计算机的基本结构与工作原理 1
1.1.1 计算机硬件的基本结构 1
1.1.2 计算机的工作原理 3
1.2 计算机程序 5
1.2.1 计算机程序的定义 5
1.2.2 计算机程序的执行过程 6
1.2.3 程序与程序设计语言 7
1.3 程序设计及其目标 8
1.3.1 为什么使用计算机 8
1.3.2 计算机可以做什么 9
1.3.3 问题求解过程 11
思考与练习 13
第2章 算法及其描述 14
2.1 算法 14
2.1.1 什么是算法 14
2.1.2 算法的描述 15
2.1.3 算法设计举例 16
2.2 流程图 17
2.2.1 流程图及其分类 17
2.2.2 用流程图描述算法 18
2.2.3 流程图应用举例 20
2.3 伪代码 20
2.3.1 伪代码及其分类 21
2.3.2 用伪代码描述算法 23
2.3.3 伪代码应用举例 23
2.4 算法举例 24
2.4.1 问题分析 25
2.4.2 算法设计 26
2.4.3 用流程图和伪代码描述算法 26
2.5 实训一:用流程图和伪代码描述算法 27
思考与练习 27
第3章 程序设计语言基础 28
3.1 程序设计语言的用途 28
3.1.1 作为描述算法的工具 28
3.1.2 作为人—机交互的工具 29
3.1.3 作为人—人交流的工具 29
3.2 程序设计语言的演变 29
3.2.1 程序设计语言的历史 30
3.2.2 程序设计方法的演变 33
3.3 C语言基础 37
3.3.1 C语言的特点 37
3.3.2 C语言程序基本结构 38
3.3.3 C语言程序基本语法 39
3.4 C语言编程环境 39
3.4.1 程序设计过程与开发工具 39
3.4.2 TC 2.0开发环境简介 40
3.4.3 在TC 2.0中编写C语言程序 43
3.5 实训二:TC 2.0开发环境的使用 46
思考与练习 50
第4章 数据的输入与输出 51
4.1 数据输出方法 51
4.1.1 输出到屏幕 51
4.1.2 输出到文件 54
4.2 数据输入方法 54
4.2.1 从键盘输入 54
4.2.2 从文件输入 56
4.3 输入/输出设计 57
4.3.1 输入设计举例 57
4.3.2 输出设计举例 58
4.4 实训三:输入/输出设计 61
思考与练习 63
第5章 数据的存储与处理 64
5.1 数据和变量 64
5.1.1 数据的表示 64
5.1.2 数据类型 65
5.1.3 常量和变量 69
5.1.4 变量的声明和使用 71
5.1.5 数据在内存中的存储和使用 71
5.2 运算符与表达式 72
5.2.1 运算符概述 72
5.2.2 算术运算符与算术表达式 72
5.2.3 赋值运算符 74
5.2.4 关系运算符与逻辑运算符 74
5.2.5 表达式与语句 75
5.3 实训四:基本运算与表达式 77
思考与练习 77
第6章 流程和逻辑控制 80
6.1 基本程序结构 80
6.1.1 顺序结构 81
6.1.2 分支结构 82
6.1.3 循环结构 82
6.2 分支结构 83
6.2.1 分支结构的逻辑 84
6.2.2 分支结构的实现 85
6.2.3 分支结构举例 86
6.3 循环结构 87
6.3.1 循环结构的逻辑 87
6.3.2 循环结构的实现 89
6.3.3 循环结构举例 90
6.4 算法的流程设计 91
6.4.1 问题的提出 91
6.4.2 问题分析与算法设计 91
6.4.3 程序流程分析与设计 91
6.5 实训五:算法的流程设计 94
思考与练习 95
第7章 数据组织形式 97
7.1 构造数据类型 97
7.1.1 数组的声明与引用 97
7.1.2 指针的声明与引用 99
7.1.3 结构的声明与引用 101
7.1.4 枚举的声明与引用 103
7.2 常见数据存储结构 104
7.2.1 数组及其应用 104
7.2.2 指针及其应用 108
7.2.3 链表及其应用 109
7.2.4 堆栈及其应用 113
7.3 数据存储与处理的设计 115
7.3.1 问题的提出 115
7.3.2 问题分析与存储结构设计 115
7.3.3 关于效率的进一步讨论 116
7.4 实训六:数据组织形式的设计 118
思考与练习 118
第8章 编写高效的程序 120
8.1 如何评价程序运行的效率 120
8.1.1 影响程序运行效率的因素 120
8.1.2 算法的时间消耗 121
8.1.3 算法的空间消耗 122
8.2 流程如何减少时间和空间的消耗 122
8.2.1 减少时间消耗的方法 122
8.2.2 减少空间消耗的方法 124
8.3 通过改进算法提高效率 125
8.3.1 对问题的再分析 125
8.3.2 算法的改进 125
8.3.3 进一步改进的思路 126
8.4 综合案例的设计 127
8.4.1 案例的背景说明 127
8.4.2 系统设计 128
8.5 实训七:改进算法提高效率 129
思考与练习 129
第9章 问题求解方法 130
9.1 问题求解的一般步骤 130
9.1.1 问题的分类 130
9.1.2 问题求解的步骤 131
9.2 通用算法 131
9.2.1 穷举法与归纳法 131
9.2.2 递推法与递归法 134
9.2.3 其他方法 135
9.3 案例举例与分析 140
9.3.1 常见数值类问题的求解 140
9.3.2 常见非数值类问题的求解 140
9.3.3 综合案例的设计 141
9.4 实训八:设计算法求解数值类问题 145
9.5 实训九:设计算法求解非数值问题 146
思考与练习 146
第10章 C语言进阶 147
10.1 指针 147
10.1.1 间接运算符 147
10.1.2 指针的声明和使用 148
10.2 字符串 149
10.2.1 字符数组 149
10.2.2 指针与字符数组 151
10.3 函数进阶 152
10.3.1 编写函数 152
10.3.2 编写和使用一个简单的函数 153
10.3.3 函数的指针 155
10.4 实训十:字符串操作 161
思考与练习 161
第11章 大型程序开发 162
11.1 程序的风格 162
11.1.1 逻辑风格 162
11.1.2 正文 164
11.1.3 输入/输出 167
11.2 大型程序开发方法 167
11.2.1 标识符的连接属性 167
11.2.2 头文件的定义与使用 171
11.2.3 条件编译 172
11.3 程序项目管理器 173
11.3.1 一个程序项目的开发步骤 173
11.3.2 程序项目管理器的使用技巧 174
11.4 使用集成动态调试工具 174
11.4.1 概述 175
11.4.2 步进执行 176
11.4.3 设置断点 177
11.5 实训十一:构造大型程序 178
思考与练习 178
第12章 常见应用领域 179
12.1 用户界面与图形程序设计 179
12.1.1 文本模式下的用户界面设计 179
12.1.2 图形用户界面设计 182
12.1.3 用户界面设计总结 187
12.2 磁盘与文件管理 187
12.2.1 文件的概念 187
12.2.2 缓冲文件系统 188
12.2.3 文件的打开与关闭 188
12.2.4 文件的读写 190
12.2.5 磁盘与文件总结 191
12.3 实训十二:磁盘与文件操作 191
思考与练习 191
附录一:ASCII字元表 192
附录二:TC 2.0关键字 193
附录三:TC 2.0运算符 195
附录四:TC 2.0库函数 196
附录五:TC 2.0常见错误信息 205