涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月CIE_Python打卡题目
小明去超市买了苹果和香蕉,苹果每斤6.5元,香蕉每斤4.8元。小明买了斤苹果和斤香蕉(和都是不是0的整数),请写一段程序计算小明一共需要支付多少钱?
要求:
(1)程序开始运行后,需要用户输入和的值(整数),可以分两次输入;
(2)用户输入斤数时,要有提示语,提示语分别为:“请输入苹果斤数:”、 “请输入香蕉斤数:”;
(3)计算公式正确,正确实现总费用的计算逻辑;
(4)输出格式正确,输出字符串包含提示文本,如“小明一共需要支付:”,“元”;
(5)代码规范,运行正常。
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
# 1. 输入数据:分两次输入,并转换为整数apple_weight = int(input("请输入苹果斤数:"))banana_weight = int(input("请输入香蕉斤数:"))# 2. 处理数据:根据单价和重量计算总价total_cost = apple_weight * 6.5 + banana_weight * 4.8# 3. 输出结果:注意输出格式的拼接print(f"小明一共需要支付:{total_cost}元")要求:请编程实现如下功能:
(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])输入一个正数,以下代码编程求出它的平方根。请你补全代码。
in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = "))if in_var < 0: x = - in_varelse: x = in_varlow = 0.0high = xs_root = ____①____if x > 0and x < 1: high = 1.0 low = 0 s_root = ____②____if x >= 0:while abs(____③____) > 0.0001:if x > 1.0:if s_root ** 2 < x: low = s_rootelse: high = s_root s_root = ____④____if x == 1.0and x == 0.0: s_root = xelse:if s_root ** 2 < x: low = s_rootelse: high = s_root s_root = ____⑤____if in_var >= 0: print("所求数的平方根为:s_root = %.1f" % (s_root))参考答案:
① (low + high) / 2;
② (low + high) / 2;
③ s_root ** 2 - x;
④ (low + high) / 2;
⑤ (low + high) / 2。
上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。
实现上述功能的部分程序代码如下,请补充完成空白处的内容。
step = 1midlist = []defsubwork(n):global stepif n == 1:return stepelif n % 2 == 0: n = _____①_____ midlist.append(n) step += 1 subwork(_____②_____)return stepelif n % 2 != 0: n = _____③_____ midlist._____④_____ step += 1 subwork(_____⑤_____)return stepcur_num = int(input("请输入一个数字:"))subwork(cur_num)print(midlist)print(step)参考答案:
① n // 2或等效答案
② n或等效答案
③ n * 3 + 1或等效答案
④ append(n)或等效答案
⑤ n或等效答案
青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
