[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第122讲。
第13届蓝桥杯省赛举办了两次,这是2022年4月17日举行的第一次省赛,比赛仍然采取线上形式。试题包括两种题型,分别是选择题和编程创作题,其中选择题5道,都是和Scratch编程知识相关的题目,编程创作题有6道。初级组和中级组共用一套试题,其中中级组比高级组多了一道编程题。
接下来,超平老师就从如下3个方面对2022年4月17日的省赛进行解读和剖析:
-
选择题部分
-
编程题部分
-
总结
一.选择题部分
一共有5道选择题,每题20分,共100分,严禁使用程序验证,选择题不答和答错不扣分。
1. 运行以下程序,角色出现在舞台的什么位置?( )
A.
B.
C.
D.
[超平老师解读]:
本题正确答案是A,考察的知识点包括舞台坐标系和”移到x,y“指令。
在Scratch中,舞台中心的坐标为(0,0),以中心点为起点,水平向右x为正,水平向左x为负,垂直向上y为正,垂直向下y为负。所以,点(100,100)所在的位置是右上角区域。
2. 运行以下程序几秒后,小猫会说“你好!”?( )
A. 1秒
B. 2秒
C. 3秒
D. 4秒
[超平老师解读]:
本题的正确答案是C,考察的知识点是”广播并等待“指令。
在Scratch中,广播有两种方式,一是直接广播,二是广播并等待,二者都可以发送一个广播消息。不同的是前者在发送完广播消息后立刻执行后续指令,而后者则需要等待接收广播的角色在执行完对应的代码后才能继续执行后续指令。
在上面的代码中,使用的是”广播并等待“指令,因此小猫需要等待小狗执行完接收广播的代码块,所以需要等待2秒,再加上自己的等待1秒,一共等待了3秒钟。
3. 运行以下程序,结果为( )
A. 祝大取得成绩
B. 祝大家得好成绩
C. 大家取得绩加油
D. 祝大家得成绩
[超平老师解读]:
本题的正确答案是A,考察的知识点包括字符串遍历和余数运算。
i从0开始,重复执行10次,判断是否能被3整除,需要注意是先判断,后增加1,所以实际上判断的数字依次为0、1、2、3、4、5、6、7、8、9。
在这个10个数字中,能被3整除的有0、3、6、9,所以要去掉这几个序号对应的字符,保留下来的有1、2、4、5、7、8。
对于字符串而言,它的序号是从1开始的,如图:
其中,❎表示能被3整除的序号,需要过滤掉,➖表示根本没有处理这个字符,✔️表示要连接的字符。
所以最终的结果是”祝大取得成绩“。
4. 运行以下程序,舞台上会有多少只小猫?( )
A. 10
B. 11
C. 20
D. 22
[超平老师解读]:
本题的正确答案是C,考察的知识点包括克隆和图章。
这里的本体是隐藏的,一共克隆了10个小猫,从左到右依次排列。每个克隆体又进行了一次图章,然后向上移动了100步,所以下面一排是10个图章出来的小猫,而上面一排则是10个克隆出来的小猫,如图所示:
在Scratch中,通过图章复制出来的角色有点虚化的效果。
5. 为了画出以下左侧图形,以下右侧程序中a、b、c处填写正确的是?( )
A. 6 60 72
B. 5 60 72
C. 6 72 60
D. 5 72 60
[超平老师解读]:
本题的正确答案是D,考察的知识点是正多边形的绘制技巧。关于正多边形的绘制,超平老师总结了一个超级好用的万能公式,即:
其中边数就对应于重复执行的次数,转角就是左转/右转的角度,它的强大在于可以适用于单个的正多边形,也适用于多边形的旋转。
在本题中,要绘制的图案是6个正五边形,所以外层循环的次数是6,转角是360 / 6 = 60度,内层循环的次数是5,转角是360 / 5 = 72。
关于万能公式绘制技巧的详细讲解,可以参考《万能公式-Scratch绘制正多边形的秘密武器》这篇教程。
二.编程题部分
编程题一共有6道,前面5题初级组和中级组共用,第6题是中级组的题目。
1.冰上滑行(难度1,40分)
编程实现:
冰上滑行。
具体要求:
1). 点击绿旗,角色、背景如图所示;
2). 等待1秒,冰墩墩水平运动到舞台右侧边缘(能看到移动过程);
3). 冰墩墩在舞台右侧边缘转身,程序结束(能看到转身过程)。
评分标准:
暂缺
[超平老师解读]:
本题难度系数为1,属于简单题,考察的知识点是运动编程,最简单的方法是直接使用“在1秒内滑行到x,y”指令。
参考代码如下:
关于本题的详细讲解,可以参考《冰上滑行-第13届蓝桥杯Scratch省赛1真题第1题》这篇教程。
2. 流星滑落(难度2,50分)
编程实现:
流星滑落。
具体要求:
1). 运行程序,背景如图所示;
2). 1秒后,天色渐渐变暗1秒;
3). 从舞台左上方出现一颗流星,斜向右侧方向移动到舞台中地平线逐渐消失(能看到流星逐渐变大和移动的过程);
评分标准:
暂缺
[超平老师解读]:
本题难度系数为2,难度一般,考察的知识点是运动编程和外观编程。这里要实现的是左上到右下的直线运动,使用了同时改变x和y坐标的编程技巧。而外观编程则包括显示、隐藏、大小、虚像和亮度等。
关于本题的详细讲解,可以参考《流星滑落-第13届蓝桥杯Scratch省赛1真题第2题》这篇教程。
3. 打棒球(难度2,50分)
背景信息:
在棒球比赛中,本垒打是指击球员将对方来球击出后(通常击出外野护栏),击球员依次跑过一、二、三垒并安全回到本垒的进攻方法,是棒球比赛中非常精彩的高潮瞬间。
编程实现:
呈现一次精彩绝伦的本垒打。
具体要求:
1). 运行程序,角色、背景如图所示;
2). 按下空格键,自舞台左侧抛出棒球,棒球向舞台右侧水平匀速移动;
3). 当棒球飞到下图的位置,击球员做出挥棒动作,刚好打到棒球;
4). 棒球被击飞,向左上角移动,且移动中棒球变大(有移动变大效果);
5). 3秒后,棒球消失,击球员按照一垒-二垒-三垒的顺序跑垒(逆时针方向,参见视频),最终回到本垒,程序结束。
评分标准:
暂缺
[超平老师解读]:
本题难度系数为2,难度一般,考察的知识点包括运动编程和事件广播机制,尤其是滑行指令的巧妙使用。
关于本题的详细讲解,可以参考《打棒球-第13届蓝桥杯Scratch省赛1真题第3题》这篇教程。
4. 组合图形(难度3,50分)
编程实现:
组合图形:由边长为40的方砖,拼成一个正方形。
例如,方砖为:
,拼成正方形为:
具体要求:
1). 运行程序,角色、背景如图所示;
2). 等待1秒后,出现询问框说:“输入正方形一条边上的方砖数量”;
3). 输入一个整数n(3 ≤ n ≤ 8 ),在舞台上瞬间呈现对应的图形;
4). 如果输入数值不在3 ≤ n ≤ 8范围内时,提示说:“输入无效”。
评分标准:
暂缺
[超平老师解读]:
本题难度系数为3,难度中等,考察的知识点包角色的复制技巧和自制积木。其中复制角色有两种方案,分别是图章和克隆,这里的难点是分析并找到组合图形的规律。
关于本作品的详细讲解,可以参考《组合图形-第13届蓝桥杯Scratch省赛1真题第4题》这篇教程。
5. 蜘蛛侠大战灭霸(难度5,80分)
背景信息:
无限手套,是灭霸用于控制作为无限宝石的载体。将灵魂宝石,力量宝石,时间宝石,空间宝石,现实宝石,心灵宝石,这六块宝石聚集在一起持有者就拥有让所有现实灭亡的能力。
编程实现:
灭霸想要毁灭世界,蜘蛛侠只剩下10秒时间来阻止无限手套充能。如果无限手套上的6块宝石都被依次点亮,灭霸获得胜利,如果没有成功点亮全部六块宝石,蜘蛛侠获得胜利。
具体要求:
1). 点击绿旗,角色、背景如图所示(注意:蜘蛛侠-手中的蜘蛛丝是由画笔模块绘制出的白色线段,灭霸持续说:“无限手套充能中...”);
2). 用键盘的上、下键,控制蜘蛛侠上、下移动(蜘蛛丝-根据蜘蛛侠的移动伸长或缩短);
3). 红色充能进度条开始缓慢增加,进度条和数值每秒增加10%;
4). 六块能力宝石随进度条依次点亮(对应进度数值为10%,30%,50%,70%,90%,100%);
5). 按下空格键,从蜘蛛侠的另一只手发射蜘蛛网,蜘蛛网呈抛物线移动(提示:水平速度不变,垂直速度不断变化);
6). 当蜘蛛网落在灭霸的身上时,能量进度条和数值都会暂停增长1秒;
7). 游戏时间为10秒,在舞台左上角显示,并准确呈现出倒计时功能(依次显示10、9、8......2、1、0);
8). 在10秒钟倒计时结束时,如果无限手套没有充能到100%,灭霸消失,进度条停止增加,蜘蛛侠说:“我胜利了!!!”;
9). 在10秒钟内,如果无限手套充能到100%,蜘蛛侠从舞台上消失,倒计时停止,灭霸说:“我胜利了”。
评分标准:
暂缺
[超平老师解读]:
本题难度系数为5,属于难题,是初级组最后一题,考察的知识点包括运动编程、克隆编程和画笔编程。本作品要实现的功能比较多,代码量较大,综合性非常强。
关于本题的详细讲解,请参考《蜘蛛侠-第13届蓝桥杯Scratch省赛1真题第5题》这篇教程。
6. 求200以内的质数(难度6,100分)
背景信息:
质数:大于1的自然数中,除了1和它本身外,不能被其他自然数整除的数。例如:2、3、5、7……
编程实现:
用列表输入200以内所有的质数,再过滤掉所有与3相关的质数,最后小猫说出列表中所有质数之和。
具体要求:
1). 点击绿旗,列表按照从小到大的顺序,输出200以内所有质数;
2). 按下数字键1,去掉列表中所有包含3的质数(例如:3、13、23、31……);
3). 再按下数字键2,小猫说出列表中剩余所有质数之和。
评分标准:
暂缺
[超平老师解读]:
本题难度系数为6,属于难题,是中级组最后一题,考察的重点是枚举算法和列表操作。
其基本思路是从2到199进行逐个判断,是否为质数,如果是质数则将其加入列表,这就是典型的枚举算法。
如何判断一个数字是否为质数呢?
再次枚举即可,假设数字为n,我们可以从2开始直到n-1,逐个判断能否被n整除,一旦有一个能整除,就说明不是质数,如果直到n-1,都不能被整除,就说明是质数。
我们可以分4步来编写程序。
1). 判断数字n是否为质数
为了方便,我们使用自制积木来实现质数的判断,代码如下:
对于给定数字n,先假定是质数,所以将变量prime设置为1,然后逐个判断,一旦能被小于n的某个数字整除,就将prime设置为0,然后停止循环。
如此一来,我们就可以根据prime的值来判断给定数字是否为质数了。
2). 将1~200之内的质数加入列表
有了自制积木,接下来就从2开始,逐个进行判断,如果是质数,就加入列表,对应的代码如下:
运行程序,效果如下:
从结果中可以看到,1~200之间一共有46个质数。
3). 按数字键1过滤含3的数字
当按下数字键1时,将包含3的数字去掉,继续使用枚举法对列表中的每一项进行判断,如果包含数字3,将其删除即可,对应的代码如下:
需要注意的是,一旦删除了列表中的某项数据,后续的数据都会向前移,所以一旦删除包含3的数字,还需要继续判断当前位置的数字。
运行程序,去掉包含3的数字,还剩29个数字,如图:
4). 按数字键2求和
当按下数字键2时,对列表中的所有数字求和,仍然使用枚举法对列表中的每一项进行累加即可,对应的代码如下:
执行程序,效果如下:
本题的代码量不大,只有50个左右,难点是如何判断一个数字是否为质数。这里多次使用了枚举算法,枚举算法是最基本的算法,其核心思想就是使用循环逐个进行判断,通常都是使用循环指令结合条件指令来实现。
三.总结
总体来说,本次省赛题目难度不小,尤其是后面3道编程题,重点考察的知识点可以概括为如下4个方面:
-
运动编程
-
画笔应用
-
克隆编程
-
列表和算法
不知道你发现了没,不管是画笔编程,还是克隆编程,都离不开运动编程,所以说运动编程是基础,只要掌握了运动编程并做到灵活运用,画笔和克隆也就没那么难了。
列表和算法是本次考试的难点,所以说对于列表的操作一定要多加练习,力争熟练掌握并做到灵活运用。
基本上每一次省赛都会有列表,只要有列表,就少不了要获取列表的每一项数据,这就是枚举算法,所以说列表和枚举是天然相关的,这么理解的话,枚举也就没那么神秘了,你觉得呢?
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
需要本次省赛考试素材和源码的,可以移步至“超平的编程课”gzh,或者私信本人。