[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第1讲。
第12届蓝桥杯青少年组国赛于2021年5月29日举行,本次赛事仍然采取了在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。Scratch博士汪出题,本题是第12届蓝桥杯Scratch国赛真题中级组的第7题,初级组没有此题。先来看看题目的详细说明吧。
题目说明
编程实现:
博士汪出了5道加法选择题,请同学们给出正确选项。
具体要求:
1). 博士汪问:“n + m = ?”,n(0-9随机数),m(0-9随机数);
![图片[1]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-342.png)
2). 下方A、B、C、D四个选项,随机一个选项为正确答案,其他选项为错误答案(所有选项不能重复);
3). 在询问框中输入选项,如果正确,博士汪说:“对了”,如果错误,博士汪说:“错了”;
![图片[2]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-343.png)
![图片[3]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-344.png)
4). 博士汪连续出5道加法选择题;
5). 完成5道选择题后,博士汪说:“共答对几道题”等待1秒,说:“得了多少分”,选项内容清空(每道选择题20分);
![图片[4]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-345.png)
![图片[5]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-346.png)
6). 程序持续运行,且满足以上全部要求。
评判标准:
- 10分:满足要求1;
- 25分:满足要求2;
- 25分:满足要求3;
- 15分:满足要求4;
- 15分:满足要求5;
- 10分:满足要求6。
效果预览
先来看看作品的完整效果吧,如视频所示:
思路分析
根据题目描述,我们可以绘制一个流程图来整理思路,如图所示:
![图片[6]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-347-675x1024.png)
作为中高级组最后一题,本题的难度明显比前面6题都要大,本题的难点在于,如何生成A、B、C、D四个选项,这里有3个关键点:
- 4个选项不能重复;
- 有且只有一个选项是正确答案;
- 正确答案顺序是随机的,可以是A、B、C、D四个中的任意一个;
为了实现这个功能,我们可以借助列表和随机数,先计算得出正确答案,将其插入列表,作为列表的第一项,接下来利用随机数,得到其它3个错误选项,它们都是在正确答案的基础上增加或减少一个随机数,然后插入到列表的随机位置。
程序实现
接下来,我们就分如下4步编写程序来完成作品:
- 随机出题
- 生成A、B、C、D选项
- 询问并判断回答是否正确
- 统计答对题数及分数
1.随机出题
题目要求,要出加法选择题,并且两个加数的范围都是0~9,所以,我们可以创建两个变量“n”和“m”分别表示两个加数,同时为了后面判断输入的答案是否正确,又创建一个变量“答案”来存储正确答案。
然后使用连接运算符将“n”、“+”、”m”和“=?”连接起来,得到一个算式,这部分的代码如图所示:
![图片[7]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-348.png)
2.生成A、B、C、D选项
有了题目,接下来就需要生成A、B、C、D四个选项了,根据前面的分析,需要定义一个列表“选项”,用于保存4个选项,同时需要分别创建“A”、“B”、”C”、“D”四个变量用于表示选项。
我们可以先将正确答案插入到“选项”列表中,然后再随机3个干扰选项,并且插入到列表中,插入的时候可以使用“在选项的第x项插入”指令,从而打乱列表的顺序,这部分的代码如图所示:
![图片[8]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-349-1024x476.png)
3.询问并判断回答是否正确
有了问题和选项,就可以询问并判断回答是否正确了,需要注意的是玩家输入的是A、B、C、D,并不是某个数字。所以,我们需要分情况讨论,如果输入A的话,就需要判断变量“A”是否和变量“答案”相等,如果输入B的话,就需要判断变量“B”是否和变量“答案”相等,以此类推…
如果回答正确,说“对了”,并且将变量“答对题数”增加1,否则就说错了,这部分的代码如图所示:
![图片[9]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-350-576x1024.png)
4.统计答对题数及分数
上述代码只描述了一道题的出题和回答,题目要求出5道题,所以需要使用“重复执行5次指令”,将这部分的代码包裹起来。
当5次循环执行完毕,就需要统计答对题数及分数了,这里每道题是20分,可以使用“答对题数” * 20得到分数,同时别忘了将变量“A”、“B”、“C”和“D”四个选项情况。代码如图所示:
![图片[10]-scratch博士汪出题_第12届蓝桥杯Scratch国赛第7题-超平的编程课](https://www.wangchaoping.com/wp-content/uploads/2025/01/image-351.png)
总结
本题综合性较强,对考生的要求较高,主要考察了如下7个知识点:
- scratch问答模块,包括“询问并等待”和“回答”两个指令;
- 变量的使用;
- 字符串连接运算;
- 列表的灵活运用,包括插入数据、打乱顺序、获取数据等;
- 逻辑与运算;
- 加法运算和随机数运算;
- 循环和双分支条件。
暂无评论内容