测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)


上一题 下一题