第11届蓝桥杯Scratch选拔赛真题集锦

news2024/11/27 16:37:13

目录

一、编程题


第11届蓝桥杯Scratch选拔赛真题集锦
 

一、编程题

第 1 题 问答题
马克思的手稿
题目说明
背景信息:
马克思手稿中有一道趣味数学问题: 有30个人,其中有男人、女人和小孩。在一家饭馆吃饭共花了50先令;每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令;问男人、女人和小孩各有几人?
编程实现:
1当绿旗被点击,舞台右侧添加一个空列表,并且小猫说“点击一次空格键,列表中添加一组男人、女人、小孩人数的答案”,如下图;

2).接下来每点击一次空格,列表中就添加一组符合要求的数据,如下图;
 

3).当所有符合要求的数据都添加到列表之后,小猫说“全部找到了”2秒,程序结束;

4).再次点击绿旗,程序可以重复执行
 

  解析
评判标准:
20分: 完成右上图;
20分:列表中能显示2组及以上符合要求的数据;
40分:列表中能显示所有符合要求的数据;
20分:点击绿旗能重复执行,且完全符合要求
思路分析
本题只有1个角色,就是默认的小猫,如图所示:

这是一道典型的枚举算法题,所谓枚举算法就是将所有问题的可能性一一列举出来,并判断是否符合给定条件。
根据题目描述,我们可以得出如下两个条件:
男人+女人+小孩=30
男人*3+ 女人*2+小孩=50
因此,我们可以将所有可能的组合都列出来,看看是否满足上述两个条件。典型的做法就是使用嵌套循环对每一种组合进行判断,将满
足条件的组合存入到列表中。
对于本题而言,每按一次空格键就获取一种组合,我们可以先将男人的数量设置为1,每按一次空格键就将数量增加1,这就相当于是外层循环。
针对每一个确定的男人数量,我们需要对女人的数量进行循环判断,初始值也是1,有了男人数量和女人数量,就可以利用上面的第个条件,计算出小孩的数量,然后根据第二个条件,将对应的组合存入列表。需要注意的是,男人和女人数量的范围,题目明确说明在30人中有男人、女人和小孩,所以男人和女人的最小值必定为1,最大值呢?般我们都会这么思考,每个男人花了3先令,总共是50先令,假定都是男人,那么男人的数量要小于 50 /3,也就是男人数量的最大值是15,同理我们可以计算出女人数量的最大值是25
实际上,我们还可以缩小男人数量的范围,将上面的两个条件等式相减可得:男人*2+女人=20
从这个等式中,我们很容易得出男人的数量不超过10,女人的数量不超过18,范围缩小了,程序的效率就提高了。
 

第 2 题 问答题
123数字黑洞
题目说明
背景信息
"123数学黑洞”,指的是对于任意一串数字串,按照一定规则经有限次重复后必得到“123”的结果,即任何数的最终结果都无法逃脱123黑洞。其中的规则如下:
1).对任何一串数字串统计出其中的偶数个数、奇数个数、总个数;
2).按照“偶一奇一总”的方式进行排列,得到新的数字串;
再不断循环这个算法,其最终结果一定会变成123。例如: 12345,偶数个数2,奇数个数3,总个数5,我们得到235; 235,偶数个数1,奇数个数2.总个数3,我们得到123;
编程实现:
1).当绿旗被点击,请用户输入任意长度数字串,如图例1;
 

2).输入数字串之后,说出这个数字串第一次计算的结果,第二次计算的结果,第三次.....直到计算结果为123,如图例2。
 

 

 

 

简要说明如下:
1).在代码块的最后,又使用用了自制积木,这就是递归的体现,即在函数中调用自己(在Scratch中,自制积木就是函数);2).在Scratch中,对于数字,可以作为字符串来使用,所以这里获取数字和连接数字,使用的都是字符串指令。
2.使用自制积木
有了自制积木,接下来就容易了,当绿旗被点击时,使用问答指令,然后调用自制积木即可,对应的代码如下:
 

3.完善代码
运行程序,当输入888888时,第一次显示的效果如下
 

这和题目的要求有些不相符,我们可以增加一个变量“次数”,表示当前是第几次,在绿旗下面,将其初始化为0,增加代码如下:
 

对应的,在自制积木中,改动两个小地方,如下:
 

在说话指令中,使用了4个连接运算符,编写代码的时候,一定要细心一点,避免出错。
再次运行程序,这一次和题目要求就完全一致了,你可以输入任何长度的数字串来看看黑洞效果吧。
 解析
评判标准:
20分: 能够正常输入数字串;
30分:小猫的第一次计算结果是正确的;
30分:小猫每次计算结果正确并最后得到123;
20分:小猫每次对次数的表述也完全正确,且完全符合题意思路分析
本题只有1个角色,就是默认的小猫,如图所示:
 

这是一道经典的递归算法题,那什么是递归呢?所谓递归,是指在函数的定义中使用函数自身的方法。通俗理解就是:我调用我自己。这是一种常用的解决问题的方法,它可以把”大事化小,小事化了“,从而轻松的解决问题。
看看下面这张图,你立刻就能理解什么是递归了:

 

构成递归需具备两个条件:
1).子问题须与原始问题为同样的事,且更为简单;
2).不能无限制地调用本身,须有个出口。
对于本题而言,对于任何一个给定的数字串,先分别计算出偶数个数、奇数个数和总个数,然后组合得到一个新的数字,再重复这个操作,这就是一个典型的递归过程,递归的出口就是数字等于123。
在Scratch中,实现递归的方式就是定义一个自制积木,然后在自制积木中调用自己,自制积木必须带有参数,同时要有结束条件。算法的流程图如下:
 

至于统计偶数和奇数就比较简单了,使用循环逐个取出每个数字,再结合”a除以b的余数”指令,就可以很轻松的判断是偶数还是奇数

第 3 题 问答题
般子游戏
题目说明
准备工作:
创建背景room3,并删除小猫角色。
编程实现
1).绘制两个骰子角色,每个骰子角色都有6个造型,分别是1-6点;
 

2).按下空格,两个般子均可以随机产生点数;
3).获胜那一方,会说“我赢了”1秒。平局的话,两个角色同时说“平局”1秒;
 

4).每个散子角色的下面显示累计获胜次数,点击绿旗后可以清零;
5).游戏为三局两胜制,即有一方先得到2分,比赛结束。胜利的一方要说出“太好了,我是最终胜利者!",此时按下空格健毁子不再有反应。

 

 

 

2.般子1角色
和”点数2“设置为1-6之间的随机数,然后就可以发送广播消息了,相应的代码如下:
我们把段子1作为主角色,先将变量"赢局1“和"赢局2"初始化为0,然后检测用户是否按下空格键。一旦按下空格键,就将变量“点数1
 

简要说明三点:

1.对于按下空格镜的处理,这里使用的是“重复执行”+“等待按下空格镜",这可以确保游戏结束后,按空格键不再有任何反应,如果直接使用“当按下空格键”指令,就不符合题目要求;
2).对于骰子1角色来说,它只需要判断两种情况,一是赢了,二是平局,如果是平局,则发送一个“平局”的广播消息;3).每赢一局,都需要判断自己是否胜利,游戏是三局两胜值,所以直接使用“家局1=2”进行判断即可。
3.骰子2角色
对于般子2角色来说,代码就比较简单了,如下所示
 

毅子2和骰子1的判断逐辑基本相似,它只需要判断自己是否赢了,平局的情况在散子1角色中已经判断过,只需要在接收广摇消息后说
平局即可。

解析
评判标准:
10分:实现步骤1;
30分:实现步骤2;
50分:实现步骤3;
80分:实现步骤4;
100分:实现步骤5。
思路分析
本题包含两个角色,一个是白色的骰子,一个是绿色的骰子,如图所示:
 

需要注意的是,这里的两个毅子角色都是需要自己绘制的,很多同学绘制的造型不够整齐美观,超平老师在这里透露两个小技巧:1).借助shift键绘制正方形和正圆,选中矩形工具或图形工具,按下shift键不松开,在画板上拖拽,就可以画出正方形和正圆;2.使用复制功能提高效率,当画好一个小圆点后,可以使用复制技巧快速得到完全一样的小圆点,既能保证效果,又能提升效率,两全其美。复制的时候,可以直接使用画板上提供的“复制“和"粘贴“按钮,也可以直接使用快捷键,复制的快捷键是Cti+C,粘贴的快捷键是Ctrl+V。
以绿色骰子为例,绘制造型如下:
 

掷毅子是典型的随机数算法,可以通过"在1到10之间取随机数“指令来实现,这里有两颗段子,需要使用两个变量保存各自的点数,然
后比较双方点数,判断输赢。游戏是三局两胜制,所以还需要两个变量记录双分的比分。作品的逻辑并不复杂,关键是要控制好程序的执行顺序,比如当按下空格键时,两个毅子均随机产生点数,两个角色都需要进行判断,怎么确保每个角色在判断的时候可以及时获取对方的点数呢?点数相同的时候,双方都要说平局,如何保证程序的同步呢?针对这两个问题,我们可以使用事件广播机制,在Scratch中,发送广播有两种方式,如图:
 

第一种方式,在发送广播消息后,立刻继续执行后续指令,其它角色在接收到消息后也立即执行代码,这样就可以实现两个角色的同步执行,上面提到的双方都要说平局的效果就属于这种情况第二种方式,在发送广播消息后,并不能立刻执行后续指令,而是要等待其它角色接收到广播消息并执行完程序,才开始执行后续代码,它有一个等待的过程,这可以让我们精确地控制两个角色执行代码的顺序,也是解决本题的关键。如何确保每个角色在判断的时候可以及时获取对方的点数呢?答案就是使用"广播消息并等待“指令。具体思路是这样的:当按下空格键时,在毅子1角色中,设置好两个骰子的点数,然后使用"广 播消息并等待“指令发送一个广播消息,骰子2在接收到消息之后,就可以判断自己是否赢了,等骰子2角色的代码执行完成,骰子1角色再执行后续代码,判断自己是否赢了。

第 4 题 问答题
数字游戏ABCD*E-DCBA
题目说明
编程实现:
问题1: 已知A、B、C、D、E分别代表0-9之间的数字。由A、B、C、D组成四位数ABCD和DCBA,还要满足算式: ABCD'E=DCBA(提示:在程序设计语言中“”代表乘号) 。例如1991*1=1991,则在列表1中输出19911。请在列表1中按照从小到大的顺序输出所有可能的数字组合。
样例输出:
00000
00001
00002
00003
..........
问题2:在问题1的基础上,现在要求数字A、B、C、D、E均不相同,在列表2中输出这样的数字组合。
具体要求:
 步骤1:如下图,列表放在博士汪的左右两侧,绿旗被点击,清空所有列表,博士汪面向左,说“我要开始计算了!”(2秒);

步骤2:列表1开始自动运算。自动运算结束后列表1中显示所有情况,博士汪要面向列表1的方向(向左即可)说出列表1中一共有多少种情况(2
秒)

 

步夏3:列表2开始自动运算,运算结束后列表2中显示所有情况,博士汪面向列表2的方向(向右即可)说出列表2中一共有多少种情况(2秒),程序
结束
 

将程序保存在桌面,命名为“5.sb2”
 

 

 

 

 

第5题问答题
听话的苹果
题目说明
编程实现
1).本程序只有一个苹果角色,并且舞台为空白背景。如图:
 

2).先用边长为60的正方形填满整个舞台 (用程序完成,不是使用舞台背景绘制)

3).画完后,苹果回到舞台中心,然后询问:“输入指令 (上下左右)”;
 

4).在输入框输入指令 (指令可以是1个或多个)移,每走完一次要等待1秒,如图所示:
输入完毕后按回车键提交,苹果会按照指令的方向依次移动,每次移动都要移到下
个交点上
5).苹果按指令走完整个路程后,会发出下一次询问,输入并提交后可再次移动;

6).需要注意的是:如果遇到“上下左右”以外的其它内容,苹果不移动,说“无效”(1秒);例如: 输入“下6左A",则苹果向下移动一格等待1秒,然后不移动同时说“无效”(1秒),然后向左移动一格等待1秒,然后说"无效”(1秒)原地静上

7).苹果不能超出屏幕边界,否则会说“超出范围,游戏停止!”,然后程序结束。例如:程序一开始就输入:“上上上上"则苹果会依次向上移动3格,在移动第4次的时候,苹果移到边界外,说“超出范围,游戏停止!”1秒,然后程序结束。
将程序保存在桌面,命名为“4.sb2”
 

 

 

 

 

第 6 题 问答题
猜数字
题目说明
编程实现:
1).小猫随机想了一个[0000,9999]之间的四位数,由玩家猜这个四位数是多少?
 

2).当玩家手动输入猜测的四位数字之后,程序将这四位数字中猜对的位数以真实的数字显示出来,没猜对的位数用 X表示;
 

3.一共可以猜10次,舞台左上角显示剩余次数,在10次内将四位数字全部猜对,小猫会说“恭喜你,答对了!",并停止程序。如果十次都没有猜对
小猫则会说“机会用尽,正确答案是 XXXX”, 然后停止程序。
 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

draw.io如何绘制带箭头的弧线

好长时间没有写draw.io相关的技巧了。今天再补充一个小技巧。 如何绘制像下图中蓝色的带箭头的弧线? 本来以为这个问题应该很简单,但是在仔细研究了很久之后我发现这个问题并没有想像得那么容易。 众所周知,draw.io中带箭头的线叫作“connect…

软件工程 | 期末复习习题

一、软件工程概述 1、选择 软件有无可行性和不可控性 软件工程是一门工程性学科 软件生存周期常见模型:螺旋模型、增量模型、瀑布模型、原型模型、融合模型、快速应用开发模型、敏捷模型 软件生存周期中时间最长的阶段是维护阶段 瀑布模型是一种软件生存周期模…

微搭低代码实现aad的sso

微搭低代码平台是一种可帮助您快速构建和部署应用程序的工具,而无需手动编写大量代码。要在微搭低代码平台上实现Azure Active Directory(AAD)的单点登录(SSO),您需要遵循以下步骤: 注册Azure …

SpringBoot整合Mybatis(3000字)

SpringBoot整合Mybatis 文章目录 SpringBoot整合Mybatis依赖导入配置信息(application.yml)代码分层数据库(建库建表语句)各层代码enity:dao:service:controller: 测试 Mybatis分页查询和模糊查询分页查询:测试: 模糊查询:测试: Mybatis的分布查询多对一:测试:一对多: Mybatis的…

邮箱营销不再难:如何提高邮件的到达率和打开率?

在数字时代,电子邮件是企业与客户以及潜在客户沟通的重要渠道,是企业培养客户的有效方式之一。然而,由于每个人每天也要收到大量的垃圾邮件,所以企业必须确保在正确的时间将邮件传递给正确的人。在这篇文章中,小编将探…

BEVDet 论文学习

1. 解决了什么问题? 自动驾驶系统感知周围的环境再进行决策,极具挑战。基于视觉的自动驾驶系统对准确性和效率的要求很严格,人们会采用不同的范式来解决 3D 检测和分割任务。对于多相机 3D 目标检测,image-view-based 方法如 FCO…

缓存更新策略

缓存更新策略 内存淘汰超时剔除主动更新说明利用Redis的内存淘汰机制,不用自己维护,当内存不足时会自动淘汰部分数据。下次查询时更新缓存。给缓存数据添加TTL(过期时间),到期后自动删除缓存。下次查询时更新缓存。编写业务逻辑,…

CSAPP Lab4- PerfLab

代码优化 typedef struct { unsigned short red; /* R value */ unsigned short green; /* G value */ unsigned short blue; /* B value */ } pixel图像用一维数组表示,第(i,j)个像素表示为I[RIDX(i,j,n)],n为图像的维数 #def…

Datacom-HCIE 02(10月26日更新)--含解析

单选题 1.[试题编号:189785] (单选题)如图所示,VTEP1上在BD20域内开启了ARP广播抑制功能,并且VTEP1通过 BGP EVPN路由学习到了PC2的ARP信息,则PC1发送的针对PC2的ARP请求,VIEP1在转发给VIEP2时…

sqli-labs Less-11,12

less-11(基于错误的POST型单引号字符型注入) sqlmap 1.使用bp抓包 2.保存为1.txt在本地,使用sqlmap查询数据库 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt" --dbs 3.查询当前数据库的所有表 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt"…

正点原子ALPHA开发板核心资源分析

目录 正点原子ALPHA开发板核心资源分析I.MX6ULL实物图对比SOC 主控芯片(MCIMX6Y2CVM08AB)NAND FLASHEMMCDDR3L 正点原子ALPHA开发板核心资源分析 I.MX6ULL实物图对比 I.MX6ULL NAND BTB 接口核心板资源图与 I.MX6ULL EMMC BTB 接口核心板资源图如上图&a…

安装ElasticSearch之前的准备工作jdk的安装

一.windows 下载jdk的软件 (1).进入jdk1.8官网 (2).根据电脑是32位还是64位按需下载 (3).点击下载之后就会跳转到Oracle账号登录界面 没有 Oracle账号的注册一下就可以了 下载好的jdk如下: 双击下一步下一步安装jdk 默认安装就可以了 配置环境变量 (1).电脑左下方设置选项 (2).…

UFT软件的安装与注意事项

安装包下载 UFT软件的安装包网上也有许多,这里我分享下我使用的--->UFT安装包 下载完成解压后进行安装。 要注意关闭杀毒软件,否则安装过程中某些组件可能会安装不上。 部分电脑在安装过程中出现以下提示,可以点击确定 然后我们查看桌面上…

学习open62541 --- [77] 修改String类型变量的注意点

对于String类型的节点,其值的类型是UA_String,在这篇文章中我们解释了UA_String的生成方法。 当我们修改String类型节点的值时,会事先准备一个UA_String变量,这时就会遇到一个选择:是否需要动态分配内存,即…

一种基于数值的横向相互作用

( A, B )---144*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有144个节点,训练集AB各由12张二值化的图片组成,让A中每行有1个1,B中全是0,排列组合A ,统计迭代次数的顺序。 前面实验已经表明对于A中每行只有1个1,…

虚幻or现实?堆区、栈区真实存在吗?是操作系统在骗你罢了...

文章目录 💐专栏导读💐文章导读🐧引例 🐦进程地址空间🐦虚拟地址与物理内存的联系🔔回答引例中的问题🔓写时拷贝 🐦虚拟地址存在的意义🔓malloc的本质 💐专栏…

Lift, Splat, Shoot 论文学习

1. 解决了什么问题? LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后,不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类: 自下而上:利用 transformer 的 query 机制,…

软考 软件设计师上午题设计模式概念类

设计模式分类 创建型设计模式 简单工厂模式 不符合开闭原则,因此没有列入23类模式里 对扩展开放对修改关闭 工厂方法模式 说穿了:系统开放一个接口(拓展开放)、不提供修改的接口(修改关闭),…

基于html+css的图展示83

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

使用贝壳物联控制led灯

1、完成esp8266 01S的固件刷机 1.1 使用刷机软件刷原生固件 esp8266 01S要使用标准固件1M(主要是01S是8M) 1.2 刷机接线方式 ttl直接连esp8266 接线: tts esp8266 3v3 ---》面包板高----》3.3 tx--------------…