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

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

  • 2026-09-24 19:22:47
【第36期】21天养成编程习惯:Scratch刷题第07天

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

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

Day07:GESP一级2025.09_章鱼鼓手

1. 准备工作

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

(2)添加角色Octopus和Pufferfish。

(3)删除默认白色背景,添加背景Underwater 2。

(4)为背景添加声音Ocean Wave。

2. 功能实现

(1)点击绿旗,舞台背景换成Underwater 2,并且一直播放优美的背景音乐Ocean Wave。

(2)点击绿旗,角色Pufferfish的初始位置为(X=-100,Y=-50),初始方向为90°,初始造型为pufferfish-a,初始大小为80。

(3)Pufferfish以每隔0.3秒的速度让自己的大小增加5,一共执行20次,之后再以每隔0.3秒的速度减小5,恢复到初始大小。

(4)Pufferfish恢复初始大小后,停止全部脚本。

(5)点击绿旗,角色Octopus的初始位置为(X=160,Y=-90),初始方向为0°,初始旋转方式为左右翻转,初始造型为octopus-a,初始大小为90。

(6)Octopus始终重复这样的动作,每隔0.2秒,移动10步,更换到下一个造型,碰到舞台边缘就反弹。

注意事项:

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

3. 设计思路与实现

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

a. 角色设置

删除默认小猫角色,添加角色Octopus和Pufferfish。

b. 舞台背景设置

删除默认白色背景,添加背景Underwater 2。

为背景添加声音Ocean Wave。

(2)脚本编写

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

a. 角色:Pufferfish

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=-100,Y=-50
  3. 初始方向:90°
  4. 初始造型:pufferfish-a
  5. 初始大小:80
  6. 重复执行 20 次
    • 等待 0.3 秒
    • 将大小增加 5
  7. 重复执行 20 次
    • 等待 0.3 秒
    • 将大小减小 5
  8. 停止全部脚本

b. 角色:Octopus

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=160,Y=-90
  3. 初始方向:0°
  4. 初始旋转方式:左右翻转
  5. 初始造型:octopus-a
  6. 初始大小:90
  7. 重复执行
    • 等待 0.2 秒
    • 移动 10 步
    • 下一造型
    • 碰到舞台边缘就反弹

c. 背景:

当绿旗被点击时:

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

4. 评分标准

(1)点击绿旗,舞台背景换成Underwater 2,并且一直播放优美的背景音乐Ocean Wave。(5分)

(2)点击绿旗,角色Pufferfish的初始位置为(X=-100,Y=-50),初始方向为90°,初始造型为pufferfish-a,初始大小为80。(4分)。

(3)Pufferfish以每隔0.3秒的速度让自己的大小增加5,一共执行20次,之后再以每隔0.3秒的速度减小5,恢复到初始大小。(5分)

(4)Pufferfish恢复初始大小后,停止全部脚本。(2分)

(5)点击绿旗,角色Octopus的初始位置为(X=160,Y=-90),初始方向为0°,初始旋转方式为左右翻转,初始造型为octopus-a,初始大小为90。(4分)

(6)Octopus始终重复这样的动作,每隔0.2秒,移动10步,更换到下一个造型,碰到舞台边缘就反弹。(5分)


Day07:GESP二级2024.03_小杨买书

【题目描述】

默认小猫角色和白色背景。

小杨同学积攒了一部分零用钱想要用来购买书籍,已知一本书的单价是13元,请根据小杨零用钱的金额,编写程序计算最多可以购买多少本书,还剩多少零用钱。

【输入描述】

新建变量表示小杨拥有的零用钱数。

如下图所示:

【输出描述】

新建变量和,分别表示购买图书的本书和剩余的零用钱数。

如下图所示:

【输入样例】

m = 100

【输出样例】

b = 7r = 9

【输入样例】

m = 199

【输出样例】

b = 15r = 4

【参考答案】

方法一:

方法二:

方法三:

其他测试用例

【测试用例1】

输入:m = 113输出:b = 8;r = 9

【测试用例2】

输入:m = 24输出:b = 1;r = 11

【测试用例3】

输入:m = 139输出:b = 10;r = 9

【测试用例4】

输入:m = 29输出:b = 2;r = 3

【测试用例5】

输入:m = 104输出:b = 8;r = 0

Day07:GESP三级2023.12_小杨做题

【题目描述】

为了准备考试,小杨每天都要做题。第 1 天,小杨做了  道题,第 2 天,小杨做了  道题,从第 3 天起,小杨每天做的题目数量是前两天的总和。

此外,小杨还规定,当自己某一天做了大于或等于  题时,接下来的所有日子里,他就再也不做题了。

默认小猫角色和白色背景,编写程序计算到了第  天,小杨总共做了多少题呢?

【输入描述】

新建变量:

新建变量:

新建变量:

如下图所示:

【输出描述】

新建变量  用于存储小杨  天里总共做了多少题目。

如下图所示:

【输入样例】

a = 1b = 2m = 10N = 5

【输出样例】

result = 19

【样例解释】

小杨第一天做 1 题,第二天做 2 题,第三天做 1 + 2 = 3 题,第四天做 2 + 3 = 5 题,第五天做 3 + 5 =8 题。因此他总共做了 1 + 2 + 3 + 5 + 8 = 19 题。

【输入样例】

a = 1b = 1m = 5N = 8

【输出样例】

result = 12

【样例解释】

小杨前 5 天分别做了 1, 1, 2, 3, 5 题,由于第 5 天小杨做了 5 题,而 m = 5,于是小杨从此以后不再做题。因此小杨总共做了 1 + 1 + 2 + 3 + 5 = 12 题。

【注意事项】

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

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

【参考答案】

【测试用例】

【测试用例1】

输入:a=9;b=8;m=9069;N=82输出:result=35037

【测试用例2】

输入:a=4;b=5;m=28018;N=267输出:result=81785

【测试用例3】

输入:a=4;b=0;m=5837;N=330输出:result=16724

【测试用例4】

输入:a=7;b=10;m=66443;N=49输出:result=253722

【测试用例5】

输入:a=4;b=8;m=10976;N=70输出:result=43776

Day07:GESP四级2025.09_按身高排序

【题目描述】

体育课上,老师面前站着位同学,他们已经排成了一条长长的队伍。老师希望队伍看起来更整齐、更有精神!他想出了一个好主意:让同学们按照身高从高到矮的顺序来排队。不过,调整队伍的时候有一个小规则:每次只能让相邻的两位同学交换位置。

默认小猫角色和白色背景,请你帮助老师计算出最少需要多少次这样的交换,就能让队伍变得整整齐齐!

【输入描述】

新建列表“”,用于存储每位同学的身高。

如下图所示:

【输出描述】

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

如下图所示:

【输入样例】

data = [170, 165, 180, 160, 175]

【输出样例】

ans  = 5

【输入样例】

data = [155, 155, 160]

【输出样例】

ans = 2

【注意事项】

  • 变量名的拼写(包括大小写)要和题目完全一致。
  • 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块
  • 列表直接用“+”功能赋值进行测试即可,无需写代码赋值。

【参考答案】

其他测试用例

【测试用例1】

输入:data = ['42zfclg194yufg', 'hvbyhp4pxzqi', '1nttw']输出:ans = 2

【测试用例2】

输入:data = ['jg', '4s6ypwjeol2', '1bh', 'b7dhr']输出:ans = 1

【测试用例3】

输入:data = ['v0v', 'o4hl']输出:ans = 0

【测试用例4】

输入:data = ['0bs36', 'v44x0nzxtmk2', 'zw4v9eyyar5o8', '42', 'kt', 'ymb0k8j8vf', 'glmolztvc']输出:ans = 3

【测试用例5】

输入:data = ['66eenz7rum', 'ar6gbm', '7p185eo9', 'rxu4vm', 'napqo', 'wzxbddfyt5u6', 'j4cbcq5w07w7']输出:ans = 4

Day07:PTA第08届_美丽数字

【题目描述】

小杨认为一个正整数是美丽数字当且仅当该正整数是9的倍数但不是8的倍数。给定一个正整数序列,小杨想请你编写一个程序计算该正整数序列中美丽数字的数量。

【输入描述】

输入一个正整数序列,存储在列表【list】中,列表的长度不大于100。

如下图所示:

【输出描述】

输出一个整数,存储在变量【result】中,代表序列中美丽数字的数量。

如下图所示:

【输入样例1】

1 9 72

【输出样例1】

1

【输入样例2】

20 9 15 81

【输出样例2】

2

【参考答案】

其他测试用例

【测试用例1】

输入: {'list': [485, 390, 194, 320, 321, 606]}输出: {'result': 0}

【测试用例2】

输入: {'list': [504, 567]}输出: {'result': 1}

【测试用例3】

输入: {'list': [423, 774]}输出: {'result': 2}

【测试用例4】

输入: {'list': [171, 603, 378]}输出: {'result': 3}

【测试用例5】

输入: {'list': [738, 666, 414, 387]}输出: {'result': 4}

【测试用例6】

输入: {'list': [405, 63, 504, 135, 441, 396]}输出: {'result': 5}

【测试用例7】

输入: {'list': [324, 81, 261, 819, 747, 441, 720]}输出: {'result': 6}

【测试用例8】

输入: {'list': [423, 495, 378, 495, 900, 144, 882, 162]}输出: {'result': 7}

【测试用例9】

输入: {'list': [486, 306, 126, 90, 423, 27, 90, 396]}输出: {'result': 8}

【测试用例10】

输入: {'list': [405, 414, 234, 234, 198, 108, 810, 90, 342]}输出: {'result': 9}

青少年编程竞赛交流

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

最新文章

随机文章