教科版(2019)选修一3.2数据的排列同步作业

2024-06-03
| 9页
| 78人阅读
| 0人下载

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术教科版选择性必修1 数据与数据结构
年级 -
章节 3.2 数据的排序
类型 作业-同步练
知识点 -
使用场景 同步教学-新授课
学年 2023-2024
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 64 KB
发布时间 2024-06-03
更新时间 2024-06-03
作者 匿名
品牌系列 -
审核时间 2024-06-03
下载链接 https://m.zxxk.com/soft/45562091.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

教科版(2019)选修一3.2数据的排列同步作业 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.在信息加工中,经常要对被处理的数据进行排序,数据的排序有多种方法,冒泡法是一种常用的排序方法,在排序时经常要进行数据的交换。下列四个选项中,(   )不能正确地将x和y两个变量中的数据进行交换。 A.x = y y = x x = x - y B.x = x + y y = x - y y = m C.m = x x = y x = y - x D.x = x - y y = x + y A.A B.B C.C D.D 2.已知列表a中包含100个随机数 (随机数的范围为0-9),现要输出每个数字在序列中的排名,数字越小,排名靠前 (从 1开始计数),且当数字大小相同时,排名相同,下一组数字的排名为当前数字排名加上当前数字的数量, 如列表a中部分数据为[9,2,1,6,2,6,1,9,7,2],则其排名依次为“9316361983”。实现该功能的程序段如下,方框中应填入的正确代码为(  ) b=[0]*10 for i in a: b[i]+= 1 print(s) A. B. C. D. for i in range(1,10): b[i]+=b[i-1] s="" for i in range(100): s+=str(b[a[i]])+"" c=[0]*10 for i in range(1,10): c[i]=b[i-1]+c[i-1] s="" for i in range(100): s+=str(c[a[i]]+1)+"" c=[0]*10 for i in range(1,10): c[i]=b[i-1]+c[i] s="" for i in range(100): s+=str(c[a[i]]+ 1)+"" c=[0]*10 for i in range(10): c[i]=b[i]+c[i-1] s="" for i in range(100): s+= str(c[i])+"" A.A B.B C.C D.D 3.有如下两段python程序 若数组a的元素为[34,33,25,46,17,77],则下列说法不正确的是(   ) A.两段程序的比较次数一样 B.两段程序的交换次数一样 C.两段程序的输出结果一样 D.两段程序都能实现数组a降序排序 4.某Python程序如下: s=[2,3,4,9,7,8,5] n=len(s) for i in range(n-1): for j in range(n-1,i,-1): if s[j]<s[j-1]: s[j],s[j-1]=s[j-1],s[j] 下列说法正确的是(    ) A.整个加工过程总的交换次数为21 B.该程序段执行后,s的值为[9,8,7,5,4,3,2] C.若s的初始值已有序,则该算法的时间复杂度为O(1) D.每一遍加工中,最小的元素“上浮” 5.有如下 python 程序段,运行该程序段后, 列表a 中的值可能是(   ) import random a = [] for i in range(6): a.append(random.randint(1,5)*2+i%2) for i in range(1,5): j = i;  k = a[j] while a[j-1]<k and j>0: a[j] = a[j-1] ; j=j-1 a[j] = k A.11,8,7,6,5,5 B.8,6,5,5,3,8 C.9,6,7,8,8,11 D.11,11,8,2,2,11 6.有如下程序段: a=[92,22,11,98,96,71] n=len(a) for i in range(n):     for j in range( ):         if a[j]>a[j+1]:             a[j],a[j+1]=a[j+1],a[j] print(a) 为实现n个数的升序排序,则划线处应填(    ) A.range(i-1) B.range(n-2,i-1,-1) C.range(i,n) D.range(n-1,n-i-2,-1) 7.现有三个整数序列:“1,2,3,4,5”“7,1,6,8,3”“9,8,7,6,5”。用选择排序算法分别对三个序列进行升序排序,比较次数依次为x、y、z,则下列关系正确的是(  ) A.x=y=z B.x>y>z C.y>z>x D.z>y>x 8.对“842715”中的数字进行选择排序中的两遍加工,即为某密码锁的密码,该密码可能是(    )。 A.124785 B.142785 C.842715 D.875412 9.分别采用选择和冒泡排序算法对数据序列“2,3,4,5,1,0”完成升序排序,则需要交换的次数分别为(   ) A.5次和9次 B.4次和12次 C.5次和15次 D.4次和18次 10.有如下程序: a=[6,1,5,7,4,8,3,2] for i in range(7):     k,f=i,(-1)**i     for j in range(i,8):         if a[j]*f>a[k]*f:             k=j     if i!=k:         a[i],a[k]=a[k],a[i] 该程序运行后,输出的a结果为(    ) A.[1,6,5,7,4,8,3,2] B.[1,8,2,7,3,6,4,5] C.[8,1,5,7,4,6,3,2] D.[8,1,7,2,6,3,5,4] 11.采用冒泡排序算法对数据序列“4,9,8,2,6,3”完成升序排序,则需要交换的次数为(  ) A.9 B.10 C.11 D.12 12.有程序段如下: Dim a(1 To 8) As Integer K = 8:n = 8 For i = 1 To 3     For j = i + 1 To n         If a(i) < a(j) Then             t = a(i): a(i) = a(j): a(j) = t         End If     Next j     For j = n - i To i + 1 Step -1         If a(k) > a(j) Then             t = a(k): a(k) = a(j): a(j) = t         End If     Next j     k = k - 1 Next i 数组元素a(1)~a(8)中的初始值为:8,13,7,14,6,9,5,12,执行该程序段后,数组元素a(1)~a(8)中的值将变为(   ) A.14,13,12,8,9,7,6,5 B.5,6,7,9,8,12,13,14 C.5,6,7,8,9,12,13,14 D.14,13,12,9,8,7,6,5 13.利用冒泡排序给数组[15,78,88,23,69,71,20,53]升序排序,第三遍冒泡加工之后的数据结果是(  ) A.[15,20,23,78,88,69,71,53] B.[15,20,23,53,78,88,69,71] C.[15,78,23,69,71,20,53,88] D.[15,23,69,71,20,53,78,88] 14.某食品连锁店5位顾客贵宾消费卡的积分依次为900、512、613、700、810,若采用选择排序算法对其进行从小到大排序,如下表,第二趟的排序结果是(    )。 原始数据 900 512 613 700 810 第一趟 512 900 613 700 810 第二趟 第三趟 512 613 700 900 810 第四趟 512 613 700 810 900 A.512 613 700 900 810 B.512 810 613 900 700 C.512 900 613 700 810 D.512 613 900 700 810 15.执行下列程序后,输出的内容是(  ) a=[3,9,6,8,4] for i in range(0,3):     for j in range(0,4-i):         if a[j]>a[j+1]:             t=a[j]             a[j]=a[j+1]             a[j+1]=t print(a[i],end=′ ′) A.3 4 6 B.6 8 9 C.3 6 4 D.3 6 6 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 【详解】本题考查排序方法。x=y;y=x;x=x-y。在执行第二行语句时,y已经被赋值为x的原始值,导致第三行的赋值操作出现问题,无法正确实现数据交换。故答案为:A。 2.B 【详解】本题考查的是桶排序。b[i]存放的是数字i的个数,可以设置10个桶c数列。数字越小,排名靠前 (从 1开始计数),且当数字大小相同时,排名相同,下一组数字的排名为当前数字排名加上当前数字的数量。故第一个循环循环体为: c[i]=b[i-1]+c[i-1]。故选B。 3.C 【详解】本题主要考查Python程序的执行与调试。分析程序可知,两个程序分别从前往后比较和从后往前比较,因此比较次数和交换次数相等,两段程序都能实现数组a降序排序,但第一个程序内层循环每次会将最小值放到最右边,第二个程序内层循环每次循环会将右边的最大值放到左边,因此最终的输出结果不相等。第一个程序的输出结果是“34,46,77,33,25,”;第二个程序输出结果是“77,46,34,33,25,”,故本题选C选项。 4.D 【详解】本题主要考查排序算法及Python程序实现。分析程序可知,该程序实现升序排序,整个加工过程总的交换次数为5次,分别是5和8、5和7、5和9、7和9、8和9;该程序段执行后,s的值为[2, 3, 4, 5, 7, 8, 9];若s的初始值已有序,但仍要执行循环进行比较,因此该算法的时间复杂度不可能为O(1);每一遍加工中,最小的元素“上浮”,故本题选D选项。 5.D 【详解】本题主要考查Python程序的执行与调试。分析程序可知,第一个for循环执行完,a[0]、a[2]、a[4]均为偶数,且最大值是10,a[1]、a[3]、a[5]均为奇数,且最大值是11。第二个嵌套for循环,一共进行4轮,即列表a中的前5个数参与排序,最后一个数是奇数且不参与排序,故排除选项B;实现的是降序排序,故排除选项C;前5个数应该有2个奇数和3个偶数,故排除选项A,故本题选D选项。 6.B 【详解】本题主要考查冒泡排序算法。分析程序,外层循环变量i的范围是0~n-1,该程序实现升序排序,比较的是索引j与j+1,内层循环可以从左往右比较每次将一个最大值放到最右边,代码为range(n-i-1);也可以从右往左比较交换,每次将一个最小值放到最左边从而实现升序排序,代码为range(n-2,i-1,-1),故本题选B选项。 7.A 【详解】本题考查的是选择排序。根据选择排序思想可知,不管数据是否已经有序,部分有序或是无序,选择排序还是要把每个数据都比较过去,最后选择出一个最小的数据(题目为升序),若选择出的这个最小数据本身位置不在第一个位置则进行交换,然后再剩下的数据中继续找到第二个小的数同样,如果不是本身自己第二个位置的数,则交换,依次类推,其总的比较次数为n*(n﹣1)/2次,由于三组数列中均为五个元素,故x=y=z故选:A。 8.A 【详解】本题考查的是选择排序。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。如果从左到右,按从大到小来选择排序,两遍加工后为:872415;如果从左到右,按从小到大来选择排序,两遍加工后为:124785;如果从右到左,按从大到小来选择排序,两遍加工后为:542178;如果从右到左,按从小到大来选择排序,两遍加工后为:845721;故本题应选A。 9.A 【详解】本题主要考查冒泡和选择排序算法。冒泡排序(Bubble Sort)将一个列表中的两个元素进行比较,并将最小的元素交换到顶部。两个元素中较小的会冒到顶部,而较大的会沉到底部,该过程将被重复执行,直到所有元素都被排序。选择排序(Select Sort) 是直观的排序,通过确定一个 Key 最大或最小值,再从待排序的的数中找出最大或最小的交换到对应位置,再选择次之。选择排序需要交换5次,第一次是5和0交换,变为2、3、4、0、1、5;第二次是4和1交换,变为2、3、1、0、4、5;第三次是3和0交换,变为2、0、1、3、4、5;第四次是2和1交换,变为1、0、2、3、4、5;第五次是1和0交换,变为0、1、2、3、4、5。冒泡排序需要9次交换,第一次是5分别和1、0交换,共2次,变为2、3、4、1、0、5;第二、三、四次是2、3、4分别和1、0交换,共6次,变为1、0、2、3、4、5;第五次是1和0交换,变为0、1、2、3、4、5,一共2+6+1=9次,故本题选A选项。 10.D 【详解】本题主要考查排序算法及Python程序实现。分析程序可知,该程序实现奇数位呈降序排序,偶数位呈升序排序,每次循环,当i是偶数时,则将剩余数中最大值移到左边i处;当i是奇数时,将剩余数中最小值移到左边i处从而实现排序。故该程序运行后,输出的a结果为[8,1,7,2,6,3,5,4],故本题选D选项。 11.B 【详解】本题主要考查冒泡排序算法。第一遍排序,9和8、9和2、9和6、9和3需要交换,排序后数据序列分别是4、8、2、6、3、9;第二遍循环,8和2、8和6、8和3需要交换,排序后数据序列分别是4、2、6、3、8、9;第三遍循环,2和4、6和3需要交换,排序后数据序列分别是2、4、3、6、8、9;第四遍循环,3和4需要交换,排序后数据序列分别是2、3、4、6、8、9,数据已有序,故需要交换的次数为4+3+2+1=10次,故本题选B选项。 12.A 【详解】本题考查排序算法。该循环将数据分为两部分,第一个内循环中,将第i(1-3)个数组值依次与后面数组的值进行比较,把后面最大的值替换到a(i);第二个内循环中,将后面数组进行冒泡排序,将最小值放在后面。执行程序后A选项符合要求,故选A。 13.B 【详解】本题主要考查冒泡排序。利用冒泡排序给数组[15,78,88,23,69,71,20,53]升序排序,第一遍冒泡加工之后的数据结果是[15,20,78,88,23,69,71,53],第二遍冒泡加工之后的数据结果是[15,20,23,78,88,53,69,71],第三遍冒泡加工之后的数据结果是[15,20,23,53,78,88,69,71],故本题选B选项。 14.D 【详解】本题主要考查冒泡排序算法。第一趟是比较900和512,第二趟比较900和613,并交换顺序实现升序排序,故第二趟的排序结果是512 613 900 700 810,故本题选D选项。 15.D 【详解】本题主要考查Python排序算法。当i=0时,执行完内层循环,a=[3,6,8,4,9],输出a[0]=3;当i=1时,执行完内层循环,a=[3,6,4,8,9],输出a[1]=6;当i=2时,执行完内层循环,a=[3,4,6,8,9],输出a[2]=6,故本题选D选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

教科版(2019)选修一3.2数据的排列同步作业
1
教科版(2019)选修一3.2数据的排列同步作业
2
教科版(2019)选修一3.2数据的排列同步作业
3
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。