当前位置:首页>java>【第36期】21天养成编程习惯:Scratch刷题第02天

【第36期】21天养成编程习惯:Scratch刷题第02天

  • 2026-10-11 16:24:53
【第36期】21天养成编程习惯:Scratch刷题第02天

跟老马一起“升级打怪”学编程!

  • 涉及考试:计算机学会编程能力等级认证(GESP)、计算机学会编程培训师资认证(PTA)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目(备考GESP四级的孩子可选择PTA的题目进行练习)
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:本月GESP_Scratch打卡题目

Day02:GESP一级2023.12_天使

1. 准备工作

(1)删除默认小猫角色。

(2)添加角色Wand和Fairy。

(3)删除默认白色背景,添加背景Woods,并为背景添加音乐Xylo1。

2. 功能实现

(1)点击绿旗,背景换成Woods,并循环播放背景音乐Xylo1。

(2)点击绿旗,角色Fairy的初始位置为(X=-140,Y=-50),初始方向为90度,初始大小为90。

(3)当Fairy被鼠标点击后,Fairy会跟随鼠标指针移动。

(4)点击绿旗,角色Wand的初始位置为(X=140,Y=20),初始方向为90度,初始大小为80,Wand总保持在其他角色的前面。

(5)当碰到Fairy,Wand会吸附在Fairy上面。

注意:

  • 功能(1)全部写在背景代码区的【当绿旗被点击】积木下面。
  • 功能(2)全部写在角色Fairy代码区的【当绿旗被点击】积木下面。
  • 功能(3)全部写在角色Fairy代码区的【当角色被点击】积木下面。
  • 功能(4)(5)全部写在角色Wand代码区的【当绿旗被点击】积木下面。

3. 设计思路与实现

(1)角色、舞台背景设置

a. 角色设置

删除默认小猫角色,添加角色Wand和Fairy。

b. 舞台背景设置

删除默认白色背景,添加背景Woods,并为背景添加音乐Xylo1。

(2)脚本编写

编程题的功能实现有多种方案,标准答案所示参考程序仅是其中的一种,最终以是否完成题目要求的功能实现效果作为评分依据。

a. 角色:Wand

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=140,Y=20
  3. 初始方向:90°
  4. 初始大小:80
  5. 移到最前面
  6. 等待碰到Fairy
  7. 重复执行:
    • 移到鼠标指针

b. 角色:Fairy

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=-140,Y=-50
  3. 初始方向:90°
  4. 初始大小:90

当角色被点击时:

  1. 重复执行:
    • 移到鼠标指针

b. 背景:

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始背景:Woods
  3. 重复执行:
    • 播放声音 Xylo1 等待播完

Day02:GESP二级2025.03_图书馆里的老鼠

【题目描述】

图书馆里面有  本书。不幸的是,图书馆里混进了一只老鼠。老鼠每  小时能啃坏一本书,假设老鼠在啃坏一本书之前不会啃另一本。

默认小猫角色和白色背景,编写程序计算经过  小时,图书馆还有多少本完好的书。

【输入描述】

新建变量“”,用于存储书的数量。

新建变量“”,用于存储老鼠啃坏一本书的时间。

新建变量“”,用于存储经过的小时数。

输入数据保证 。

如下图所示:

【输出描述】

新建变量“”用于存储最后的结果。

如下图所示:

【输入样例】

n = 10x = 2y = 3

【输出样例】

result = 8

【输入样例】

n = 5x = 2y = 4

【输出样例】

result = 3

【注意事项】

  • 变量名的拼写(包括大小写)要和题目完全一致。
  • 输入变量直接赋值即可,无需使用“询问并等待”积木块。
  • 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。

【参考答案】

其他测试用例

【测试用例1】

输入:n = 29,x = 2, y=3输出:result = 27

【测试用例2】

输入:n = 88,x = 1, y=10输出:result = 78

【测试用例3】

输入:n = 75,x = 1, y=12输出:result = 63

【测试用例4】

输入:n = 57,x = 2, y=10输出:result = 52

【测试用例5】

输入:n = 14,x = 4, y=3输出:result = 13

Day02:GESP三级2023.09_计算平均得分

【题目描述】

在跳水比赛中,当一个选手动作完成后,先由受聘评委逐个亮分,然后“去掉一个最高分,去掉一个最低分”,再计算该选手的平均得分。

默认小猫角色和白色背景。评委打分的数据存在列表“lst”中,请按照上面的规则计算该选手的平均得分,四舍五入保留两位小数后,存入到变量“result”中。

例如:

评分打分:lst = [89, 78, 79, 77, 76, 75, 81, 79, 74]

去掉最高分89,去掉最低分74,得到平均分为77.857,四舍五入保留两位小数后为77.86。

【输入描述】

新建列表“lst”存储评委的打分,打分大于等于70,小于等于100,并且评委的人数大于等于9人,小于等于15人。

如下图所示:

【输出描述】

新建变量result存储按照规则计算后,四舍五入保留两位小数的平均分。

如下图所示:

【输入样例】

lst = [89, 78, 79, 77, 76, 75, 81, 79, 74]

【输出样例】

result = 77.86

【输入样例】

lst = [92, 83, 75, 97, 82, 72, 88, 74, 74, 85, 74]

【输出样例】

result = 80.78

注意:

1、变量名的拼写(包括大小写)要和题目完全一致。

2、输入变量直接赋值即可,无需使用“询问并等待”积木块。

【参考答案】

其他测试用例

【测试用例1】

输入:lst = [100, 71, 90, 98, 88, 93, 88, 87, 73]输出:result = 88.14

【测试用例2】

输入:lst = [86, 75, 80, 81, 100, 76, 78, 89, 74, 97]输出:result = 82.75

【测试用例3】

输入:lst = [100, 99, 86, 85, 87, 84, 95, 73, 97]输出:result = 90.43

【测试用例4】

输入:lst = [92, 72, 91, 88, 90, 77, 74, 79, 93, 74, 99, 95, 76]输出:result = 84.45

【测试用例5】

输入:lst = [82, 90, 92, 84, 100, 82, 81, 80, 86, 89, 82, 97, 87]输出:result = 86.55

Day02:GESP四级2024.12_数字替换

【题目描述】

小杨有一个包含了  个数字的序列存储在列表“数据”中,他想将其中大于的数字替换为序列的最大值,将其中小于的数字替换为序列的最小值,他想知道替换后的序列是什么。

例如:数据 = ,,这个序列的最大值为,最小值为,替换后的序列为。

默认小猫角色和白色背景,请你帮他把得到序列中的元素用#连接起来。

【输入描述】

新建列表“数据”,用于存储初始的序列,序列中的元素在到之间。

新建变量“”,用于存储比较的元素,。

如下图所示:

【输出描述】

新建变量“”,用于记录替换后的序列,并用井号#将结果连接起来。

如下图所示:

【输入样例】

数据 = [-2, -1, 0, 1, 2],k = 0

【输出样例】

result = -2#-2#0#2#2

【输入样例】

数据 = [-8, 16, 18, 0],k = 14

【输出样例】

result = -8#18#18#-8

【注意事项】

1、 变量名的拼写(包括大小写)要和题目完全一致。

2、 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块

3、 列表直接用“+”功能赋值进行测试即可,无需写代码赋值。

【参考答案】

其他测试用例

【测试用例1】

输入:数据 = [2],k = -1输出:result = 2

【测试用例2】

输入:数据 = [0, 17],k = 5输出:result = 0#17

【测试用例3】

输入:数据 = [-11, -4, 13],k = -4输出:result = -11#-4#13

【测试用例4】

输入:数据 = [10, 15, 17, 18, 23, 25],k = 19输出:result = 10#10#10#10#25#25

【测试用例5】

输入:数据 = [1, 3, 9, 11, -15, -14, -8],k = 14输出:result = -15#-15#-15#-15#-15#-15#-15

Day02:PTA第01届_货车限重

【题目描述】

经过调查发现,货车事故80%因超重超载。为了减少交通事故的发生,交通部出台了货运车辆限重政策,规定了不同型号的车限重是多少吨。小张是一名运货车司机,他需要靠拉货来维持生计,每拉一趟的酬金为所拉货物总价值的10%,现在我们需要忽略其他因素,帮助他在合法前提下,每一趟拿到最高报酬。

假设货车上每种货物只有一个,现在我们需要编写一段程序,帮他算出在不超过限重的前提下,可以装的货物的最高价值。

【输入描述】

输入一个正整数  存储到变量【货物种类】中,表示货物的种类数,取值范围是 ,如下图:

输入一个正整数存储到变量【货车限重】中,表示货车的可以拉货的总重量(单位:吨),取值范围是 ,如下图:

输入  个数字,存储到列表【重量】中,表示每种货物的重量;输入  个数字,存储到列表【价值】中,表示每种货物的价值,且每种货物的重量与价值一一对应。如下图:

【输出描述】

输出货车上货物的最高价值,存储在变量【最高价值】中,如下图:

【输入样例】

5 102,2,6,5,46,3,5,4,6

【输出样例】

15

【参考答案】

其他测试用例

【测试用例1】

输入:{"货物种类": 5, "货车限重": 10, "重量": [2,2,6,5,4], "价值": [6,3,5,4,6]}输出:{"最高价值":15}

【测试用例2】

输入:{"货物种类": 5, "货车限重": 30, "重量": [2,3,6,5,4], "价值": [6,3,5,2,6]}输出:{"最高价值":22}

【测试用例3】

输入:{"货物种类": 3, "货车限重": 10, "重量": [2,6,5], "价值": [3,5,4]}输出:{"最高价值":8}

【测试用例4】

输入:{"货物种类": 3, "货车限重": 10, "重量": [6,5,4], "价值": [5,2,6]}输出:{"最高价值":8}

【测试用例5】

输入:{"货物种类": 5, "货车限重": 40, "重量": [10,5,6,3,8], "价值": [15,20,30,5,9]}输出:{"最高价值":79}

【测试用例6】

输入:{"货物种类": 3, "货车限重": 40, "重量": [15,5,10], "价值": [20,30,10]}输出:{"最高价值":60}

【测试用例7】

输入:{"货物种类": 3, "货车限重": 20, "重量": [5,5,6], "价值": [10,15,5]}输出:{"最高价值":30}

【测试用例8】

输入:{"货物种类": 2, "货车限重": 20, "重量": [5,18], "价值": [40,30]}输出:{"最高价值":40}

【测试用例9】

输入:{"货物种类": 4, "货车限重": 10, "重量": [2,2,6,3], "价值": [5,3,4,2]}输出:{"最高价值":12}

【测试用例10】

输入:{"货物种类": 4, "货车限重": 15, "重量": [6,4,6,5], "价值": [6,6,5,2]}输出:{"最高价值":14}

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章