写给学生的话——应该如何学习编程 1
教学建议 1
第0章 “理想厨房”的工作原理 1
0.1 理想厨房系统 1
0.2 理想厨房系统的一个炒菜实例 3
0.3 “理想厨房”工作的重要特点 6
0.4 理想厨房系统与计算机系统术语对照表 7
本章习题 8
第1章 计算机的基本工作原理 9
1.1 二进制简介 9
1.1.1 二进制与二进制数的基本概念 9
1.1.2 与二进制数相关的术语:位、位串、字节 10
1.1.3 数和码的含义与区别 11
1.2 计算机系统 13
1.2.1 计算机系统中的硬件 14
1.2.2 计算机系统中的软件 16
1.2.3 计算机指令所能做的工作 17
1.3 提高部分 18
1.3.1 程序(指令序列)在硬件上的运行过程 18
1.3.2 结构化、规范化的机器语言程序 18
1.3.3 各种数制之间的转换 19
本章习题 21
第2章 C语言程序结构和基本语法要素 24
2.1 高级程序设计语言和编译程序简介 24
2.2 C语言历史概述 24
2.3 C语言源程序的主要构成成分:函数定义 25
2.4 C语言源程序的次要组成成分:编译预处理命令、注释和声明&. 26
2.5 C语言字符集 29
2.6 标识符 30
2.7 关键字 30
2.8 分隔符 31
2.9 常量 31
2.9.1 数值常量 31
2.9.2 符号常量 32
2.9.3 数据的机内形式和机外形式 33
2.10 变量 33
2.10.1 变量的定义 33
2.10.2 变量名和变量的值 34
2.10.3 各种基本类型的变量定义 35
2.10.4 变量的初始化 36
2.11 数据输出——格式化输出函数printf()的用法 36
2.12 数据输入——格式化输入库函数scanf()的用法 39
2.13 运算符 42
2.14 表达式 43
2.15 算术表达式 44
2.16 赋值语句 45
2.17 提高部分 48
2.17.1 对字符量的进一步说明 48
2.17.2 变量地址的运算符&和变量占用的内存字节数的运算符sizeof 49
本章习题 50
第3章 顺序结构程序设计 53
3.1 语句执行的顺序性 53
3.2 用计算机求解问题的步骤 53
3.3 逐步求精的伪代码 54
3.4 验证算法的方法 56
3.5 赋值表达式和多重赋值 59
3.6 变量类型的进一步讨论 59
3.7 各种类型的常量 62
3.8 不同类型数据之间的类型转换 63
3.9 常见编程错误 66
3.10 提高部分 67
3.10.1 机内形式的整数 67
3.10.2 二进制浮点数在计算机中的表示方法 70
本章习题 72
第4章 选择结构程序设计 74
4.1 两种基本的if语句 74
4.2 布尔表达式之一:关系表达式 77
4.3 空语句 79
4.4 复合语句 81
4.5 if语句的嵌套及其用法 83
4.6 布尔表达式之二:逻辑表达式 84
4.7 一种特殊的多重嵌套if语句——多分支选择结构语句 90
4.8 switch语句 92
4.9 选择结构的常见错误 96
4.10 提高部分 97
4.10.1 其他表达式作为布尔表达式使用 97
4.10.2 条件运算符 98
4.10.3 逻辑表达式的短路运算 98
本章习题 98
第5章 循环结构程序设计 100
5.1 while语句 100
5.2 自增、自减运算符和表达式的副作用 109
5.3 do...while循环语句 113
5.4 for语句 117
5.5 复合赋值运算符和逗号表达式 120
5.6 break语句和continue语句 121
5.7 循环语句的嵌套 125
5.8 常见错误 139
5.9 提高部分 139
本章习题 140
第6章 数组 142
6.1 引言 142
6.2 一维数组 143
6.2.1 一维数组的定义 143
6.2.2 下标变量(数组元素) 143
6.2.3 数组元素中的下标和下标表达式 143
6.2.4 动态下标变量 143
6.2.5 下标和下标表达式的允许取值范围 144
6.2.6 数组元素在内存中的相对位置 144
6.2.7 数组元素的初始化 144
6.2.8 下标变量中数值的存取 145
6.3 一维字符数组和字符串 162
6.3.1 一维字符数组的定义 162
6.3.2 单个字符的输入输出库函数 166
6.4 二维数组 172
6.5 编程综合练习 181
本章习题 194
第7章 函数 196
7.1 引言 196
7.2 函数的概念 197
7.3 函数编写的一些重要原则 199
7.4 使用数组(或数组元素)作为函数参数 206
7.5 函数的递归 209
7.6 有关函数定义、返回、声明、调用的进一步说明 218
7.6.1 函数定义 218
7.6.2 return语句与函数类型 219
7.6.3 函数声明与函数原型 220
7.6.4 函数调用 221
7.6.5 函数的形式参数与实际参数 221
7.7 提高部分 222
本章习题 229
第8章 指针 231
8.1 引言 231
8.2 指针变量的定义、初始化和应用 231
8.2.1 指针变量的定义 231
8.2.2 指针变量的初始化 232
8.2.3 指针赋值 233
8.2.4 间接寻址运算符 233
8.2.5 指针变量作为函数的形式参数和实际参数 235
8.2.6 指针作为函数调用的返回值 237
8.3 指向数组的指针以及相关的运算 237
8.3.1 指针变量指向数组元素 238
8.3.2 数组名用作指针(常量) 240
8.4 提高部分 243
本章习题 246
第9章 C语言进阶 248
9.1 结构 248
9.1.1 结构类型的定义 248
9.1.2 定义结构变量 249
9.1.3 结构变量的初始化和访问(输入/输出和存取) 250
9.1.4 结构数组和结构指针的定义、初始化以及访问方式 252
9.1.5 用typedef定义类型的别名 254
9.2 编译预处理 255
9.2.1 #include命令 255
9.2.2 #define命令 256
9.2.3 条件编译指令 257
9.3 文件、流和输入/输出 258
9.3.1 概述 258
9.3.2 文件和流的概念 259
9.3.3 文件的两种形式 260
9.3.4 文件的输入和输出 261
9.4 提高部分 266
9.4.1 链表(单链表) 266
9.4.2 位运算 271
9.4.3 枚举类型 274
9.4.4 文件流的本质 276
本章习题 277
第10章 综合案例 280
本章习题 289
第11章 编程原理进阶 290
11.1 引言 290
11.2 输入/输出设备和输入/输出接口电路 291
11.3 硬盘 291
11.4 中断和操作系统 292
11.4.1 操作系统工作的机制 292
11.4.2 操作系统的特点 295
11.5 计算机为何采用二进制数字信号 300
本章习题 302
附录A Microsoft Visual C++6.0集成开发环境介绍&. 303
附录B 常用字符与ASCII码对照表 310
附录C C语言常用库函数 313
附录D 运算符的优先级与结合性 317
附录E printf()函数和scanf()函数的使用方式 318
参考文献 320