目录
第1单元编程如此简单——轻松指挥计算机1
第1.1关认识C语言1
知识点1.1.1程序设计语言1
知识点1.1.2认识C程序4
引导任务1.1.1永远的经典 hello,world5
引导任务1.1.2为什么我的眼里常含泪水7
知识点1.1.3C语言编译原理和集成开发环境9
闯关任务1.1.3乡愁12
第1.2关简单计算、程序调试13
知识点1.2.1简单计算和输入输出13
引导任务1.2.1A+B14
闯关任务1.2.2A+B+C16
知识点1.2.2程序调试16
第1.3关小试牛刀、初试锋芒21
闯关任务1.3.1爱心传递21
习题121
第2单元数据——程序操作的对象22
第2.1关数据类型22
知识点2.1.1认识数据类型22
引导任务2.1.1认识数据类型26
闯关任务2.1.2无符号整型27
第2.2关整型数据、常量和变量27
知识点2.2.1常量和变量27
知识点2.2.2整型数据29
引导任务2.2.1两个100年31
引导任务2.2.2整型常量31
闯关任务2.2.3答题时间33
引导任务2.2.4勾股定理33
闯关任务2.2.5鸡兔同笼34
闯关任务2.2.6神奇的平方数34第2.3关实型数据35
知识点2.3.1实型常量35
引导任务2.3.1麦子丰收了35
引导任务2.3.2父亲的工资36
闯关任务2.3.3男性标准体重37
第2.4关字符型数据37
知识点2.4.1ASCII码38
知识点2.4.2字符型数据39
引导任务2.4.1字符型实质上是整型41
闯关任务2.4.2英文字母变换42
第2.5关标准输入输出——顺序结构43
知识点2.5.1标准输出函数printf()43
知识点2.5.2标准输入函数scanf()47
引导任务2.5.1海伦公式47
闯关任务2.5.2多项式的值48
知识点2.5.3专门的字符输入输出函数49
第2.6关scanf()函数进阶51
知识点2.6.1scanf()函数进阶51
引导任务2.6.1四数之和57
闯关任务2.6.2隔三差五58
习题258
第3单元运算符和表达式——数据操作59
第3.1关算术运算59
知识点3.1.1运算符和表达式59
知识点3.1.2基本算术运算62
引导任务3.1.1简单算术62
引导任务3.1.2苹果装盘63
知识点3.1.3自增自减运算符++、- -65
引导任务3.1.7天增岁月人增寿67
引导任务3.1.8奇怪的加法68
第3.2关赋值运算70
知识点3.2.1赋值运算70
引导任务3.2.1生意兴隆通四海71
闯关任务3.2.2动态考核72
第3.3关关系运算72
知识点3.3.1关系运算72
引导任务3.3.1硕人其颀73
闯关任务3.3.2牵黄擎苍亲射虎,老夫聊发少年狂74
闯关任务3.3.3大米装袋74
第3.4关条件运算75
知识点3.4.1条件运算75
引导任务3.4.1人体发热75
引导任务3.4.2两个数中的最大值76
第3.5关逻辑运算和逗号运算77
知识点3.5.1逻辑运算77
引导任务3.5.1闰年78
知识点3.5.2逻辑短路81
知识点3.5.3逗号运算符82
第3.6关常用数学函数82
知识点3.6.1常用数学函数82
引导任务3.6.1人口增长模型84
闯关任务3.6.2输出函数值85
知识点3.6.2随机数85
习题387
第4单元选择结构——鱼还是熊掌88
第4.1关if语句——单分支和双分支88
知识点4.1.1C语句和程序结构88
知识点4.1.2if语句——单分支和双分支90
引导任务4.1.1绝对值90
引导任务4.1.2奇数偶数92
引导任务4.1.3数字判别94
闯关任务4.1.4英文字母判别95
引导任务4.1.5两个数排序96
引导任务4.1.6三个数排序97
闯关任务4.1.74个数排序98
闯关任务4.1.85个数排序98
第4.2关if语句嵌套和多分支98
知识点4.2.1if语句嵌套和多分支98
引导任务4.2.1整数符号100
引导任务4.2.2超市促销102
引导任务4.2.3一元二次方程(2)105
第4.3关switch结构106
知识点4.3.1switch结构106
引导任务4.3.1输出分数成绩107
第4.4关挑战选择结构109
习题4109第5单元循环结构——程序段重复执行110
第5.1关认识循环110
知识点5.1.1三种循环语句110
引导任务5.1.1从1加到N112
知识点5.1.2循环控制语句118
引导任务5.1.2找奇数118
引导任务5.1.3素数判断122
第5.2关挑战单层循环125
第5.3关多层循环125
知识点5.3.1循环嵌套125
引导任务5.3.1九九乘法表126
引导任务5.3.2输出每个数的所有真约数128
引导任务5.3.3区间内素数130
第5.4关处理多组数据133
知识点5.4.1确定组数的多组数据133
引导任务5.4.1奥运奖牌计数133
知识点5.4.2多组数据以特定值结束输入134
引导任务5.4.4输出ASCII码135
引导任务5.4.5水仙花数137
闯关任务5.4.6统计数字和138
闯关任务5.4.7识别整数139
知识点5.4.3多组数据无特定值结束输入139
引导任务5.4.8若干整数的和139
第5.5关循环结构综合训练141
习题5142
第6单元函数——程序模块化143
第6.1关认识函数143
知识点6.1.1库函数143
引导任务6.1.1三角形面积145
闯关任务6.1.2三角函数146
知识点6.1.2自定义函数146
引导任务6.1.3自定义无参函数147
闯关任务6.1.4好好学习,天天向上148
引导任务6.1.5自定义有参函数148
闯关任务6.1.6符号金字塔150
知识点6.1.3函数的调用和声明150
引导任务6.1.7函数返回两个整数的和152
第6.2关设计函数155
引导任务6.2.1两个实数的和155
闯关任务6.2.2实数四则运算156
引导任务6.2.3自然数分类156
引导任务6.2.4短信计费158
第6.3关递归160
知识点6.3.1函数递归160
引导任务6.3.1阶乘161
引导任务6.3.2Fibonacci数列(2)164
引导任务6.3.3最大公约数165
闯关任务6.3.4从1加到n的和167
闯关任务6.3.5连续整数和167
引导任务6.3.6十进制转二进制167
引导任务6.3.9汉诺塔问题169
闯关任务6.3.10汉诺塔移动次数170
第6.4关存储类型和编译预处理171
知识点6.4.1变量的存储类型171
引导任务6.4.1局部变量174
引导任务6.4.2全局变量174
引导任务6.4.3静态局部变量176
知识点6.4.2编译预处理178
引导任务6.4.5合法标识符183
引导任务6.4.6简单密码184
引导任务6.4.7大小写字母互换185
第6.5关函数设计综合训练188
习题6188
第7单元数组——处理批量数据189
第7.1关一维数组189
知识点7.1.1一维数组189
引导任务7.1.1陶陶摘苹果192
引导任务7.1.4Fibonacci数列(3)194
第7.2关数组名作函数参数195
知识点7.2.1数组名作为函数的参数195
引导任务7.2.1最高成绩195
第7.3关数组排序196
知识点7.3.1冒泡排序(Bubble Sort)196
引导任务7.3.1冒泡排序法196
闯关任务7.3.2冒泡排序函数199
知识点7.3.2选择排序(Selection Sort)199
引导任务7.3.3选择排序(Selection Sort)199
闯关任务7.3.4插入排序法201
第7.4关二维数组201
知识点7.4.1二维数组201
引导任务7.4.1数字方阵205
第7.5关字符数组206
知识点7.5.1一维字符数组206
引导任务7.5.1变换大小写208
引导任务7.5.2统计元音209
知识点7.5.2字符串处理函数209
引导任务7.5.6密码测试210
知识点7.5.3二维字符数组214
引导任务7.5.7单词排序215
第7.6关数组编程挑战216
习题7216
第8单元指针——通过地址引用数据217
第8.1关认识指针217
知识点8.1.1认识指针217
引导任务8.1.1两数排序(多组数据)219
知识点8.1.2指针作为函数参数(传地址)221
闯关任务8.1.2三数排序222
知识点8.1.3指向一维数组的指针223
引导任务8.1.3寻找同龄人224
闯关任务8.1.4距离最近226
引导任务8.1.5运用指针实现冒泡法排序226
闯关任务8.1.6运用指针实现选择法排序227
知识点8.1.4指向二维数组的指针和指针数组227
第8.2关指针与字符串230
知识点8.2.1指针与字符串230
引导任务8.2.1字符三角形231
第8.3关动态内存管理与指针进阶233
知识点8.3.1内存分区与动态管理233
引导任务8.3.1无名变量234
引导任务8.3.2无名数组235
知识点8.3.2指针进阶238
引导任务8.3.5查找数据243
引导任务8.3.6动物狂欢244
习题8246
第9单元结构和链表——不同类型数据的组合247
第9.1关结构体247
知识点9.1.1结构体类型247
引导任务9.1.1第一名251
知识点9.1.2结构体指针253
闯关任务9.1.4成绩排名256
第9.2关认识链表257
知识点9.2.1链表257
引导任务9.2.1链表操作——创建、追加和输出258
引导任务9.2.2链表操作——插入、查找和删除261
知识点9.2.2联合体和枚举264
习题9266
第10单元文件——数据持久化267
第10.1关文本文件读写267
知识点10.1.1认识文件267
知识点10.1.2文本文件读写270
引导任务10.1.1文本文件读写271
引导任务10.1.2文件复制273
引导任务10.1.3格式化读写数据273
第10.2关二进制文件读写274
知识点10.2.1数据块读写函数274
引导任务10.2.1向二进制文件写数据276
引导任务10.2.2从二进制文件中随机读数据277
知识点10.2.2状态检测、主函数参数及重定向278
习题10282
附录A本书配套在线资源283
参考文献284
