涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
“天狗吃月亮”是一个古老的神话,以前古人不了解月食这一现象,所以说月亮被狗吃了,天狗吃月亮是古人对“月食”这一天文现象的简称。月食是自然界的一种现象,当太阳、地球、月球三者恰好或几乎在同一条直线上时(地球在太阳和月球之间),太阳到月球的光线便会部分或完全地被地球遮挡,产生月食。请你设计一段程序完成下列图片的月食现象。
要求:
(1)海龟的初始位置的坐标为(0,0),月食现象的图片需在整个画布中完整呈现;
(2)月食现象由两个圆或点组成,分别为半径不同的黄色和白色的圆或点;
(3)绘制半径为150的圆或点,并填充颜色为黄色,该图形的中心位置为画布的正中心位置(0,0);
(4)绘制半径为75的圆或点,并填充颜色为白色,该图形的中心位置坐标为(150,0)。

参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
方法一:
import turtleturtle.pencolor('yellow')turtle.dot(300)turtle.pencolor('white')turtle.penup()turtle.goto(150, 0)turtle.pendown()turtle.dot(150)turtle.done()方法二:
import turtleturtle.penup()turtle.goto(0, -150)turtle.pendown()turtle.color('yellow')turtle.begin_fill()turtle.circle(150)turtle.end_fill()turtle.penup()turtle.goto(150, -75)turtle.pendown()turtle.color('white')turtle.begin_fill()turtle.circle(75)turtle.end_fill()turtle.done()要求:
(1)统计的语句为:Were you born on August 21, 1994
(2)要求使用条件语句,统计该句中所有英文字母、数字的个数的和(不包括空格、逗号等标点符号);
(3)输出一个整数,表示所有英文字母和数字的个数的和。
参考程序:
s = 'Were you born on August 21, 1994'count = 0for i in s:if ('0' <= i <= '9') or ('a' <= i <= 'z') or ('A' <= i <= 'Z'): count += 1print(count)标准考试答题卡一般采用2B铅笔填涂,填涂好的答题卡经过扫描后得到相应的数字化图像,再通过光学识别,完成答题卡信息数据的采集、分析与统计。
计算机判断答题卡中信息点被填涂的标准是灰度值小于132为黑色,灰度值大于等于132为白色。灰度值计算公式:灰度值 = 0.299 × 红色分量(R)+ 0.587 × 绿色分量(G)+ 0.114 × 蓝色分量(B),若分别输入 n 个信息点的RGB颜色值,则其判断程序如下:
n = int(input("请输入信息点个数:"))count = 0for i in range(1, n + 1): R = int(input("请输入红色分量:")) __①___ B = int(input("请输入蓝色分量:")) Gray_scale = __②___if __③___: print("黑色") count = count + 1else: print("白色")print("黑色像素总共有:" + __④___ +"个")参考答案:
① G = int(input("请输入绿色分量:")) 或等效答案;
② 0.299 * R + 0.587 * G + 0.114 * B 或等效答案;
③ Gray_scale < 132 或等效答案;
④ str(count) 或等效答案。
商超采用会员制,客户的消费信息如会员号、姓名和积分如下表所示,小方的爸爸想编写一个客户信息管理系统,其中有一个功能是:输入会员号,查询该会员的积分。
小方知道后,就跃跃欲试,他首先从数据库读取客户信息到列表中,其中存储第条记录的会员号,存储第条记录的姓名,存储第条记录的积分;他首先将数组中数据按会员号升序排序,然后用二分查找算法查找会员号对应的积分信息。代码如下,完善划线处的代码:
defbubble_sort(d):for i in range(len(d) - 1):for j in range(len(d) - 1, _____①_____, -1):if d[j][0] < d[j - 1][0]: d[j], d[j - 1] = d[j - 1], d[j]defbin_search(d, key): i, j = 0, len(d) - 1while i <= j: m = (i + j) // 2if _____②_____:return mif key > d[m][0]: i = m + 1else: j = m - 1return-1# 从数据库读取会员信息存列表data中,代码略data = [ [8011, '张飞', 12345], [8012, '李强', 34512], [7812, '李好', 45321]]bubble_sort(data)key = int(input('输入会员号:'))m = _____③_____if m != -1: print(data[m][1], '先生/女士:您的积分是:', data[m][2])else: print('该会员号不正确')参考答案:
① i
② d[m][0] == key
③ bin_search(data, key)
青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
