image

编辑人: 流年絮语

calendar2025-05-10

message1

visits615

2023月12月Python四级实操参考答案

一、编程题

1、36.统计高分问题
小张在学习对分查找后,想利用该思路来实践一下,加深对该算法的理解。于是他按老师的要求,统计期末考试成绩,总分比他高的同学有多少个?
他的思路是,首先将全区所有学生的成绩降序排序,然后利用对分查找思想解决。他编写的代码如下,请完善划线处的代码。
cj =[654,643,621,612,609,606,...]#学生成绩存列表cj并已经降序排序
def dfsearch(key):
i =0; j=len(cj)-1
while i<=j:
m =(i+j)//2
if cj[m]>key:

else:
j-= 1
return ②
key = int(input('输入待查找的成绩'))
pos = ③
print('高于',key,'分的人数有',pos)

参考答案:1. ①处应填:i = m + 12. ②处应填:return j3. ③处应填:dfsearch(key)


2、37.比岁数问题
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。请问第五个人多大?
请运用递归算法完成以下代码。
def age(n):
​ if ① :
​ c = 10
​ else:
​ c = ②
​ return c
print(age( ③ ))

参考答案:```pythondef age(n):if n == 1:c = 10else:c = age(n-1) + 2return cprint(age(5))```


3、38.数学证明问题
上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。
实现上述功能的部分程序代码如下,请补充完成空白处的内容。
step = 1
midlist = []

def subwork(n):
​ global step
​ if n == 1:
​ return step
​ elif n % 2 == 0:
​ n = ①
​ midlist. append(n)
​ step += 1
​ subwork( ② )
​ return step
​ elif n % 2 != 0:
​ n = ③
​ midlist. ④
​ step += 1
​ subwork( ⑤ )
​ return step

cur_num = int(input("请输入一个数字:"))
subwork(cur_num)
print(midlist)
print(step)

参考答案:① n = n / 2② n // 2③ n = 3 * n + 1④ append(n)⑤ n // 2


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023月12月Python四级实操参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share