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

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

  • 2026-08-27 01:27:33
【第36期】21天养成编程习惯:Scratch刷题第05天

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

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

Day05:GESP一级2023.06_小猫寻宝

1. 准备工作

(1)保留默认小猫角色,添加角色Crystal。

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

2. 功能实现

(1)点击绿旗,小猫角色的初始位置为(X=-170,Y=-120),面向方向为90°,旋转方式为左右翻转。在小猫角色中设置舞台的初始背景为Mountain。

(2)点击绿旗,Crystal角色的初始位置为(X=170,Y=0),初始大小为120,Crystal角色每隔0.5秒钟颜色特效增加25。

(3)小猫能够面向鼠标指针,以移动10步,等待0.2秒的速度在舞台上移动。

(4)在移动过程中,小猫如果找到Crystal,说“发现宝石”2秒,停止全部脚本。

3. 设计思路与实现

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

a. 角色设置

保留默认小猫角色,添加角色Crystal。

b. 舞台背景设置

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

(2)脚本编写

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

a. 角色:Cat

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=-170,Y=-120
  3. 初始方向:90°
  4. 旋转方式:左右翻转
  5. 初始背景:Mountain
  6. 重复执行:
    • 面向鼠标指针
    • 移动10步
    • 等待0.2秒
    • 如果碰到Crystal,那么说“发现宝石”2秒,停止全部脚本。

b. 角色:Crystal

当绿旗被点击时:

  1. 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 初始位置:X=170,Y=0
  3. 初始大小:120
  4. 重复执行:
    • 将颜色特效增加25
    • 等待0.5秒

Day05:GESP二级2023.06_时间规划

【题目描述】

默认小猫角色和白色背景,小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟。你能通过编程帮他做到吗?

【输入描述】

新建变量“h1”,“m1”,用于记录开始时刻,h1表示小时,m1表示分钟。

新建变量“h2”,“m2”,用于记录结束时刻,h2表示小时,m2表示分钟。

注意:时刻使用24小时制,开始时刻和结束时刻是同一天,开始时刻一定在结束时刻之前。

例如:

h1 = 09,m1 = 05,表示开始时刻为09时05分。

h2 = 09,m2 = 06,表示终止时刻为09时06分。

如下图所示:

【输出描述】

新建变量“result”,用于存储得到的结果。即两个时刻之间有多少分钟。上面的例子09时05分到09时06分,之间有1分钟,所以 result = 1。

如下图所示:

【输入样例】

h1 = 09m1 = 05h2 = 09m2 = 06 

【输出样例】

result = 1

【输入样例】

h1 = 09m1 = 05h2 = 10m2 = 00 

【输出样例】

result = 55

【参考答案】

其他测试用例

一共5组测试用例,通过一组测试用例得5分。

【测试用例1】

h1 = 09;m1 = 05;h2 = 10;m2 = 04result = 59

【测试用例2】

h1 = 09;m1 = 05;h2 = 09;m2 = 10result = 5

【测试用例3】

h1 = 09;m1 = 55;h2 = 10;m2 = 10result = 15

【测试用例4】

h1 = 09;m1 = 55;h2 = 09;m2 = 59result = 4

【测试用例5】

h1 = 22;m1 = 37;h2 = 23;m2 = 03result = 26

Day05:GESP三级2025.03_时间跨越

【题目描述】

假设现在是年月日时(保证为合法时间)。

默认小猫角色和白色背景,编写程序请你帮小杨计算小时()后对应的年月日时,并用#连接存在中。

提示:闰年的判断条件为:年份能被4整除但不能被100整除;或者年份能够被400整除(2008年、2000年都是闰年)。

例如:,,,,,即2008年2月28日23时,一小时后为2008#2#29#0,即2008年2月29日0时。

【输入描述】

新建变量“”用于存储年份。

新建变量“”用于存储月份。

新建变量“”用于存储日。

新建变量“”用于存储时。

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

如下图所示:

【输出描述】

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

如下图所示:

【输入样例】

y=2008,m=2,d=28,h=23,k=1

【输出样例】

result = 2008#2#29#0

【输入样例】

y = 2008, m = 2, d = 29, h = 23, k = 22

【输出样例】

result = 2008#3#1#21

【注意事项】

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

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

【参考答案】

创建一个存储每月天数的列表list:

【测试用例】

【测试用例1】

输入:y = 2008, m = 2, d = 28, h = 23, k = 19输出:result = 2008#2#29#18

【测试用例2】

输入:y = 2025, m = 12, d = 31, h = 23, k = 7输出:result = 2026#1#1#6

【测试用例3】

输入:y = 2008, m = 3, d = 31, h = 23, k = 6输出:result = 2008#4#1#5

【测试用例4】

输入:y = 2008, m = 4, d = 30, h = 23, k = 12输出:result = 2008#5#1#11

【测试用例5】

输入:y = 2025, m = 2, d = 28, h = 23, k = 22输出:result = 2025#3#1#21

Day05:GESP四级2024.06_密码移位

【题目描述】

小杨学习了加密技术移位,所有大写字母都向后按照一个固定数目进行偏移。偏移过程会将字母表视作首尾相接的环,例如,当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。

注:当偏移量是26的倍数时,每个大写字母经过偏移后会恰好回到原来的位置,即大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 经过偏移后会保持不变。

默认小猫角色和白色背景。请你帮小杨做这种移位替换。

【输入描述】

新建变量“”(),用于存储偏移量。

如下图所示:

【输出描述】

输出一个字符串存储在变量“”中,表示在偏移量为的情况下,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 移位替换后的结果。

如下图所示:

【输入样例】

n = 3

【输出样例】

result = DEFGHIJKLMNOPQRSTUVWXYZABC

【样例解释】

当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。

【注意事项】

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

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

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

【参考答案】

其他测试用例

【测试用例1】

输入:n = 31输出:result = FGHIJKLMNOPQRSTUVWXYZABCDE

【测试用例2】

输入:n = 19输出:result = TUVWXYZABCDEFGHIJKLMNOPQRS

【测试用例3】

输入:n = 98输出:result = UVWXYZABCDEFGHIJKLMNOPQRST

【测试用例4】

输入:n = 66输出:result = OPQRSTUVWXYZABCDEFGHIJKLMN

【测试用例5】

输入:n = 70输出:result = STUVWXYZABCDEFGHIJKLMNOPQR

Day05:PTA第09届_车厢重组

【题目描述】

在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转 180 度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。

【输入描述】

输入一个正整数序列,存储在列表【】中,表示初始的车厢顺序。

如下图所示:

【输出描述】

输出一个整数,存储在变量【】中,表示最少的旋转次数。

如下图所示:

【输入样例1】

4 3 2 1

【输出样例1】

6

【输入样例2】

1 2 3 4

【输出样例2】

0

【参考答案】

其他测试用例

【测试用例1】

输入: {'lst': [10, 8, 9, 4, 6, 5, 1, 7, 2, 3]}输出: {'ans': 35}

【测试用例2】

输入: {'lst': [7, 9, 4, 1, 8, 3, 5, 2, 6, 10]}输出: {'ans': 22}

【测试用例3】

输入: {'lst': [10, 4, 6, 1, 9, 3, 8, 7, 2, 5]}输出: {'ans': 27}

【测试用例4】

输入: {'lst': [4, 3, 7, 2, 5, 8, 9, 10, 1, 6]}输出: {'ans': 17}

【测试用例5】

输入: {'lst': [5, 3, 2, 10, 7, 6, 4, 1, 9, 8]}输出: {'ans': 20}

【测试用例6】

输入: {'lst': [2, 1, 8, 10, 4, 3, 5, 7, 9, 6]}输出: {'ans': 15}

【测试用例7】

输入: {'lst': [5, 2, 6, 4, 1, 7, 8, 3, 10, 9]}输出: {'ans': 13}

【测试用例8】

输入: {'lst': [2, 8, 3, 4, 6, 7, 5, 9, 10, 1]}输出: {'ans': 16}

【测试用例9】

输入: {'lst': [6, 9, 5, 8, 10, 3, 4, 1, 7, 2]}输出: {'ans': 31}

【测试用例10】

输入: {'lst': [9, 10, 7, 6, 3, 2, 4, 8, 1, 5]}输出: {'ans': 33}

青少年编程竞赛交流

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

最新文章

随机文章