刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

37.成绩系统
小王同学编写了一个成绩录入和查询系统,能实现输入多个互不相同的分数,自动进行从高到低排名,同时输入要查询的分数,可以获得相应同学的姓名。程序运行结果如下图所示,实现代码如下,请你补全空缺处。
n=int(input("请输入总人数:"))
name=[""]*n
score=[0]*n
\#输入功能,分别输入姓名与分数
for i in range(n):
name[i]=input("请输入第"+str(i+1)+"个人名:")
​ ① =int(input("请输入第"+str(i+1)+"个分数:"))
\#排名功能
for i in range(n-1):
for j in range(0,n-1-i):
​ if score[j] ② score[j+1]:
​ score[j],score[j+1]=score[j+1],score[j]
​ name[j],name[j+1]=name[j+1],name[j]
print("——————各个同学分数排名如下——————")
print(name)
print(score)
\#查询功能
i=0

key=int(input("请输入要查询的分数:"))
b=-1
while i<=j and b==-1:
m=(i+j)//2
if score[m]==key:
​ b=m
elif score[m]<key:
​ j= ④
else:
​ i=m+1
if b==-1:
print("没有同学获得该分数!")
else:
print("分数为"+str(key)+"的同学是:"+ ⑤ )

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

这是一个关于成绩录入和查询系统的Python代码,需要补全空缺部分以实现相应的功能。我们来逐行解析代码并补全空白部分。

首先,需要创建一个列表来存储分数,并在循环中输入每个学生的分数。在第①处,我们需要将输入的分数存储在score列表中对应的位置,即score[i]。因此,该处的代码应为score[i]。

接下来是排名功能部分。这部分代码使用冒泡排序算法对分数进行排序,并将对应的名字也进行排序。在第②处,我们需要比较两个分数的大小以确定它们的排序顺序。因此,该处的代码应为">"表示大于。如果前一个分数大于后一个分数,则交换它们的位置。同时,名字列表中的对应元素也需要交换位置。排序完成后,打印出排名结果。

最后是查询功能部分。这部分代码使用二分查找算法查找指定分数的同学。在第③处,我们需要进入一个无限循环来执行查询操作。因此,该处的代码应为while True:。在循环中,根据输入的分数与中间值的比较结果来缩小查找范围。在第④处,如果中间值小于要查询的分数,那么查询范围缩小到中间值的右侧部分,因此该处的代码应为m-1。在找到匹配的分数后,打印出该分数的同学的姓名。在第⑤处,我们需要打印出找到的学生名字对应的名字列表中的元素,即name[b],其中b是找到的学生在列表中的位置索引。

创作类型:
原创

本文链接:37.成绩系统小王同学编写了一个成绩录入和查询系统,能实现输入多个互不相同的分数,自动进行从高到低排

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

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share