第1章 初识C程序 1
1.1 开发环境 1
1.1.1 核心知识点 1
1.1.2 能力目标 1
1.1.3 需要完成的任务 1
1.1.4 任务总结 3
1.2 简单的C程序 3
1.2.1 核心知识点 3
1.2.2 能力目标 3
1.2.3 需要完成的任务 3
1.2.4 任务总结 5
小结 6
习题1 6
第2章 基本数据类型 7
2.1 整型常量与变量 7
2.1.1 核心知识点 7
2.1.2 简单示例 10
2.1.3 能力目标 10
2.1.4 任务——交换杯中的液体 10
2.1.5 任务总结 11
2.2 浮点型常量与变量 14
2.2.1 核心知识点 14
2.2.2 简单示例 15
2.2.3 能力目标 15
2.2.4 任务——大象与蚂蚁重量之和 15
2.2.5 任务总结 17
2.3 字符常量与变量 18
2.3.1 核心知识点 18
2.3.2 简单示例 19
2.3.3 能力目标 20
2.3.4 任务——110、119、120报警 20
2.3.5 任务总结 21
2.4 输入/输出函数 22
2.4.1 核心知识点 22
2.4.2 简单示例 24
2.4.3 能力目标 24
2.4.4 任务——录入、输出成绩单 25
2.4.5 任务总结 26
2.5 符号常量与const常量 27
2.5.1 核心知识点 27
2.5.2 简单示例 28
2.5.3 能力目标 28
2.5.4 任务——计算圆的面积与周长 29
2.5.5 任务总结 29
小结 30
习题2 30
第3章 运算符与表达式 33
3.1 算术运算符与赋值运算符 33
3.1.1 核心知识点 33
3.1.2 简单示例 34
3.1.3 能力目标 35
3.1.4 任务——彩票号码中的数字 35
3.1.5 任务总结 36
3.2 自增、自减运算符 37
3.2.1 核心知识点 37
3.2.2 简单示例 38
3.2.3 能力目标 38
3.2.4 任务——武林高手对决 38
3.2.5 任务总结 39
3.3 关系与逻辑运算符 40
3.3.1 核心知识点 40
3.3.2 简单示例 41
3.3.3 能力目标 42
3.3.4 任务——电路图 42
3.3.5 任务总结 43
3.4 类型转换运算符 44
3.4.1 核心知识点 44
3.4.2 简单示例 44
3.4.3 能力目标 45
3.4.4 任务——托运行李 45
3.4.5 任务总结 46
3.5 位运算符 47
3.5.1 核心知识点 47
3.5.2 简单示例 48
3.5.3 能力目标 49
3.5.4 任务——清零 49
3.5.5 任务总结 49
小结 50
习题3 50
第4章 分支与开关语句 53
4.1 单条件、单分支语句 53
4.1.1 核心知识点 53
4.1.2 简单示例 55
4.1.3 能力目标 55
4.1.4 任务——排序3个数 55
4.1.5 任务总结 56
4.2 单条件、双分支语句 57
4.2.1 核心知识点 57
4.2.2 简单示例 58
4.2.3 能力目标 58
4.2.4 任务——方程求根 58
4.2.5 任务总结 59
4.3 多条件、多分支语句 62
4.3.1 核心知识点 62
4.3.2 简单示例 63
4.3.3 能力目标 64
4.3.4 任务——商场的优惠 64
4.3.5 任务总结 65
4.4 开关语句 67
4.4.1 核心知识点 67
4.4.2 简单示例 67
4.4.3 能力目标 68
4.4.4 任务——四则运算 68
4.4.5 任务总结 69
4.5 复合语句的嵌套 70
4.5.1 核心知识点 70
4.5.2 简单示例 70
4.5.3 能力目标 71
4.5.4 任务——自动售货机 71
4.5.5 任务总结 73
小结 73
习题4 73
第5章 循环语句 77
5.1 while循环语句 77
5.1.1 核心知识点 77
5.1.2 简单示例 77
5.1.3 能力目标 78
5.1.4 任务1——计算a+aa+aaa+ 78
5.1.5 任务1总结 79
5.1.6 任务2——计算圆周率近似值 80
5.1.7 任务2总结 81
5.1.8 任务3——计算阶乘 81
5.1.9 任务3总结 82
5.2 do-while循环语句 83
5.2.1 核心知识点 83
5.2.2 简单示例 83
5.2.3 能力目标 83
5.2.4 任务1——猜数字 84
5.2.5 任务1总结 85
5.2.6 任务2——转动数字 85
5.2.7 任务2总结 87
5.3 for循环语句 87
5.3.1 核心知识点 87
5.3.2 简单示例 87
5.3.3 能力目标 88
5.3.4 任务1——计算正弦值 88
5.3.5 任务1总结 89
5.3.6 任务2——计算平均值 90
5.3.7 任务2总结 91
5.3.8 任务3——遍历水仙数 92
5.3.9 任务3总结 92
5.3.10 任务4——记忆测试 93
5.3.11 任务4总结 95
5.4 continue语句与break语句 96
5.4.1 核心知识点 96
5.4.2 简单示例 96
5.4.3 能力目标 97
5.4.4 任务——求素数 97
5.4.5 任务总结 98
小结 99
习题5 99
第6章 函数的结构与调用 104
6.1 C程序与函数 104
6.1.1 核心知识点 104
6.1.2 简单示例 106
6.1.3 能力目标 108
6.1.4 任务——计算粮仓体积 108
6.1.5 任务总结 109
6.2 函数的类型与return语句 110
6.2.1 核心知识点 110
6.2.2 简单示例 110
6.2.3 能力目标 111
6.2.4 任务——商厦与亲民小店 111
6.2.5 任务总结 113
6.3 参数传值 114
6.3.1 核心知识点 114
6.3.2 简单示例 115
6.3.3 能力目标 117
6.3.4 任务——分数的加法 117
6.3.5 任务总结 119
6.4 非主函数之间的调用 119
6.4.1 核心知识点 119
6.4.2 简单示例 119
6.4.3 能力目标 121
6.4.4 任务——输出日历 121
6.4.5 任务总结 124
6.5 void型函数 124
6.5.1 核心知识点 124
6.5.2 简单示例 124
6.5.3 能力目标 126
6.5.4 任务——钻石图案 126
6.5.5 任务总结 127
6.6 函数的递归调用 128
6.6.1 核心知识点 128
6.6.2 简单示例 128
6.6.3 能力目标 129
6.6.4 任务——Hannoi塔 129
6.6.5 任务总结 130
6.7 局部变量与全局变量 131
6.7.1 核心知识点 131
6.7.2 简单示例 132
6.7.3 能力目标 133
6.7.4 任务——村庄的水 133
6.7.5 任务总结 134
6.8 变量的存储方式 135
6.8.1 核心知识点 135
6.8.2 简单示例 136
6.8.3 能力目标 137
6.8.4 任务——计算连续和 137
6.8.5 任务总结 138
6.9 使用库函数 138
6.9.1 核心知识点 138
6.9.2 简单示例 139
6.9.3 能力目标 139
6.9.4 任务——打开画笔 139
6.9.5 任务总结 140
小结 140
习题6 141
第7章 数组 144
7.1 一维数组 144
7.1.1 核心知识点 144
7.1.2 简单示例 146
7.1.3 能力目标 147
7.1.4 任务——评估考试成绩 147
7.1.5 任务总结 148
7.2 数组名做参数 149
7.2.1 核心知识点 149
7.2.2 简单示例 150
7.2.3 能力目标 151
7.2.4 任务——旋转数组 151
7.2.5 任务总结 152
7.3 数组排序 153
7.3.1 核心知识点 153
7.3.2 简单示例 155
7.3.3 能力目标 157
7.3.4 任务1——体操选手的成绩 157
7.3.5 任务1总结 158
7.3.6 任务2——折半法 159
7.3.7 任务2总结 161
7.4 二维数组 161
7.4.1 核心知识点 161
7.4.2 简单示例 162
7.4.3 能力目标 163
7.4.4 任务1——合理的实验田 163
7.4.5 任务1总结 164
7.4.6 任务2——销售报表 164
7.4.7 任务2总结 166
小结 166
习题7 167
第8章 指针 170
8.1 指针变量 170
8.1.1 核心知识点 170
8.1.2 简单示例 173
8.1.3 能力目标 173
8.1.4 任务——交换容器中的危险品 173
8.1.5 任务总结 174
8.2 指针的自增、自减运算 175
8.2.1 核心知识点 175
8.2.2 简单示例 176
8.2.3 能力目标 177
8.2.4 任务1——查看内存中的数据 177
8.2.5 任务1总结 178
8.2.6 任务2——排序内存中的数据 178
8.2.7 任务2总结 180
8.3 指针类型的参数 180
8.3.1 核心知识点 180
8.3.2 简单示例 181
8.3.3 能力目标 182
8.3.4 任务——张三的货仓 182
8.3.5 任务总结 184
8.4 指针与函数之间的交互 184
8.4.1 核心知识点 184
8.4.2 简单示例 184
8.4.3 能力目标 185
8.4.4 任务——一石双鸟 186
8.4.5 任务总结 187
小结 187
习题8 187
第9章 指针与数组 191
9.1 指向数组元素的指针 191
9.1.1 核心知识点 191
9.1.2 简单示例 192
9.1.3 能力目标 194
9.1.4 任务1——判断回文数 194
9.1.5 任务1总结 196
9.1.6 任务2——枪打稻草人 196
9.1.7 任务2总结 197
9.2 指针与下标运算 198
9.2.1 核心知识点 198
9.2.2 简单示例 198
9.2.3 能力目标 199
9.2.4 任务——侦探分析数据 199
9.2.5 任务总结 200
9.3 calloc内存分配函数 201
9.3.1 核心知识点 201
9.3.2 简单示例 201
9.3.3 能力目标 202
9.3.4 任务——列车上的旅客人数 202
9.3.5 任务总结 203
9.4 指针数组 203
9.4.1 核心知识点 203
9.4.2 简单示例 204
9.4.3 能力目标 205
9.4.4 任务——输出业绩表 205
9.4.5 任务总结 207
9.5 指向行的指针与二维数组 207
9.5.1 核心知识点 207
9.5.2 简单示例 208
9.5.3 能力目标 209
9.5.4 任务——二维数组的元素之和 209
9.5.5 任务总结 209
小结 210
习题9 210
第10章 指针与函数 213
10.1 指向函数的指针变量 213
10.1.1 核心知识点 213
10.1.2 简单示例 214
10.1.3 能力目标 214
10.1.4 任务——运动员的起跑点 215
10.1.5 任务总结 216
10.2 指向函数的指针做参数 216
10.2.1 核心知识点 216
10.2.2 简单示例 217
10.2.3 能力目标 217
10.2.4 任务——司令部的作战任务 218
10.2.5 任务总结 218
10.3 返回地址的函数 219
10.3.1 核心知识点 219
10.3.2 简单示例 219
10.3.3 能力目标 220
10.3.4 任务——招待客人喝茶 220
10.3.5 任务总结 221
小结 221
习题10 221
第11章 处理字符串 223
11.1 char型数组与字符串 223
11.1.1 核心知识点 223
11.1.2 简单示例 225
11.1.3 能力目标 225
11.1.4 任务——复制字符串 226
11.1.5 任务总结 227
11.2 指针与字符串 228
11.2.1 核心知识点 228
11.2.2 简单示例 228
11.2.3 能力目标 229
11.2.4 任务——字母出现的频率 229
11.2.5 任务总结 230
11.3 puts函数与gets函数 230
11.3.1 核心知识点 230
11.3.2 简单示例 231
11.3.3 能力目标 231
11.3.4 任务——单词记忆训练 231
11.3.5 任务总结 233
11.4 检索字符串 233
11.4.1 核心知识点 233
11.4.2 简单示例 234
11.4.3 能力目标 234
11.4.4 任务——检索单词 234
11.4.5 任务总结 235
11.5 字符串转换为数字 235
11.5.1 核心知识点 235
11.5.2 简单示例 236
11.5.3 能力目标 236
11.5.4 任务——购物小票 236
11.5.5 任务总结 237
11.6 排序字符串 237
11.6.1 核心知识点 237
11.6.2 简单示例 238
11.6.3 能力目标 239
11.6.4 任务——查询人名 239
11.6.5 任务总结 240
小结 240
习题11 240
第12章 结构体、共用体与枚举 244
12.1 结构体类型与结构体变量 244
12.1.1 核心知识点 244
12.1.2 简单示例 245
12.1.3 能力目标 246
12.1.4 任务——教学楼的相关数据 246
12.1.5 任务总结 247
12.2 指针与结构体变量 247
12.2.1 核心知识点 247
12.2.2 简单示例 248
12.2.3 能力目标 248
12.2.4 任务——手机充值 248
12.2.5 任务总结 249
12.3 结构体数组 249
12.3.1 核心知识点 249
12.3.2 简单示例 249
12.3.3 能力目标 250
12.3.4 任务——排序图书 250
12.3.5 任务总结 251
12.4 结构体与函数 252
12.4.1 核心知识点 252
12.4.2 简单示例 252
12.4.3 能力目标 253
12.4.4 任务——分数的加法 253
12.4.5 任务总结 254
12.5 共用体 255
12.5.1 核心知识点 255
12.5.2 简单示例 255
12.5.3 能力目标 256
12.5.4 任务——教室 256
12.5.5 任务总结 256
12.6 枚举类型 257
12.6.1 核心知识点 257
12.6.2 简单示例 257
12.6.3 能力目标 258
12.6.4 任务——排列 258
12.6.5 任务总结 259
小结 259
习题12 260
第13章 读/写文件 263
13.1 按文本读取文件 263
13.1.1 核心知识点 263
13.1.2 简单示例 265
13.1.3 能力目标 266
13.1.4 任务——标准化考试 266
13.1.5 任务总结 268
13.2 写文本文件 269
13.2.1 核心知识点 269
13.2.2 简单示例 271
13.2.3 能力目标 271
13.2.4 任务——写名单 272
13.2.5 任务总结 273
13.3 读/写二进制文件 273
13.3.1 核心知识点 273
13.3.2 简单示例 275
13.3.3 能力目标 276
13.3.4 任务——保存成绩单 276
13.3.5 任务总结 278
13.4 随机读/写 278
13.4.1 核心知识点 278
13.4.2 简单示例 279
13.4.3 能力目标 280
13.4.4 任务——备份文件 280
13.4.5 任务总结 280
小结 281
习题13 281
附录A 标准ASCII表 285
附录B 运算符表 286
附录C math与string库函数 287
附录D 习题解答 289
参考文献 316