涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
夏天快到了,又到了吃西瓜的季节。西瓜是夏天的代表,让人在它的色香味中,感受到夏天的魅力。请你用Python,画出如下图所示的西瓜:

要求:
(1)西瓜左上角坐标为,西瓜红壤左上角坐标为;
(2)整个西瓜半径为100,西瓜红壤半径为90;
(3)西瓜绘制完成后,隐藏画笔。
思路提示:
(1)先画绿色瓜皮,由于西瓜是向上的,所以,在画绿皮之前,需要把画笔右转90度(right(90));
(2)右转90度后开始画绿皮,画完后画笔回到坐标,以便形成完整的半圆,以便填充绿色;
(3)画笔移动到(10,0)坐标;
(4)将画笔右转180度(right(180));
(5)右转180度后开始画红壤,画完后画笔回到(10,0)坐标,以便形成完整的半圆,以便填充红色;
(6)隐藏画笔。
友情提示:
考试平台暂不支持画笔命名:Pen()命令,同学们可以选用其他命令;当然如果使用了Pen()命令,只要程序是正确的,阅卷时依然按照正确处理。
参考程序:
import turtle
# 绘制西瓜绿皮
turtle.right(90)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(radius=100, extent=180)
turtle.home()
turtle.end_fill()
# 到红壤左上角坐标
turtle.forward(10)
# 绘制西瓜红壤
turtle.right(90)
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(radius=90, extent=180)
turtle.goto(10, 0)
turtle.end_fill()
# 绘制结束,隐藏画笔
turtle.hideturtle()
turtle.done()
蚂蚁是自然界的大力士:一只蚂蚁能够举起自身体重40倍的物体,能够拖运自身体重1700倍的物体。蚂蚁十分勤劳,为了保证以最快速度完成搬运,能够举起物体时绝不拖运。
现已知某只蚂蚁的体重为50毫克,地上的10块食物重量(单位:毫克)为500, 60000, 25, 1200, 2200, 1800, 10000, 80000, 3000, 65。请帮蚂蚁编程计算,可以举起和需要拖运的食物各有几个?
要求:
(1)必须使用列表或者元组;
(2)输出格式为:“该蚂蚁可以举起的食物有*个,可以拖运的食物有*个。”(不含引号);
(3)提醒:根据题意,“能够举起物体时绝不拖运”,所以拖运的食物和举起的食物不会重复。
参考程序:
w = [500, 60000, 25, 1200, 2200, 1800, 10000, 80000, 3000, 65]
x = 50 * 40
y = 50 * 1700
num1 = 0
num2 = 0
for i in w:
if i <= x:
num1 = num1 + 1
if x < i <= y:
num2 = num2 + 1
print("该蚂蚁可以举起的食物有{}个,可以拖运的食物有{}个。".format(num1, num2))
给定一个十进制整数 n,求出从 1 到 n 的所有整数中出现“1”的个数。
例如,n=2 时,1,2 出现 1 个“1”。
n=12 时,1,2,3,4,5,6,7,8,9,10,11,12,出现 5 个“1”。
现编写一个程序,实现如下功能:输入整数 n,执行程序后,输出该范围内出现“1”的个数。请完善程序。
n = int(input('请输入整数:'))
__________ # ①
i = 1
while __________: # ②
x = i
while x > 0:
if __________: # ③
count = count + 1
x //= 10
__________ # ④
print(n, '范围内 1 的个数有:', count)
参考答案:
① count = 0 或等效答案;
② i <= n 或等效答案;
③ x % 10 == 1 或等效答案;
④ i += 1 或等效答案;
有一个游戏:有两个人,第一个人先从1和2中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2,之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以1或2为起点)加到20,有多少种不同的递加过程?比如1,2,4,6,8,10,12,14,16,18,20算一种;2,4,5,7,9,10,12,14,15,17,19,20又是一种。那么一共会有多少种这样的过程呢?我们可以用递归算法来解决这个问题,请补全代码
defguo_cheng(n):
if _____①_____:
return1
return _____②_____
# 输出所有过程的个数
print(guo_cheng(_____③_____))
参考答案:
① n <= 1
② guo_cheng(n - 1) + guo_cheng(n - 2)
③ 20
青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
