描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787301350621
1.直击考试核心:本书专为全国青少年软件编程等级考试(C语言)一级、二级及信息学竞赛打造,全面覆盖考试要点,为读者提供一站式备考方案。
2.趣味式教学:简洁的代码、生动的文字、通俗的比喻,告别乏味的编程学习,全书融入趣味编程案例和和笔者亲自授课的700个教学视频,让编程学习变得生动有趣。
3.学与练完美结合:本书附带练习系统,并搭配了600道精选习题,有效检验学习效果。
《C 趣味编程及算法入门》是一本专门为中小学生编写的C 编程及算法入门教材。《C 趣味编程及算法入门》由浅入深地讲解了C 语言基础知识,以及编程解题常用的方法和基础算法。每章都是由一个小故事来引出编程思维。书中的案例和练习均由作者精心设计,并与生活和学习紧密结合。《C 趣味编程及算法入门》也介绍了各种有趣的计算机知识,并涵盖了全国青少年软件编程等级考试(C语言)一级和二级考试的知识点。《C 趣味编程及算法入门》配备了完善的题库、课件、教学视频等资源,可以作为中小学编程社团的教材,也可以作为少儿编程培训机构的培训教材,还可以作为GESP等级考试和各类编程竞赛的入门教材。
目录
第1章 什么是程序?
1.1 从生活中的场景说起
1.2 编写程序的工具
1.3 程序的编写、编译和运行
1.4 在线评测系统
1.5 案例1:Hello world!
1.6 案例2:时间换算(1)
1.7 案例3:输出杨辉三角(1)
1.8 练习1:用cout语句输出星号菱形
1.9 练习2:小学比幼儿园远多少米
1.10 练习3:输出数字螺旋矩阵(1)
1.11 拓展阅读:C 关键字
1.12 计算机小知识:Hello world程序
1.13 总结
第2章 变量是一个魔法盒
2.1 记录身高和体重
2.2 用字母代表人、物或数据
2.3 常量和变量
2.4 数据类型
2.5 案例1:求矩形的面积和周长(1)
2.6 案例2:超市购物
2.7 案例3:变量是一个魔法盒
2.8 练习1:长身高
2.9 练习2:剩余座位
2.10 练习3:需要多少块砖
2.11 拓展阅读:基本的数据类型
2.12 计算机小知识:“缺斤少两”的U盘
2.13 总结
第3章 数据从何而来——输入
3.1 更强大的程序
3.2 案例1:求女生的人数
3.3 案例2:时间换算(2)
3.4 案例3:交换两个变量的值(1)
3.5 练习1:交换两个变量的值(2)
3.6 练习2:求矩形的面积和周长(2)
3.7 练习3:速度单位换算(1)
3.8 拓展阅读:在线评测系统的工作原理
3.9 计算机小知识:人和计算机是怎么交互的
3.10 总结
第4章 让计算机帮我们做算术题
4.1 从买酸奶说起
4.2 运算、运算符和表达式
4.3 算术运算符和算术表达式
4.4 商和余数
4.5 除以10、对10取余
4.6 案例1:时间换算(3)
4.7 案例2:赋值运算符练习
4.8 案例3:报数游戏
4.9 练习1:小实验——前置 和后置
4.10 练习2:数字魔术——三位数还原
4.11 练习3:三位数的数字之和
4.12 拓展阅读:运算符的优先级和结合性
4.13 计算机小知识:C、C 名称的由来
4.14 总结
第5章 精确到小数的运算
5.1 从“打折”说起
5.2 圆的周长及圆周率
5.3 案例1:速度单位换算(2)
5.4 案例2:折扣
5.5 案例3:求长方体的表面积和体积
5.6 练习1:分数→无限循环小数
5.7 练习2:求正方形和圆的面积(1)
5.8 练习3:计算球的表面积和体积
5.9 拓展阅读:自动类型转换和强制类型转换
5.10 计算机小知识:实数与浮点数
5.11 总结
第6章 拿来主义——数学函数的使用
6.1 从工具箱玩具说起
6.2 平方和平方根、立方和立方根
6.3 案例1:勾股定理(1)
6.4 案例2:2的n次方
6.5 案例3:立方体边长和球体直径
6.6 练习1:求正方形和圆的面积(2)
6.7 练习2:浮点数不能精确表示
6.8 练习3:浮点数的整数商和余数
6.9 计算机小知识:复制粘贴是由谁提出来的?
6.10 总结
第7章 一路前行——顺序结构
7.1 从“把大象放进冰箱”说起
7.2 算法就是求解问题的步骤
7.3 程序控制结构
7.4 案例1:三角形的面积
7.5 案例2:鸡兔同笼问题(1)
7.6 案例3:获奖比例
7.7 练习1:预测孩子的身高
7.8 练习2:华氏温度转摄氏温度
7.9 练习3:比赛成绩
7.10 计算机小知识:三种基本的程序控制结构
7.11 总结
第8章 分支结构——if语句
8.1 抱一和妈妈谈“条件”
8.2 条件判断和分支结构
8.3 C 语言中的分支结构
8.4 案例1:加分
8.5 案例2:求三个数的最大值
8.6 案例3:四边形的判断(方法1)
8.7 练习1:3的倍数(方法1,取余运算符)
8.8 练习2:找座位
8.9 练习3:要不要开空调
8.10 总结
第9章 条件怎么形成——关系表达式和逻辑表达式
9.1 又高又壮的同学
9.2 判断和多个判断
9.3 逻辑“与”和逻辑“或”的例子
9.4 布尔型数据
9.5 案例1:语文和数学都考95分以上
9.6 案例2:三角形的判断
9.7 案例3:闰年的判断
9.8 练习1:复杂的逻辑判断
9.9 练习2:四边形的判断(方法2)
9.10 练习3:身高达标吗
9.11 计算机小知识:Bug和Debug
9.12 总结
第10章 多分支与switch语句
10.1 又见“打折”
10.2 案例1:商场打折
10.3 案例2:CCF CSP-J/S比赛成绩
10.4 switch语句
10.5 案例3:VIP顾客等级
10.6 练习1:百分制成绩转五级制成绩
10.7 练习2:9岁男孩的身高标准
10.8 练习3:巧虎机器人(初级版)
10.9 计算机小知识:C 的版本
10.10 总结
第11章 知道要反复执行多少次——for循环
11.1 循环就是重复
11.2 循环结构
11.3 数列及相关问题
11.4 在程序中实现数学上的递推
11.5 案例1:输出广播体操的口令
11.6 案例2:求1 2 3 … n(1)
11.7 案例3:求阶乘
11.8 练习1:求n个数的和
11.9 练习2:求1~n范围内3的倍数的和
11.10 练习3:求数列前n项和
11.11 计算机小知识:计算机的运算速度有多快
11.12 总结
第12章 依条件而循环——while循环和do-while循环
12.1 给足球打气的两种方式
12.2 while循环和do-while循环
12.3 永真循环、死循环
12.4 案例1:求1 2 3 … n(2)
12.5 案例2:前n项和超过m
12.6 案例3:输出整数的每一位数
12.7 练习1:数列1, 1, 2, 1, 2, 3, 1, 2, 3, 4,…的第n项
12.8 练习2:3的倍数(方法2,求各位和)
12.9 练习3:等比数列第几项超过m
12.10 总结
第13章 一个结构套另一个结构——结构的嵌套
13.1 俄罗斯套娃玩具——嵌套
13.2 程序控制结构的嵌套
13.3 计数器和累加器
13.4 案例1:吃苹果
13.5 案例2:求整数中非零数字的个数
13.6 案例3:兔子问题——斐波那契数列(1)
13.7 练习1:求n个数的最大值
13.8 练习2:闰年的个数
13.9 练习3:求等差数列的和
13.10 总结
第14章 退出循环和跳过当前这一轮循环
14.1 抄写古诗和数字20遍
14.2 退出循环和跳过当前循环
14.3 案例1:质数的判定(break语句)
14.4 案例2:输出1~100中的质数
14.5 案例3:用while(true)循环求数列和
14.6 练习1:数列1, 2, 3, 2, 3, 4
14.7 练习2:斐波那契数列(2)
14.8 练习3:斐波那契数列(3)
14.9 总结
第15章 循环包含循环——循环的嵌套
15.1 九九乘法表的规律
15.2 循环的嵌套
15.3 枚举算法的思想
15.4 案例1:数字之和(1)
15.5 案例2:输出数字图案
15.6 案例3:鸡兔同笼问题(2)
15.7 练习1:统计1~N范围内的质数个数
15.8 练习2:百钱百鸡问题
15.9 练习3:勾股定理(2)
15.10 总结
第16章 存多个数据的容器——(一维)数组
16.1 带格子的收纳盒——数组的引入
16.2 数组和元素
16.3 案例1:某年某月的天数
16.4 通过循环处理一维数组
16.5 案例2:斐波那契数列(4)
16.6 案例3:数列1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6,…的前n项和
16.7 练习1:数列1, 1, 2, 1, 2, 3, 1, 2, 3, 4,…的前n项和(1)
16.8 练习2:将一个正整数逆序
16.9 练习3:求一组数的最值和平均值
16.10 总结
第17章 表格型容器——二维数组
17.1 方格作业本——二维数组的引入
17.2 用数组存储多个有关联的数据
17.3 二维数组就是二维表格
17.4 用循环处理二维数组
17.5 案例1:求二维数组中的最大元素
17.6 案例2:求一个矩阵中的鞍点
17.7 案例3:输出数字螺旋矩阵(2)
17.8 练习1:二维1, 2, 3, 2, 3, 4, 3, 4, 5, 4,…
17.9 练习2:统计矩阵中各类数的个数
17.10 练习3:输出杨辉三角形(2)
17.11 拓展阅读:三维数组
17.12 总结
第18章 非数值型数据——字符和字符串
18.1 从身份证号说起
18.2 字符和字符串
18.3 ASCII编码
18.4 字符、字符串和字符数组
18.5 用字符数组读入一个整数
18.6 案例1:字符转换——模运算符
18.7 案例2:简单的字符串加密
18.8 案例3:统计各类字符的个数
18.9 练习1:数字之和(2)
18.10 练习2:计算单词的得分
18.11 练习3:提取连续的数字字符串
18.12 计算机小知识:汉字编码
18.13 总结
第19章 “逢十进一”的由来——进位计数制
19.1 开关面板——二进制的引入
19.2 数位和计数单位
19.3 进位计数制
19.4 二值的表示
19.5 二进制、十六进制加减运算
19.6 计量数据大小的单位
19.7 用二进制数数
19.8 理解整型(int, long long)的范围
19.9 案例1:猜数字魔术(心灵感应魔术)
19.10 案例2:以八进制、十六进制输出数据
19.11 案例3:以八进制、十六进制输入数据
19.12 二进制、八进制和十六进制的相互转换
19.13 练习1:生日蜡烛
19.14 练习2:二进制数
19.15 计算机小知识:程序员节
19.16 总结
第20章 进制转换问题
20.1 单位换算问题
20.2 一斤十六两
20.3 进制的转换
20.4 案例1:十进制换位运算
20.5 案例2:其他进制转十进制
20.6 案例3:十进制转其他进制
20.7 练习1:数码1的位置
20.8 练习2:字节内容
20.9 练习3:雷劈数
20.10 总结
第21章 字符及字符串处理
21.1 用草串着卖的鸡蛋
21.2 字符串处理函数
21.3 字符串类string
21.4 案例1:计算两个字符串的相关性
21.5 案例2:校验和
21.6 案例3:从整数中提取出4个字符
21.7 练习1:比较大整数的大小关系
21.8 练习2:输出月份(二维字符数组)
21.9 拓展阅读:万能头文件
21.10 总结
第22章 通过函数实现功能分解
22.1 设计师的梦想
22.2 函数就是功能
22.3 函数的分类
22.4 案例1:质数的判定(用函数实现)
22.5 案例2:求两个数的较大者(用函数实现)
22.6 案例3:数组元素逆序(用函数实现)
22.7 练习1:斐波那契数列(5)
22.8 练习2:区间内所有质数(用函数实现)
22.9 练习3:闰年的判定(用函数实现)
22.10 总结:如何设计函数的参数和返回值
22.11 计算机小知识:结构化程序设计
22.12 总结
第23章 递归及递归函数设计
23.1 从前有座山
23.2 案例1:递归求阶乘
23.3 递归函数
23.4 案例2:猴子吃桃问题
23.5 案例3:求最大公约数
23.6 练习1:斐波那契数列(6)
23.7 练习2:角谷猜想(用递归实现)
23.8 练习3:数字之和(3)
23.9 总结
第24章 简单排序算法
24.1 从顺序说起
24.2 排序及排序函数
24.3 字典序
24.4 案例1:插入排序
24.5 案例2:冒泡排序
24.6 案例3:简单选择排序
24.7 练习1:字符串排序
24.8 练习2:坐电梯取钻石游戏
24.9 练习3:字符排序
24.10 总结
第25章 排序问题及处理
25.1 致柔的游戏规则
25.2 sort排序函数
25.3 案例1:谁在中间
25.4 案例2:前20%和后20%
25.5 练习1:合影效果
25.6 练习2:单词重组
25.7 总结
第26章 如何高效地查找?
26.1 折纸和剪线
26.2 查找
26.3 案例1:顺序查找
26.4 案例2:二分查找
26.5 练习1:猜数字游戏
26.6 关于二分查找的相关函数
26.7 练习2:有多少个元素比b小(大)
26.8 总结
第27章 结构体
27.1 设计一种新的笔
27.2 自定义数据类型——结构体
27.3 一级排序和二级排序
27.4 排序时指定排序规则——cmp函数
27.5 案例1:成绩排序
27.6 案例2:按照个位数排序
27.7 练习1:序列排序
27.8 练习2:病人排队
27.9 总结
第28章 枚举算法
28.1 送你一个智慧
28.2 枚举算法的思想及实现要点
28.3 算法及算法的效率
28.4 案例1:求x2 y2 = n的正整数解
28.5 案例2:既是平方数也是立方数
28.6 练习1:验证哥德巴赫猜想
28.7 练习2:和为给定数
28.8 计算机小知识:1秒钟100 000 000次运算
28.9 总结
第29章 模拟算法
29.1 从模拟考试说起
29.2 模拟算法的思想及实现要点
29.3 案例1:出列游戏
29.4 案例2:单身贵族游戏
29.5 练习1:爬动的蠕虫
29.6 练习2:求一个整数的回文数步数
29.7 总结
第30章 数据结构基础知识
30.1 结束不是终止,而是一个新的开始
30.2 数据结构基本概念
30.3 标准模板库
30.4 向量
30.5 队列
30.6 案例1:数列1, 1, 2, 1, 2, 3, 1, 2, 3, 4,…前n项和(2)
30.7 案例2:输出杨辉三角形(用向量实现)
30.8 练习1:出列游戏(用队列实现)
30.9 练习2:机器翻译
30.10 总结
后 记
参考文献
附 录 课程资源使用说明
小朋友们,当你们翻开这本书的时候,你们即将步入一个新的世界——编程的世界,开启一段新的征程——编程之旅。编程就是编写程序。在学习编程之前,小朋友们可能会疑惑:什么是程序?为什么要学习编程?
首先,计算机已经深入我们的日常生活,与小朋友们的学习、生活和爸爸妈妈的工作息息相关。这里所说的“计算机”,是指广义上的能存储数据、进行计算的设备。计算不仅包括你们通常理解的算术运算,还包括更广泛的数据处理。现在,小朋友们教室里的多媒体一体机,小区里的门禁系统,家里的指纹锁、密码锁、扫地机器人、洗衣机、微波炉,还有你们玩的平板电脑、手机等电子设备里是不是都有程序呀?为了让这些“计算机”按照我们设计的模式和功能工作,我们需要为它们设计指令或代码,这些代码就构成了程序。
其次,为什么要学习编程呢?你们身处智能时代,每天都在跟智能设备打交道。为了了解这些智能设备的工作原理,以便今后设计出更好的、更智能的程序,你们需要学习编程,这样你们才能适应这个时代,为你们自己和社会创造更好的未来。编写一个正确的、强大的、智能的程序,是一项非常具有挑战性的工作。学习编程是一项充满乐趣、富有意义、非常有用的活动。学习编程能训练数学思维、逻辑思维、算法思维、编程思维,这些思维能力在学习其他课程时也会用到。
小朋友们,摆在你们面前用来学习编程的电脑,是一台真正意义上的计算机。从世界上第一台计算机研制出来到现在,已经快80年了,编程语言也有近80年的历史。在这个过程中,无数的计算机科学家做出了极大的贡献,你们才有机会使用这台设计精致、功能强大、使用起来非常便利的计算机。
小朋友们,你们将要学习的C 编程语言,是一门高级语言,它非常接近于自然语言(英语),而且其中的一些编程思维在你们的生活和学习中往往能找到触类旁通的例子。因此,为了帮助你们理解本书涉及的编程思维,本书往往以人物对话,或生活和学习中的例子和场景来引出每章内容。本书中出现了以下人物原型。
哥哥王抱一,是树人小学四年级(5)班的一名学生,从小接触各种电子设备,喜欢动漫,也正在用这本书学习C 编程。
妹妹王致柔,是树人幼儿园大班的一名学生,喜欢搭积木。
抱一在学习编程的过程中,致柔经常过来“捣乱”,她也学到了一些浅显的编程知识。
妈妈是一名警察,日常生活中经常需要用到手机,工作中经常需要用到电脑、警用智能设备。
爸爸是一名大学老师,是计算机专业的博士,主要教编程课、算法课,指导大学生参加各类程序设计大赛,平时也教小朋友学习编程,擅长Python语言、C 语言和算法。
本书的一些故事发生在树人小学、听蓝湾小区、王抱一家里、U城天街商业街。树人小学位于听蓝湾小区西南方向500米,树人小学的旁边是树人幼儿园。小区东面,一路之隔,就是一个很大的商业街——U城天街。本书中的很多故事发生在爸爸送抱一和致柔上学的路上、在爸爸妈妈和两个孩子逛U城天街时、在小区散步时……
小朋友们,你们在学习编程的过程中,可能会遇到各种各样的困难,这是再正常不过的事情。在老师、家长的帮助下,你们将逐步克服这些困难,甚至能独立地解决一些问题,并在这个过程中收获极大的乐趣。每做出一道编程题,拿到一次等级考试的证书,参加一次编程竞赛,你们都将收获满满的成就感。
最后,希望小朋友们能喜欢上这本书,通过这本书开启奇妙的编程之旅。
书于重庆市高新区大学城听蓝湾
2024年5月
评论
还没有评论。