涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
计算长方形的面积
要求:
(1)利用input()语句输入长方形的长和宽;
(2)利用运算符*,求得长方形的面积;
(3)利用print()语句输出长方形的面积。
输入格式:
第一次输入一个数字,代表长方形的长;
第二次输入一个数字,代表长方形的宽。
(输入有相应的提示信息,如:'请输入长方形的长:')
输出格式:
输出长方形的面积。(输出有相应的提示信息,如:'长方形的面积为:')
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
a=eval(input('请输入长方形的长:'))b=eval(input('请输入长方形的宽:'))s=a*bprint('长方形的面积为:'+str(s))要求:请编程实现如下功能:
(1)程序开始运行时,提醒用户输入三个人的名字和体重(可以分开输入,每次输入名字或者体重);
(2)程序自动比较,找出最重的一个人的名字和体重;
(3)输出的格式不限,但是要有最重人的姓名和体重信息。
参考程序:
方法一:
w1 = int(input("请输入第一个人的体重:"))n1 = input("请输入第一个人的名字:")w2 = int(input("请输入第二个人的体重:"))n2 = input("请输入第二个人的名字:")w3 = int(input("请输入第三个人的体重:"))n3 = input("请输入第三个人的名字:")maximum = w1m_name = n1if w2 > maximum: maximum = w2 m_name = n2if w3 > maximum: maximum = w3 m_name = n3print("体重最重的人是:", m_name)print("他的体重是:", maximum)方法二:
name = []weight = []for i in range(3): a = input('请输入姓名:') b = int(input('请输入体重:')) name.append(a) weight.append(b)c = max(weight)d = weight.index(c)print("体重最重的人是:", name[d])print("他的体重是:", c)方法三:
lst = []for i in range(3): a, b = input('请输入第' + str(i + 1) + '个人的名字和体重,用逗号隔开').split(",") lst.append((a, int(b)))max_weight = lst[0][1]max_index = 0for i in range(1, 3):if lst[i][1] > max_weight: max_weight = lst[i][1] max_index = iprint("体重最重的人是:", lst[max_index][0])print("他的体重是:", lst[max_index][1])下面代码,在字典a中查找身高为137的人,请将代码中缺失部分补充完整。
a = {'小赵': 136, '小钱': 141, '小孙': 146, '小李': 138, '小周': 142, '小吴': 134, '小郑': 137, '小王': 143}keys = a.keys()b = 0# 用于判断查找是否成功for key in keys: value = a[_____①_____]if _____②_____ == 137: print('找到身高为137的人是:', key) b = b + 1# 有找到的人 _____③_____ # 退出循环if b == 0: print('本次查找,未找到有身高为137的同学。')参考答案:
① key
② value或者int(value)或者a[key]或者int(a[key])
③ break
下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。
# 子问题规模小于或等于2时defzui_da_zhi(a_list):if _____①_____:if a_list[0] >= a_list[1]: most = a_list[0]else: most = a_list[1]else: most = a_list[0]return most# 分治算法排序deffen_zhi(init_list): n = len(init_list)if n <= 2: # 若问题规模小于或等于2,解决return zui_da_zhi(init_list)# 分解(子问题规模为n/2) left_list, right_list = _____②_____# 递归,分治 left_max, right_max = _____③_____# 合并return zui_da_zhi([left_max, right_max])# 测试数据test_data = [12, 25, 4, 47, 69, 5, 4, 6, 37, 89, 21]print('最大值为:', fen_zhi(test_data))参考答案:
① len(a_list) == 2
② init_list[:n // 2], init_list[n // 2:]
③ fen_zhi(left_list), fen_zhi(right_list)
青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
