项目1项目菜单设计 1
1.1任务1:用输入/输出函数初步设计项目菜单 1
1.2必备知识与理论 2
1.2.1计算机程序设计语言 2
1.2.2高级程序设计语言的开发过程 3
1.2.3 C语言标准 4
1.2.4 C语言的特点 4
1.2.5使用Microsoft Visual C+++ 6.0开发C语言程序 4
1.3扩展知识与理论 5
1.3.1函数 6
1.3.2函数的组成部分 10
1.3.3语句 11
1.3.4名字与声明 11
1.3.5变量及其赋值 13
1.3.6算术运算 14
习题1 16
项目2学生成绩的输入与计算 18
2.1任务2:学生成绩的输入/输出 18
2.2任务3:总分与平均分的计算 19
2.3必备知识与理论 19
2.3.1定点数与浮点数的表示 20
2.3.2整数的有符号类型与无符号类型 20
2.3.3类型宽度与取值范围 21
2.3.4整型常量 22
2.3.5实型常量 23
2.3.6字符类型及其常量 24
2.3.7符号常量 26
2.3.8变量的定义 26
2.3.9变量的初始化 27
2.3.10数据类型的自动转换 27
2.3.11强制类型转换 28
2.4扩展知识与理论 29
2.4.1 printf()函数 29
2.4.2 scanf()函数 33
2.4.3字符输入/输出函数getchar()与putchar() 37
习题2 38
项目3项目菜单的选择执行 40
3.1任务4:用if语句实现菜单的选择执行 41
3.2必备知识与理论 41
3.2.1算法的概念 41
3.2.2算法的表示方法 43
3.2.3结构化程序设计 47
3.2.4命题与C语言中的逻辑值 47
3.2.5关系运算符与关系表达式 48
3.2.6逻辑运算符与逻辑表达式 49
3.3扩展知识与理论 49
3.3.1 (if表达式)语句 49
3.3.2 if…else结构 51
3.3.3 if…else if结构 53
3.4任务5:用switch语句实现菜单的选择执行 54
3.5必备知识与理论 55
3.6扩展知识与理论 59
3.7任务6:用循环语句实现菜单的选择执行 60
3.8必备知识与理论 62
3.8.1 while语句 62
3.8.2 do…while结构 65
3.8.3 for结构 67
3.9扩展知识与理论 71
3.9.1 break语句 71
3.9.2 continue语句 72
习题3 73
项目4项目的整体框架设计 85
4.1任务7:整体项目菜单函数 85
4.2任务8:子项目菜单函数 86
4.3任务9:系统实现的主函数 89
4.4必备知识与理论 90
4.4.1设计C语言程序就是设计函数 90
4.4.2函数结构 91
4.4.3函数定义与函数声明 92
4.4.4函数调用 95
4.4.5函数的递归调用 96
4.5扩展知识与理论 99
4.5.1变量的作用域和生存期 99
4.5.2 C语言中变量的存储类型 102
4.5.3“文件包含”处理 104
4.5.4宏定义 106
习题4 109
项目5项目中数组的应用 119
5.1任务10:使用数组查找学生最高、最低成绩 119
5.2任务11:使用数组查找成绩不合格的学生 120
5.3任务12:使用数组对学生的成绩进行排序 120
5.4必备知识与理论 121
5.4.1一维数组定义及数组元素引用 121
5.4.2一维数组的初始化 123
5.4.3一维数组元素的查找与排序 124
5.4.4数组与函数 128
5.4.5字符数组与字符串 132
5.4.6字符串的输入与输出 133
5.4.7字符串处理函数 135
5.5扩展知识与理论 138
5.5.1二维数组的定义与引用 138
5.5.2二维数组的初始化 139
5.5.3向函数传递二维数组 141
习题5 144
项目6项目中指针的应用 154
6.1任务13:使用指针查找学生最高、最低成绩 154
6.2任务14:使用指针查找成绩不合格的学生 155
6.3任务15:使用指针对学生的成绩进行排序 155
6.4必备知识与理论 156
6.4.1地址与指针 156
6.4.2指针变量的定义、初始化与赋值 158
6.4.3指针变量的引用 158
6.4.4指针的运算 161
6.4.5指向指针变量的指针与多级指针 163
6.4.6指向void类型的指针 163
6.4.7数组元素的指针引用 164
6.4.8多字符串的存储与处理 167
6.4.9内存的动态分配与动态数组的建立 172
6.5扩展知识与理论 174
6.5.1指针参数与函数的地址传送调用 174
6.5.2带参数的主函数 181
6.5.3返回指针值的函数 183
6.5.4指向函数的指针 185
习题6 189
项目7项目中自定义数据类型 199
7.1任务16:学生记录的增加 199
7.2任务17:学生记录的删除 201
7.3任务18:学生记录的修改 202
7.4任务19:学生记录的显示 204
7.5必备知识与理论 205
7.5.1结构体类型及其定义 205
7.5.2定义结构体类型变量及对变量的初始化 207
7.5.3结构体变量的操作 209
7.5.4嵌套结构体类型 210
7.5.5位段 211
7.5.6结构体数组的定义与初始化 213
7.5.7对结构体数组元素的操作 214
7.5.8指向结构体变量的指针 215
7.5.9指向结构体数组的指针 217
7.6扩展知识与理论 218
7.6.1链表的概念 218
7.6.2链表结点的定义与链接关系的建立 219
7.6.3动态链表的建立 220
7.6.4结构体变量作为函数参数 226
7.6.5用指向结构体变量的指针作函数参数 226
7.6.6返回结构体类型值的函数 226
7.6.7共用体的特点 227
7.6.8共用体变量的应用 229
7.6.9枚举类型数据 230
7.6.10用Typedef定义类型 232
习题7 234
项目8项目中学生数据的存储与重用 240
8.1任务20:学生信息的保存 240
8.2任务21:学生信息文件的打开 241
8.3必备知识与理论 242
8.3.1文件及其分类 242
8.3.2文件名 243
8.3.3文件的位置指针与读写方式 243
8.3.4 FILE类型指针 243
8.3.5流 244
8.3.6文件的打开与关闭——流的创建与撤销 245
8.3.7文件的字符读/写 246
8.3.8文件的字符串读/写 249
8.3.9文件的格式化读/写 251
8.3.10文件的记录读/写 252
8.4扩展知识与理论 254
8.4.1文件位置指针的定位函数 254
8.4.2文件随机读写程序的应用 255
8.4.3 ferror函数 256
8.4.4 fclearerr函数 256
习题8 256
“班级学生成绩管理系统”项目总结 263
附录1 常用字符与ASCII码对照表(附表1) 278
附录2 C语言运算符的优先级与结合性(附表2) 279
附录3 C语言中的关键字 280
参考文献 282