A38130. 某班“天天向上”小组共有 6 个同学, 姓名和身高数据分别存放在列表 a 中, 编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:程序代码如下, 请在划线处补充完整:a=[["李洪全",135],["王倩倩",154],["吴乐天",148],["周立新",165],["鲁正",158],["杨颖颖",150]]for i in range(1,len(a)): for j in r…
填空题
中等
知识点
题目描述
某班“天天向上”小组共有 6 个同学, 姓名和身高数据分别存放在列表 a 中, 编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:

程序代码如下, 请在划线处补充完整:
a=[["李洪全",135],["王倩倩",154],["吴乐天",148],["周立新",165],["鲁正",158],["杨颖颖
",150]]
for i in range(1,len(a)):
for j in range(0, ____①____ ):
if a[j][1] ____②____ a[j+1][1]:
a[j],a[j+1]=a[j+1],a[j]
print("小组名单是: ")
for i in range(len(a)):
print( ____③____ )
参考答案
a=[["李洪全",135],["王倩倩",154],["吴乐天",148],["周立新",165],["鲁正",158],["杨颖颖",150]]
for i in range(1,len(a)):
for j in range(0, len(a)-i):
if a[j][1] < a[j+1][1]:
a[j],a[j+1]=a[j+1],a[j]
print("小组名单是: ")
for i in range(len(a)):
print(a[i][0])答案解析
试题解析:
本题考查冒泡排序算法。 从外循环看, 6 个元素排 5 趟, 应该能全部排整齐。 内循环每趟主要从第一个元素开始, 相邻元素两两相比,i=1 时, j 最终取到 4,i=2 时,j 最终取到 3, i=3时, j 最终取到 2, i=2 时, j 最终取到 1, i=1 时, j最终取到0, 由于 range()的终值是取不到的, 故第一空应填 len(a)-i; 根据题目从高到低的要求, 若前一个数小于后一个数, 则应将其往后移, 故第二空应为”<”; 由输出结果观察可知, 只需要输出排序后列表中的姓名部分, 故第三空应填 a[i][0]。
评分标准:
(1) len(a)-i; (4 分)
(2) <; (3 分)
(3) a[i][0]。 (3 分)
上一题
下一题