
浙教版(2019)选修一5.3数据排序同步练习 学校:_____姓名:_____班级:_____考号:_____ 一、选择题 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.数组L长度为n,要实现数组元素L[a]至L[b]升序排列(0≤a=0 and abs (a[j]-2)>abs(k-2): a[j+1]=a[j] j-=1 a[j+1]=k 执行该程序段后,列表a的值可能是( ) A.[-5,-2,4,0,1] B.[3,-1,0,2,-3] C.[1,2,3,4,5] D.[0,4,0,-2,-4] 5.用数组a和b存储两个降序序列,用数组c存储合并后的降序序列。如a=[19,16,12,8,5],b=[20,15,14,10,6],c=[20,19,16,15,14,12,10,8,6,5]。实现该功能的程序段如下: c=[-1]*(len(a)+len(b)) p=0;tot=len(a) for i in range(len(a)): (1) for i in range(len(b)): while b[i] < c[p]: p +=1 if c[p]==-1: c[p]=b[i];tot+=1 else: for j in range( (2) ): c[j+1]=c[j] c[j]c[p]=b[i] tot+=1 上述程序段划线处可选代码为: ①c.append(a[i]) ②c[i]=a[i] ③tot,p-1,-1 ④tot,p;-1 ⑤tot-1,p-1,-1 则(1)(2)处的代码依次为( ) A.①③ B.①④ C.②⑤ D.②③ 6.采用冒泡排序对数据6,7,9,2,1,8,5,4进行升序排序,则排序完成时共进行数据交换的次数为( ) A.15 B.16 C.17 D.18 7.若采用冒泡排序对数据1,19,6,7,2,8,23,15进行排序处理,则第二遍加工后的结果是( ) 原始数据 1 19 6 7 2 8 23 15 第一遍加工后 23 1 19 6 7 2 8 15 第二遍加工后 … A.23,19,1,15,8,6,7,2 B.23,19,1,15,6,7,2,8 C.23,19,15,1,6,7,2,8 D.23,19,15,8,1,6,7,2 8.下列Python程序段的功能是对数组a中的元素进行升序排序: #输入10个数据,并存储在数组a中,代码省略 n=len(a) for i in range( ① ): for j in range( ② ): if a[j]>a[j-1]: a[j],a[j-1]=a[j-1],a[j] 程序中划线①②处应填写的正确语句是( ) A.①0 n ... ...
~~ 您好,已阅读到文档的结尾了 ~~