涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
计算长方形的面积
要求:
(1)利用input()语句输入长方形的长和宽;
(2)利用运算符*,求得长方形的面积;
(3)利用print()语句输出长方形的面积。
输入格式:
第一次输入一个数字,代表长方形的长;
第二次输入一个数字,代表长方形的宽。
(输入有相应的提示信息,如:'请输入长方形的长:')
输出格式:
输出长方形的面积。(输出有相应的提示信息,如:'长方形的面积为:')
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
a=eval(input('请输入长方形的长:'))b=eval(input('请输入长方形的宽:'))s=a*bprint('长方形的面积为:'+str(s))某航空公司对于托运行李有尺寸要求,必须满足以下条件:
每件托运行李的长、宽、高三边之和须大于或等于60厘米,且小于或等于203厘米。(注意只是三边,不考虑立方体的整个周长,相当于只求长+宽+高三个数字的和,如,长宽高为:20、30、40,则之和为90)
编写一个重复执行的程序,要求如下:
1、用户一次性输入三个数字,分别代表行李的长、宽、高(单位:厘米),三个数字直接用英文的逗号隔开;如:23,45,67
2、程序自动将输入的长宽高转化为列表或者元组;
3、程序需要判断用户输入的托运行李尺寸是否满足此航空公司的要求。
4、如果满足要求,就输出"可以托运"。如果不满足要求,就输出"不可以托运"。
5、然后重复以上操作,重复次数不限。
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
参考1:
whileTrue: a = list(map(int, input().split(','))) s = 0for i in a: s += iif s >= 60and s <= 203: print("可以托运")else: print("不可以托运")参考2:
whileTrue: a = list(map(int, input().split(','))) s = sum(a)if s >= 60and s <= 203: print("可以托运")else: print("不可以托运")新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。
library = dict() # 用字典生成一个图书管理数据结构(字典的键为编号,字典的值为['书名',本数])# 书籍入库nums = len(library) # 先计算图书编号总数library[nums + 1] = ['红楼梦', 5] # 在编号总数的基础上继续添加新书:library[新编号]=['书名',本数]library[nums + 2] = ['西游记', 10]library[nums + 3] = ['水浒传', 5]library[nums + 4] = ['三国演义', 10]print(library)blist = list(library.keys())# 按书名借阅:bookname = input('请输入借阅图书名称:')min_v = blist[0]max_v = blist[-1]turns = 0while min_v <= ____①____: turns += 1 cur = (min_v + max_v) ____②____ print(cur)if library[cur][0] == ____③____:if library[cur][1] > 0: library[cur][1] -= ____④____ print('《%s》借阅成功!' % bookname)else: print('抱歉,您选择的书籍已被借完!')breakelif blist[cur - 1] > cur: min_v = ____⑤____else: max_v = ____⑥____print("经过%d轮二分查找,完成图书的搜索。" % turns)参考答案:
① max_v;
② // 2;
③ bookname;
④ 1;
⑤ cur +1;
⑥ cur -1。
下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。
# 子问题规模小于或等于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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
