涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月打卡题目
要求:
(1)画一个边长为200的正方形,里面嵌套一个直径为100的圆,如下图;

(2)圆的填充颜色为蓝色,所有的线条为黑色。
(3)圆心位置为画布正中心。
参考程序:
注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。
import turtleturtle.pencolor('black')turtle.fillcolor('blue')turtle.penup()turtle.goto(0, -50)turtle.pendown()turtle.begin_fill()turtle.circle(50)turtle.end_fill()turtle.penup()turtle.goto(-100, -100)turtle.pendown()for i in range(4): turtle.forward(200) turtle.left(90)turtle.done()学过编程的小程同学想帮助医生对核酸检测人群进行分流和统计,根据健康码的颜色分配不同的核酸检测区域:
等待核酸检测人数众多,但是具体检测人数未知,请你帮小程编写一个程序来协助医生对核酸人群进行人群分流并统计人数。
要求如下:
(1)字母R代表红码,字母Y代表黄码,G代表绿码:
(2)程序运行后根据提示信息输入一个健康码(R、Y、G中之一),输入其他字母提示“输入错误请重新输入”;根据不同的健康码,自动返回区域信息:(红码:A区、橙码:B区、绿码:C区);
(3)程序一直在重复运行,但当输入“end”表示检测结束,输出下面信息(见要求4)后程序结束运行;
(4)检测结束后输出总人数和对应红码、黄码和绿码的人数。
运行案例如下:
> 输入样例1:> R> 输出样例1:> 请到A区检测> > 输入样例2:> Y> 输出样例2:> 请到B区检测> > 输入样例3:> G> 输出样例3:> 请到C区检测> > 输入样例4:> end> 输出样例4:> 检测结束,一共检测*人> 红码:*人> 黄码:*人> 绿码:*人> > (说明:*代表实际统计的的数字)参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
total, r, y, g = 0, 0, 0, 0whileTrue: code = input("输入一个健康码(R,Y,G):")if code == "end":breakif code == 'R': r += 1 print("请到A区检测")elif code == "Y": y += 1 print("请到B区检测")elif code == 'G': g += 1 print("请到C区检测")else: print("输入错误请重新输入")continue total += 1print(f"检测结束,一共检测{total}人")print(f"红码:{r}人")print(f"黄码:{y}人")print(f"绿码:{g}人")百钱买百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题,问题的原文是:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?这个问题用现代文描述起来就是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱。如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?请完成下面程序中空白处的语句,实现对问题的求解,找出所有符合题目要求的买鸡方案,并输出。
# 设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,# num为符合题目要求的方案数目。num = 0for cock in range(1, 21):for hen in range(1, 34):for chicken in____①____: if____②____== 100and cock * 5 + hen * 3 + chicken / 3 ==____③____: num = ____④____ print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,小鸡{chicken}只')参考答案:
① range(1, 101)或等效答案;
② cock + hen + chicken或等效答案;
③ 100或等效答案;
④ num +1或等效答案。
商超采用会员制,客户的消费信息如会员号、姓名和积分如下表所示,小方的爸爸想编写一个客户信息管理系统,其中有一个功能是:输入会员号,查询该会员的积分。
小方知道后,就跃跃欲试,他首先从数据库读取客户信息到列表中,其中存储第条记录的会员号,存储第条记录的姓名,存储第条记录的积分;他首先将数组中数据按会员号升序排序,然后用二分查找算法查找会员号对应的积分信息。代码如下,完善划线处的代码:
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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
