资源简介 / 让教学更有效 精品试卷 | 信息第8课 课后练习(学生用)班级:____________ 姓名:____________ 得分:__________一、填空(每空 3 分,共 24 分)1.a = [3, 1, 4, 2],执行 a.sort() 后 a 的值是 ______________。2.对 a 使用 sorted(a, reverse=True) 会得到从 ______ 到 ______ 排列的新列表,原列表 a ______(会 / 不会)改变。3.冒泡排序中,外层循环控制 ______________,内层循环负责 ______________。4.交换 a[j] 与 a[j + 1] 的 Python 写法是:______________。5.b = [[1, 2], [3, 4]],则 b[1][0] 的值是 ______。6.顺序查找时,常用 pos = ______ 表示「还没有找到」。二、判断对错(每题 3 分,共 12 分)1.a.sort() 会返回一个排好序的新列表,可以用 b = a.sort() 接住。( )2.冒泡排序的内层循环范围写成 n-1-i,是因为后面 i 个元素已经排好了。( )3.数组 a = [5, 3, 8],执行一轮冒泡后变为 [3, 5, 8]。( )4.二维列表 a[i][j] 中,i 表示行、j 表示列。( )三、手算模拟题(14 分)对 a = [4, 2, 7, 1] 使用冒泡排序,请写出每一轮结束后的列表。轮次 本轮比较过程 本轮结束后 a第 1 轮第 2 轮第 3 轮结论:排序后 a = ____________________,一共比较了 ______ 次。四、★ 补全代码(每空 5 分,共 20 分)第 1 题 把列表从大到小排序并输出。a = [88, 92, 75, 60, 95]a.sort(reverse=①______) # 填 True 或 Falseprint(a)第 2 题 用冒泡排序把列表从小到大排序。a = [5, 3, 8, 1, 9]n = len(a)for i in range(n - 1):for j in range(②________):if a[j] > a[j + 1]:a[j], a[j + 1] = ③____________________第 3 题 顺序查找。a = [88, 92, 75, 60]target = int(input())pos = -1for i in range(len(a)):if a[i] == target:pos = ibreakif pos == ④______:print("没有找到")else:print("第", pos + 1, "个")① ______ ② ______ ③ ______ ④ ______五、★★ 提高题(每题 10 分,共 30 分)第 1 题 一题两解(对比 sort 与冒泡)输入 5 个整数,用两种方法分别得到从小到大排序的结果:① 直接调用列表的排序方法;② 自己写冒泡排序。在下面写出两段代码,并说明各自的优缺点。______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________优缺点:① ______________________________________________________________________________________________________________________________________________________________________________________ ② ______________________________________________________________________________________________________________________________________________________________________________________第 2 题 读程序写结果a = [9, 4, 6, 2]for i in range(len(a) - 1):for j in range(len(a) - 1 - i):if a[j] < a[j + 1]: # 注意这里是小于号!a[j], a[j + 1] = a[j + 1], a[j]print(a)输出结果:____________________。想一想:把大于号改成小于号,排序结果有什么变化?____________________________________________________________________________________________________________________________第 3 题 边界测试下面这段找最大值的代码,对下面哪组数据会出错?为什么?怎么改?a = [7, 3, 5]m = 0for x in a:if x > m:m = xprint(m)测试数据:① [7, 3, 5] ② [-7, -3, -5] ③ [0, 0, 0]会出错的是第 ______ 组。原因:________________________________________________________________________________________________________________________________________________________________改正方法:______________________________________________________________________________________________________________________________________________________________________________________六、★★★ 挑战题(每题 12 分,共 24 分)第 1 题 学生成绩排名录入 n 个学生的姓名与语文、数学两科成绩(用二维列表保存),要求:① 输出每个学生的姓名和总分;② 按总分从高到低排出名次并输出。提示:可以先用二维列表 a[i] = [姓名, 语文, 数学],再想办法按 a[i][1] + a[i][2] 排序。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________第 2 题 有序列表的查找优化已知列表已经从小到大排好序,请思考:有没有比「一个一个比」更快的查找办法?如果用「先看中间那个数」的办法,最多需要比较几次就能确定目标在不在?以 1~100 的 100 个数为例说明你的思路。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________教师评语:____________________________________________________________________________________________________________________________________21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源预览