第1章计算机基础知识/1
1.1认识计算机/1
1.1.1计算机硬件系统/1
1.1.2计算机软件系统/2
1.1.3计算机工作过程/3
1.1.4计算机工作的特点/4
1.2计算机语言/5
1.3计算机程序/7
1.4课外阅读/8第2章算法与C程序设计初步/10
2.1算法的含义/10
2.2算法的特性/13
2.3C语言编程要点/14
2.3.1C语言的特点/14
2.3.2C程序的组成/15
2.3.3变量/17
2.3.4赋值语句/21
2.3.5基本输入输出函数/21
2.4C程序示例/27
2.5扩展知识/28
2.5.1数据类型/28
2.5.2变量的初始化/30
2.5.3不同数据类型间的运算/30
2.5.4自增和自减运算符 /32
2.6C编程规范/33
2.6.1排版/33
2.6.2注释/33
2.6.3标识符命名/34
2.6.4变量/34
2.7动态调试程序的方法/34
2.7.1设置断点/35
2.7.2单步运行和观测窗口/36
2.8课后练习/38
2.9实验题目/38
2.9.1认识C程序/38
2.9.2比较两个交换变量取值的算法/40
2.10课外学习/41第3章初步认识结构化算法/42
3.1结构化算法的原则和特点/42
3.1.1结构化算法的主要原则/42
3.1.2结构化算法的主要特点/43
3.23种基本控制结构与流程图/43
3.2.1传统流程图与3种控制结构/43
3.2.2NS图与3种基本控制结构/44
3.3NS图描述算法/46
3.4顺序结构算法举例/47
3.5扩展知识/49
3.5.1认识编译预处理命令include
和define/49
3.5.2编译预处理命令的使用/51
3.6C编程规范/52
3.7课后练习/52
3.8顺序结构算法实验/52
3.9课外阅读/53第4章分支结构算法及其实现/54
4.1关系表达式和逻辑表达式/54
4.1.1关系运算和关系表达式/54
4.1.2逻辑运算和逻辑表达式/55
4.2二选一分支结构/58
4.3算法走读/61
4.3.1对算法的NS图进行编号/61
4.3.2用测试数据检验算法/62
4.4实现二选一结构的ifelse 语句/64
4.4.1ifelse语句的基本形式/64
4.4.2ifelse语句的缩进、对齐/64
4.4.3复合语句/65
4.5含二选一分支结构的算法举例/67
4.6多分支结构及算法举例/70
4.6.1多分支选择结构/70
4.6.2实现多分支结构的C语句/73
4.7扩展知识/74
4.7.1C数据与逻辑“真”与“假”/74
4.7.2条件运算符/74
4.8C编程规范/75
4.8.1排版/75
4.8.2可读性/75
4.8.3质量保证/76
4.9课后练习/76
4.10实验题目/77
4.10.1二选一分支结构算法设计/77
4.10.2修改分支结构的C程序/78
4.10.3多分支结构算法设计/79
4.11课外阅读/80第5章循环结构算法及其实现/81
5.1先判断型循环结构/81
5.1.1定数循环/81
5.1.2C语言中的while语句/83
5.1.3for 循环结构/85
5.1.4不定数循环/86
5.1.5先判断型循环结构的算法举例/89
5.2循环结构算法走读/94
5.2.1算法走读/94
5.2.2算法的健壮性/97
5.3后判断型循环结构/99
5.4 循环的嵌套/102
5.4.1自顶向下、逐步求精的设计方法/102
5.4.2循环的嵌套/104
5.4.3for循环结构与穷举法/105
5.5扩展知识/109
5.5.1复合赋值运算符/109
5.5.2for循环的灵活使用/109
5.5.3break语句/110
5.5.4枚举类型/112
5.6C编程规范/115
5.6.1排版/115
5.6.2可读性/115
5.6.3提高效率/115
5.7课后练习/115
5.8实验题目/117
5.8.1先判断型循环结构算法设计(一)/117
5.8.2先判断型循环结构算法设计(二)/118
5.8.3后判断型循环结构算法设计/119
5.8.4循环嵌套算法的设计/120
5.8.5利用for循环穷举法解题/122
5.9课外实践/123第6章模块化和C语言的函数/124
6.1“模块化”程序设计思想/124
6.2函数/126
6.2.1标准函数/126
6.2.2自定义函数/127
6.3参数/130
6.3.1形参和实参/130
6.3.2参数的值传递和地址传递/130
6.3.3如何设计函数中的参数/132
6.4返回值/137
6.5函数举例/138
6.6调用过程分析/143
6.6.1函数调用的一般形式/143
6.6.2函数调用的方式/143
6.6.3函数调用的过程/144
6.7扩展知识/146
6.7.1全局变量和局部变量/146
6.7.2函数的递归调用/149
6.7.3带参数的宏定义/151
6.7.4利用#include 实现代码的重用/153
6.8C编程规范/154
6.8.1函数设计/154
6.8.2全局变量/155
6.8.3指针/155
6.9课后练习/155
6.10实验题目/157
6.10.1打印月历/157
6.10.2函数的嵌套调用/157
6.10.3掷骰子游戏/158
6.10.4函数的递归/160
6.11课外实践/161第7章数组/162
7.1一维数组及其使用/162
7.1.1数组的引出/162
7.1.2一维数组的定义和引用/163
7.1.3一维数组使用举例/165
7.1.4数组名做函数的参数/172
7.1.5排序和查找算法/178
7.2二维数组及其使用/187
7.2.1二维数组的定义和引用/187
7.2.2二维数组使用的一般形式/188
7.2.3二维数组使用举例/189
7.2.4二维数组名做函数的参数/191
7.3扩展知识/195
7.3.1数组的初始化/195
7.3.2一维数组的指针变量/196
7.3.3一维数组指针做函数的参数/198
7.4C编程规范/199
7.4.1数组定义规范/199
7.4.2数组使用规范/200
7.5课后练习/200
7.6实验题目/201
7.6.1数组元素计数器和做标记/201
7.6.2数组名作为函数参数/202
7.6.3改进冒泡法排序算法/203
7.6.4二维数组的使用/205
7.7课外实践/206第8章字符和字符串处理的算法/208
8.1字符类型数据处理的算法/208
8.1.1字符常量与字符变量/208
8.1.2字符数据在内存中的存储/209
8.1.3字符类型数据处理算法举例/210
8.2一个字符串的存储和处理/214
8.2.1一维字符数组与字符串/214
8.2.2C语言中字符串的输入输出/215
8.2.3字符串处理函数/217
8.2.4字符串处理算法举例/219
8.3多个字符串的存储和处理/225
8.3.1二维字符数组/225
8.3.2多个字符串处理算法举例/226
8.4扩展知识/229
8.4.1字符串的指针变量/229
8.4.2指针数组/231
8.5课后练习/233
8.6实验目的/233
8.6.1字符及字符串处理/233
8.6.2字符串处理/234
8.6.3综合练习多个字符串的
存储和处理/235第9章结构体/237
9.1结构体的引出/237
9.2结构体类型和结构体变量/238
9.2.1结构体类型/238
9.2.2结构体变量/239
9.2.3结构体变量的引用/241
9.3结构体数组/243
9.3.1结构体数组/243
9.3.2结构体数组的引用/244
9.4指向结构体的指针变量/246
9.4.1结构体变量的指针变量/246
9.4.2结构体和结构体指针做参数/246
9.5扩展知识/248
9.6C编程规范/249
9.6.1结构体设计/249
9.6.2可读性/250
9.7课后练习/250
9.8实验题目/251
9.8.1结构体变量的定义和使用/251
9.8.2结构体数组的使用/252
9.8.3结构体做函数的参数——结构体
指针的使用/253
9.9课外实践/254附录AC语言常用格式说明符/256附录B本书各章C语言运算符的优先级和结合性/258附录C常用字符ASCII码表/260C语言语法索引/261算法索引/263
参考文献/264