项目1 分析学生成绩管理系统的结构——C语言概述 1
任务1.1 熟悉编程环境一程序设计语言与C语言 1
1.1.1 程序设计语言 2
1.1.2 C语言的发展与特点 3
1.1.3 C语言的上机调试步骤和方法 4
1.1.4 VC++ 6.0集成开发环境简介 12
1.1.5 任务分析与实施 16
任务1.2 分析并描述算法——算法及其描述 17
1.2.1 算法与结构化程序设计 17
1.2.2 算法的描述 19
1.2.3 任务分析与实施 23
项目实践 25
小结 26
习题 26
项目2 描述学生的特征信息——基本数据类型及运算 28
任务2.1 理解C语言的结构——C语言的结构特征 28
2.1.1 C语言的结构 29
2.1.2 C语言的字符集与词汇 29
2.1.3 任务分析与实施 31
任务2.2 理解数据在计算机中的表示与存储——C语言的数据类型 32
2.2.1 C语言的数据类型 32
2.2.2 整型数据 34
2.2.3 实型数据 37
2.2.4 字符型数据 39
2.2.5 变量赋初值 42
2.2.6 测试数据长度 43
2.2.7 各类数值型数据之间的混合运算 43
2.2.8 任务分析与实施 45
任务2.3 理解C语言的算术运算——运算符与表达式 47
2.3.1 运算符的分类 47
2.3.2 算术运算符与表达式 48
2.3.3 赋值运算符和赋值表达式 50
2.3.4 自增、自减运算符 51
2.3.5 逗号运算符和逗号表达式 53
2.3.6 任务分析与实施 54
项目实践 54
小结 56
习题 57
项目3 系统的菜单程序设计——顺序程序设计 61
任务3.1 考试成绩绩点的计算——数据输入输出 61
3.1.1 字符数据的输入输出 62
3.1.2 格式输入与输出 63
3.1.3 输入输出流 68
3.1.4 顺序程序设计 71
3.1.5 任务分析与实施 72
任务3.2 提高程序的可读性与易修改性——宏与预定义 74
3.2.1 宏定义 74
3.2.2 文件包含 80
3.2.3 条件编译 80
3.2.4 任务分析与实施 82
项目实践 83
小结 84
习题 85
项目4 学生成绩的分类处理——分支程序设计 91
任务4.1 描述条件逻辑——分支和条件逻辑 91
4.1.1 关系运算符和表达式 92
4.1.2 逻辑运算符和表达式 93
4.1.3 条件运算符和表达式 94
4.1.4 任务分析与实施 96
任务4.2 判断考试成绩是否合格——简单分支程序设计 97
4.2.1 单分支结构的程序设计 97
4.2.2 双分支结构的程序设计 99
4.2.3 任务分析与实施 100
任务4.3 求解分段函数——多分支程序设计 101
4.3.1 if语句的多重选择程序设计 101
4.3.2 switch语句的多重选择程序设计 104
4.3.3 任务分析与实施 106
项目实践 108
小结 111
习题 112
项目5 学生成绩的统计分析——循环程序设计 117
任务5.1 统计某门课程的平均成绩——循环语句 117
5.1.1 用while语句处理循环 118
5.1.2 用do-while语句处理循环 120
5.1.3 用for语句处理循环 121
5.1.4 循环嵌套的使用 126
5.1.5 任务分析与实施 128
任务5.2 强制中断循环——控制转移语句 129
5.2.1 break语句 129
5.2.2 continue语句 130
5.2.3 goto语句 131
5.2.4 任务分析与实施 133
任务5.3 穷举与迭代——循环程序设计的应用 134
5.3.1 穷举 135
5.3.2 迭代 136
5.3.3 任务分析与实施 139
项目实践 141
小结 142
习题 143
项目6 模块化与团队协作——模块化程序设计 148
任务6.1 成绩统计的模块化编程——函数 148
6.1.1 函数的概念 149
6.1.2 函数的声明与定义 150
6.1.3 函数的调用 152
6.1.4 函数间的数据传递 154
6.1.5 任务分析与实施 158
任务6.2 多人协作完成一个任务——变量的作用域与生存周期 160
6.2.1 变量的作用域与可见性 161
6.2.2 变量的生存周期 166
6.2.3 内部函数和外部函数 170
6.2.4 任务分析与实施 171
任务6.3 工资发放时币额数量的计算——嵌套与递归 173
6.3.1 嵌套 173
6.3.2 递归 174
6.3.3 任务分析与实施 176
项目实践 178
小结 181
习题 183
项目7 学生成绩管理系统的设计(1)——简单构造类型 186
任务7.1 统计分析考试成绩——一维数组 186
7.1.1 一维数组的定义与初始化 187
7.1.2 一维数组的元素的引用 189
7.1.3 一维数组作为函数参数 192
7.1.4 任务分析与实施 195
任务7.2 创建学生成绩表——一维数组的应用 197
7.2.1 数据元素的复制与选择 197
7.2.2 数据元素的移动 201
7.2.3 数据元素的查找与统计 202
7.2.4 数据元素的修改、删除与插入 207
7.2.5 数据元素的排序 211
7.2.6 任务分析与实施 213
任务7.3 统计分析多门课程成绩——二维数组及其应用 216
7.3.1 二维数组的定义与初始化 217
7.3.2 二维数组的元素的引用 218
7.3.3 二维数组作为函数参数 221
7.3.4 任务分析与实施 222
任务7.4 查找考试成绩——字符数组与字符串 226
7.4.1 字符数组的定义、初始化及引用 226
7.4.2 字符串与字符数组 226
7.4.3 字符串的处理 227
7.4.4 任务分析与实施 231
项目实践 234
小结 237
习题 238
项目8 学生成绩管理系统的设计(2)——复杂构造类型 244
任务8.1 创建成绩表(1)——结构体 244
8.1.1 结构与结构变量的定义 245
8.1.2 结构成员的初始化 247
8.1.3 结构成员的访问 248
8.1.4 结构与函数 249
8.1.5 结构数组 250
8.1.6 任务分析与实施 251
任务8.2 创建成绩表(2)——枚举 255
8.2.1 枚举类型的定义 255
8.2.2 枚举类型变量 256
8.2.3 任务分析与实施 257
任务8.3 创建成绩表(3)——共用体 259
8.3.1 共用体 259
8.3.2 共用体变量的引用 260
8.3.3 任务分析与实施 262
任务8.4 学生基本信息的抽象分层处理——自定义类型与数据的抽象与分层 264
8.4.1 自定义类型 265
8.4.2 自定义类型的应用 266
8.4.3 任务分析与实施 267
项目实践 269
小结 274
习题 275
项目9 学生成绩管理系统的设计(3)——指针 279
任务9.1 利用指针访问数据——指针与指针变量 279
9.1.1 指针的概念 280
9.1.2 指针变量的定义 281
9.1.3 指针运算符 281
9.1.4 指针表达式 283
9.1.5 存储空间的动态分配 286
9.1.6 任务分析与实施 288
任务9.2 创建静态成绩表——指针与函数 289
9.2.1 指针变量作为函数的参数 289
9.2.2 main()函数中的参数 291
9.2.3 函数的返回值是指针 292
9.2.4 指向函数的指针 293
9.2.5 任务分析与实施 296
任务9.3 创建动态成绩表——指针与数组 297
9.3.1 指针与一维数组 298
9.3.2 指针与多维数组 302
9.3.3 数组指针作为函数参数 305
9.3.4 字符串和指针 310
9.3.5 任务分析与实施 312
任务9.4 创建链表——指针与结构 315
9.4.1 指向结构体变量的指针 316
9.4.2 指向结构体数组的指针 318
9.4.3 结构指针变量作函数参数 319
9.4.4 结构体的自引用 320
9.4.5 任务分析与实施 323
任务9.5 再谈排序——指针数组与指向指针的指针 325
9.5.1 指针数组 325
9.5.2 指向指针的指针 326
9.5.3 任务分析与实施 327
项目实践 329
小结 333
习题 334
项目10 学生成绩信息的存储与管理——文件组织与使用 339
任务10.1 顺序存取学生信息——文件的顺序读写 339
10.1.1 文件的相关概念 340
10.1.2 文件的打开与关闭 342
10.1.3 文件的读与写 343
10.1.4 文件检测函数 350
10.1.5 任务分析与实施 352
任务10.2 随机存取学生信息——文件的随机读写 357
10.2.1 文件定位 357
10.2.2 随机读写 358
10.2.3 任务分析与实施 359
项目实践 361
小结 368
习题 369
项目11 基于51单片机竞赛抢答器设计——C语言的高级应用 372
任务11.1 文件的加密与解密——位运算及应用 372
11.1.1 位运算 373
11.1.2 位域(位段) 378
11.1.3 任务分析与实施 380
任务11.2 理解混合编程——高级语言与汇编语言的混合编程 382
11.2.1 Visual C++中嵌入汇编语句的方法 383
11.2.2 采用模块调用的方法 385
11.2.3 任务分析与实施 387
任务11.3 89S51单片机控制LED——C51程序设计基础 390
11.3.1 C51编程基础 390
11.3.2 Keil C51集成开发环境简介 394
11.3.3 任务分析与实施 397
项目实践 399
小结 401
习题 402
附录A C语言中的运算符表 403
附录B ASCII对照表 404
附录C C语言常见库函数 405
参考文献 412