第1部分 基础实训篇 3
第1章 程序设计基础 3
1.1 知识要点 3
1.1.1 C语言的基础知识 3
1.1.2 标识符、常量和变量 4
1.1.3 各类数值型数据之间的混合运算 6
1.1.4 算术运算符和算术表达式 8
1.1.5 赋值运算符和赋值表达式 9
1.1.6 自加、自减运算符和逗号运算符 10
1.1.7 位运算 12
1.2 实训项目1-1:Visual C++ 6.0开发环境 13
1.2.1 实训目的与要求 13
1.2.2 实训操作步骤 13
1.3 练习题 16
1.3.1 基础练习题 16
1.3.2 进阶练习题 19
第2章 程序的控制结构 20
2.1 知识要点 20
2.1.1 算法 20
2.1.2 C语言程序三种基本结构 21
2.2 实训项目2-1:C语言程序的顺序结构 25
2.2.1 实训目的与要求 25
2.2.2 实训操作步骤 25
2.3 实训项目2-2:C语言程序的选择结构 27
2.3.1 实训目的与要求 27
2.3.2 实训操作步骤 27
2.4 实训项目2-3:C语言程序的循环结构 28
2.4.1 实训目的与要求 28
2.4.2 实训操作步骤 28
2.5 练习题 33
第3章 预处理和函数 40
3.1 知识要点 40
3.1.1 库函数 40
3.1.2 编译预处理 41
3.1.3 函数的调用 45
3.1.4 函数的嵌套调用和递归调用 49
3.1.5 局部变量、全局变量和存储分类 50
3.1.6 内部函数和外部函数 53
3.2 实训项目3-1:基本知识的掌握与应用 53
3.2.1 实验目的和要求 53
3.2.2 实验操作步骤 54
3.3 实训项目3-2:实际问题的解决 57
3.3.1 实验目的和要求 57
3.3.2 实验操作步骤 58
3.4 练习题 62
3.4.1 基础练习题 62
3.4.2 进阶练习题 72
第4章 数组和指针 75
4.1 知识要点 75
4.1.1 数组 75
4.1.2 指针的概念及其运算 79
4.2 实训项目4-1:数组的排序 85
4.2.1 实训目的与要求 85
4.2.2 实训操作步骤 85
4.3 实训项目4-2:打印杨辉三角形 87
4.3.1 实训目的与要求 87
4.3.2 实训操作步骤 87
4.4 实训项目4-3:有序数列中插入新数 88
4.4.1 实训目的与要求 88
4.4.2 实训操作步骤 88
4.5 实训项目4-4:字符串的连接 89
4.5.1 实训目的与要求 89
4.5.2 实训操作步骤 89
4.6 练习题 90
4.6.1 基础练习题 90
4.6.2 进阶练习题 94
第5章 结构体、共用体和枚举类型 98
5.1 知识要点 98
5.1.1 结构体 98
5.1.2 共用体 102
5.1.3 枚举类型 103
5.1.4 typedef定义类型 104
5.1.5 链表 104
5.2 实训项目5-1:学籍管理程序 107
5.2.1 实训目的与要求 107
5.2.2 实训操作步骤 107
5.3 实训项目5-2:读取一个整型数据的高低字节 109
5.3.1 实训目的与要求 109
5.3.2 实训操作步骤 109
5.4 实训项目5-3:输出数字1~7对应的星期 109
5.4.1 实训目的与要求 109
5.4.2 实训操作步骤 110
5.5 实训项目5-4:两个有序单链表的合并 110
5.5.1 实训目的与要求 111
5.5.2 实训操作步骤 111
5.6 练习题 113
5.6.1 基础练习题 113
5.6.2 进阶练习题 115
第6章 文件与文件管理器 117
6.1 知识要点 117
6.1.1 本章需要了解的一些概念及知识点 117
6.1.2 主要操作函数及相应的使用 118
6.2 实训项目6-1:文件的成块写入及多方式输出 124
6.2.1 实训目的与要求 124
6.2.2 实训操作步骤 124
6.3 实训项目6-2:多个文件的合并 126
6.3.1 实训目的与要求 127
6.3.2 实训操作步骤 127
6.4 练习题 129
6.4.1 基础练习题 129
6.4.2 进阶练习题 131
第2部分 综合实训篇 135
第7章 研究性学习方法和设计:学生成绩管理系统的建立和应用 135
7.1 WebQuest学习平台简介和使用方法 135
7.1.1 WebQuest的定义 135
7.1.2 WebQuest的构成 135
7.1.3 WebQuest学习平台简介 136
7.2 WebQuest平台下“学生成绩管理系统”设计的实现 140
7.2.1 情景分析:项目规划 140
7.2.2 任务设计:函数及相关算法 141
7.2.3 过程设计:系统实现 143
7.2.4 评价标准 144
7.3 参考程序 145
第3部分 进阶实训篇 157
第8章 C语言绘图 157
8.1 屏幕操作函数 157
8.2 字符属性函数 162
8.3 屏显状态函数 164
8.4 屏幕和视口设置与清除函数 173
8.5 调色板和颜色函数 174
8.6 屏幕位置函数 180
8.7 像素函数 182
8.8 直线和线型函数 183
8.9 多边形函数 186
8.10 圆、弧和曲线函数 188
8.11 填充函数 194
8.12 图像函数 198
8.13 图形文本函数 201
8.14 图形文本设置 203
8.15 练习题 208
第9章 C语言的缺陷 209
9.1 词法缺陷 209
9.1.1 =不是== 209
9.1.2 &和|不是&&和|| 210
9.1.3 多字符记号 210
9.1.4 例外 211
9.1.5 字符串和字符 211
9.2 句法缺陷 212
9.2.1 理解声明 212
9.2.2 运算符并不总是具有所想象的优先级 213
9.2.3 分号带来的问题 215
9.2.4 switch语句 216
9.2.5 函数调用 217
9.2.6 if-else的匹配问题 218
9.3 链接 218
9.4 语义缺陷 220
9.4.1 表达式求值顺序 220
9.4.2 &&、||和!运算符 221
9.4.3 下标从零开始 221
9.4.4 C并不总是转换实参 222
9.4.5 指针不是数组 223
9.4.6 避免提喻法 224
9.4.7 空指针不是空字符串 224
9.4.8 整数溢出 225
9.4.9 移位运算符 225
9.5 库函数 226
9.5.1 getc()返回整数 226
9.5.2 缓冲输出和内存分配 226
9.6 预处理器 227
9.6.1 宏不是函数 228
9.6.2 宏不是类型定义 230
9.7 可移植性缺陷 230
9.7.1 一个名字中都有什么 231
9.7.2 一个整数有多大 231
9.7.3 字符是带符号的还是无符号的 232
9.7.4 右移位是带符号的还是无符号的 232
9.7.5 除法如何舍入 232
9.7.6 一个随机数有多大 233
9.7.7 大小写转换 234
9.7.8 先释放再重新分配 235
9.7.9 可移植性问题的一个实例 235
9.8 练习题 237
附录A C语言运算符及其优先级汇总表 244
附录B C语言常用库函数 245
附录C 相关网络资源 250
参考文献 251