第1章 编程拉练:移动的金字塔 1
1.1 从画一个“*”号起步 2
说明1:UCDOS+TC2.0运行环境的建立和启动 2
说明2:C程序的上机运行步骤 4
1.2 画点成线 7
1.3 画线成形 8
1.4 学会定位光标 9
1.5 画出金字塔 10
1.6 让金字塔向右匀速运动 11
1.7 让金字塔沿方圈移动 13
1.8 探究程序的执行流程 15
小结1 16
习题1 17
第2章 C语言基础 18
2.1 C语言的元字符和标识符 18
2.2 C语言的关键字和语句 18
2.3 C源程序结构 19
2.4 C语言的数据类型 20
2.5 常量和变量 20
2.6 整型数据 21
2.6.1 整型常量 21
2.6.2 整型变量 22
2.7 实型数据 23
2.7.1 实型常量 23
2.7.2 实型变量 23
2.8 字符型数据 24
2.8.1 字符常量 24
2.8.2 字符变量 26
2.8.3 字符串常量 27
2.9 数据类型转换 27
2.9.1 自动类型转换 27
2.9.2 强制类型转换 28
2.10 数据的输出与输入 28
2.10.1 格式输出函数printf() 28
2.10.2 格式输入函数scanf() 30
2.10.3 字符输出函数putchar() 31
2.10.4 字符输入函数getchar() 31
2.10.5 无回显的字符输入函数getch() 32
小结2 33
习题2 33
第3章 运算符与表达式 35
3.1 算术运算符与算术表达式 35
3.2 赋值运算符与赋值表达式 37
3.3 关系运算符与关系表达式 40
3.3.1 关系运算符 40
3.3.2 关系表达式 40
3.4 逻辑运算符与逻辑表达式 41
3.5 逗号运算符与逗号表达式 46
3.6 运算符的优先级和结合性 47
小结3 47
习题3 48
第4章 顺序结构程序设计 50
4.1 C语句的分类 50
4.2 算法的概念 51
4.3 算法的流程图表示 51
4.4 程序的3种基本结构 52
4.5 顺序结构程序设计示例 53
小结4 55
习题4 55
第5章 选择结构 58
5.1 if语句 58
5.2 if...else语句 60
5.3 if...else if语句 61
5.4 switch语句 63
5.5 选择结构的嵌套 66
5.5.1 if语句的嵌套 66
5.5.2 switch语句的嵌套 66
5.5.3 if嵌套的应用 67
小结5 70
习题5 70
第6章 循环结构 72
6.1 for语句 72
6.1.1 for语句的一般形式 72
6.1.2 for语句的变式 77
6.2 while语句 79
6.3 do...while语句 81
6.4 循环结构的三个专用术语 84
6.5 循环结构应用实例:飞雪迎春 86
6.6 循环的嵌套 87
6.7 break语句和continue语句 89
6.7.1 break语句 89
6.7.2 continue语句 91
小结6 92
习题6 92
第7章 数组 95
7.1 从排序谈数组 95
7.2 一维数组的定义和引用 96
7.2.1 一维数组的定义 96
7.2.2 一维数组元素的引用 97
7.2.3 一维数组的初始化 98
7.2.4 数组元素的赋初值 98
7.3 一维数组应用 98
7.3.1 数据统计 98
7.3.2 数据排序 99
7.4 二维数组 103
7.5 二维数组应用示例 104
7.6 一维字符数组 105
7.6.1 一维字符数组的定义 106
7.6.2 字符串常量和字符串结束标志 106
7.6.3 一维字符数组的初始化 106
7.6.4 字符数组的应用 106
7.7 二维字符数组 109
7.8 “嫦娥探月” 111
小结7 115
习题7 116
第8章 函数 120
8.1 函数的基本概念 120
8.1.1 系统库函数 120
8.1.2 用户自定义函数 120
8.2 函数的定义 121
8.2.1 无参数函数的定义 121
8.2.2 有参数函数的定义 121
8.2.3 空函数 122
8.3 形式参数和函数的值 122
8.4 函数的调用 123
8.4.1 函数调用的一般形式 123
8.4.2 函数调用的方式 123
8.4.3 对被调函数的声明 124
8.5 函数调用的参数传递 125
8.6 局部变量和全局变量 128
8.6.1 局部变量 128
8.6.2 全局变量 129
8.7 函数的嵌套调用和递归调用 131
8.8 “抗震救灾众志成城”主题动画显示 133
小结8 137
习题8 137
第9章 编程实训:俄罗斯方块 141
9.1 俄罗斯方块游戏中各方块的坐标表示 141
9.2 方块坐标的变量存取方式 144
9.3 方块坐标的数组存取方式 145
9.4 把画块操作设计为专用函数 146
9.5 增强画块函数的适应性 148
9.6 在约定位置随机产生新方块 149
9.7 方块的预设移动 151
9.8 方块的键控移动 153
9.9 俄罗斯方块游戏的整体结构设计 156
9.10 俄罗斯方块游戏的整体框架程序 157
9.11 完善框架程序中的可移性检测功能 164
9.12 完善框架程序中的初始化功能 165
9.13 完善框架程序中的方块落底处理功能 168
9.14 完善框架程序中的更新显示功能 170
9.15 场景数组与游戏区域的同屏显示 172
9.16 完整的俄罗斯方块游戏程序 172
第10章 C语言的高级特性 179
10.1 结构体 179
10.1.1 结构体类型定义和结构体变量、结构体数组的定义 179
10.1.2 结构体变量和结构体数组的使用 181
10.2 指针 183
10.2.1 变量的地址和指针概述 183
10.2.2 指针变量的定义和引用 183
10.2.3 指向字符串的指针 185
10.2.4 指向结构体变量的指针 187
10.2.5 指向结构体数组的指针 188
10.2.6 指向函数的指针 190
10.2.7 关于指针运算的一个说明 191
10.3 结构体和指针的应用:渡河问题 193
10.4 共用体类型简介 201
小结10 202
习题10 203
第11章 编程阅读:演玩汉诺塔 204
11.1 汉诺塔问题 204
11.2 演玩汉诺塔 207
11.2.1 游戏界面的布局设计 207
11.2.2 游戏进程的思路设计 208
11.2.3 游戏功能的模块设计 208
11.2.4 源程序 208
11.2.5 各模块功能设计要点简介 216
附录A C语言中的关键字 220
附录B 文本屏幕颜色值的定义 221
附录C 常用字符与ASCII代码对照表 222