闰年计算-第13届蓝桥杯Scratch选拔赛真题精选
2023-07-10 08:10:38
[导读]:蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。
第13届蓝桥杯青少年组第1次选拔赛于2021年8月14日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
闰年计算,本题是2021年8月14日举行的第13届蓝桥杯Scratch选拔赛真题编程第5题,初级组和中级组都有此题,题目要求编程计算玩家输入的年份是闰年还是平年,输入的月份有多少天。
先来看看题目的要求吧。

2). 说出输入年份为平年还是闰年(年份大于2001,小于2040);

3). 询问请输入月份并出现对话框(1-12);

4). 说出输入月份有多少天;

5). 完整说出刚才输入年份为平年或闰年,输入月份一共有多少天。

评分标准:

闰年分为普通闰年和世纪闰年,其判断方法为:公历年份是4的倍数,且不是100的倍数,为普通闰年。公历年份是整百数,且必须是400的倍数才是世纪闰年。有一个简单的十二字口诀:四年一闰、百年不闰、四百再闰。比较特殊的是世纪年份,比如1900年不是闰年,而2000年是闰年。题目给出的年份范围是2001~2040,不包括世纪年份,如此一来,只需要判断输入年份能否被4整除,如果能整除就是闰年,否则为平年。
本着严谨的态度,我这里还是给出完整的解决方案,即不限年份。其实就是两种情况:

有了这个列表,要获取某个月份的天数就非常简单了,列表编号刚好对应于月份,需要特殊处理的是2月份,这里保存的是平年的天数,即28天,如果是闰年,2月份有29天。

很多同学直接向列表中添加数据,也是可以的,但使用代码方式添加更加安全合理,强烈推荐使用这种方式,不过要注意在添加之前清空列表,避免多次添加。
2. 判断闰年还是平年
绿旗被点击时,小狗位于舞台中心,然后开始询问输入年份,当玩家输入年份之后,就需要判断是闰年还是平年了,根据前面的思路分析,编写代码如下:

简要说明如下:
1). 为了方便,这里定义了一个变量“年”,用于保存玩家输入的年份;
2). 判断是否整除就是求余数,因此这里使用的是“a除以b的余数”指令;
3). 这里的条件比较长,其中前面的两个条件进行的是逻辑与运算,用于处理普通闰年,第3个条件则用于处理世纪闰年的;
4). 列表中2月份默认添加的是28天,如果是闰年,2月份应该是29天,所以这里对2月份天数做了一个特殊处理,如果是闰年将2月份更新为29天,否则更新为28天。
3. 计算月份天数
接着就是询问月份了,这个非常简单,直接上代码:

为了方便,这里也定义了一个变量“天数”,用于保存当前月份的天数。
4. 说出完整语句
最后需要完整地说出一句话,有的同学就开始犯难了,难道还要再判断一次吗?其实我们可以换个思路,使用分步处理的方法。
先定义一个变量“完整语句”,用于表示最后要说的内容,绿旗点击时,先将变量设置为空字符串,在判断闰年的时候,根据闰年还是平年分别设置不同的内容,当说出月份有多少天之后,再进行字符串连接即可,在之前的代码块中添加代码如下:

至此,整个作品就创作完成了,你可以输入不同的年份和月份来测试效果了。
一.题目说明
背景信息: 每年的 1、3、5、7、8、10、12 月都有 31 天; 4、6、9、11 月都有 30 天;2月比较特殊,公历年份能被4整除的是闰年,其他是平年,例如2020年是闰年,2021年是平年。平年的2月有28天,闰年的2月有29天。 编程实现:运行程序,在对话框输入年份与月份,并说出输入年份为平年还是闰年,输入月份有多少天。具体要求: 1). 点击绿旗,询问请输入年份并出现对话框;




- 5分:满足要求1);
- 5分:满足要求2);
- 6分:满足要求3);
- 7分:满足要求4);
- 7分:满足要求5)。
二.作品效果
在编程之前,先来看看作品的完整效果吧: [video width="640" height="480" mp4="https://cdn.scratch5.com/wp-content/uploads/2023/07/a8a13d92-5bf0-11ed-83e0-5a374a432a3a-v8_t21-wleHwfWyyf.mp4"][/video]三.思路分析
本题只有1个小狗角色,舞台背景和角色分别来自于Scratch3.0自带的背景库和角色库,如图所示:
- 普通闰年
- 世纪闰年

四.编程实现
根据题目描述和思路分析,我们可以分4步来编写程序:- 初始化列表
- 判断闰年还是平年
- 计算月份天数
- 说出完整语句




五.总结与思考
本题难度系数为4,积木块数量在64个左右,涉及到的知识点主要包括:- Scratch问答,包括询问并等待和回答;
- 逻辑运算,包括逻辑与、逻辑或和逻辑非(不成立);
- 列表的灵活运用,包括列表的清空、插入、获取和替换等操作;
- 使用取余数指令判断两个数是否能整除;
- 字符串连接运算,重点是多个连接指令的组合使用;
- 自制积木的使用。
微信扫码关注
抖音扫码关注