ID: 15636467

第五章 数据结构与算法 复习练习(Word版,含答案)2022—2023学年浙教版(2019)高中信息技术选修1

日期:2024-11-27 科目:信息技术 类型:高中试卷 查看:41次 大小:84485B 来源:二一课件通
预览图 1/5
第五,选修,信息技术,高中,2019,教版
  • cover
一.选择题(共30小题) 1.采用冒泡排序算法,对某数组数据进行排序,经过一轮后的结果是“2,3,9,5,6,7”,那么下列说法不正确的是(  ) A.这轮排序,有可能没发生数据交换 B.这轮排序,有可能只发生了1次数据交换 C.排序结束后,数据是升序的 D.完成全部排序后,数据交换的次数和冒泡的方向无关 2.有如下python程序: def count(a,i): for j in range(i+1,len(a)): if a[j]<a[j﹣1]: return j﹣i else: return len(a)﹣i a=list(map(int,input(  ).split(  )))#将输入的字符串按照空格符进行分割后转换为整型列表 b=[1]*len(a) for i in range(len(a)﹣1): b[i]=count(a,i) 运行该程序,若输入数据为‘1 2 2 4 7 6’,则b[1]的值为(  ) A.1 B.5 C.3 D.2. 3.数组a中的元素依次为[56,23,78,11,8] for i in range(0,2): for j in range(0,4﹣i): if a[j+1]<a[j]: a[j],a[j+1]=a[j+1],a[j] 执行上述Python程序段后,数组a中的元素依次为(  ) A.8,11,23,56,78 B.23,11,8,56,78 C.11,8,23,56,78 D.8,11,56,23,78 4.某数组d中的数据依次是[8,12,15,28,28,32,36,39],要查找某个元素是否在数组中,下列说法正确的是(  ) A.数组中有相同数据28,所以只能使用顺序查找 B.使用二分查找数据时,第1次查找的数据是d[3] C.使用二分查找任何查找键时,查找的次数最少3次 D.使用二分查找数据时,第2次查找的数据可能是d[1]或d[6] 5.有100个有序数据,使用二分查找查找键key,最多查找(  )次后查找结束。 A.4 B.5 C.6 D.7 6.有如下程序段: n=int(input(“请输入0﹣10范围内的整数“)) a=[56,45,43,34,26,76,90,13,15,21] ans=0 for i in range(n﹣1): for j in range(n﹣1,i,﹣1): if a[j]>a[j﹣1]: a[j],a[j﹣1]=a[j﹣1],a[j] ans+=1 print(ans) 若输入n的值为8,那么输出的值为(  ) A.2 B.11 C.4 D.﹣77 7.某二分查找算法的Python程序段如下: a=[8,17,24,30,36,40,55,58,61,66] key=int(input(  )) i,j=0,9 res=(  ) while i<=j: m=(i+j+1)//2 if key==a[m]: break elif key<a[m]: j=m﹣1 else: i=m+1 res.append(a[m]) print(res) 执行该程序段,当输入的值为30时,程序输出结果为(  ) A.[40,24] B.[40,24,36] C.[24,36] D.[36,17,24] 8.已知字符串数组a的原始数据为['128','26','9','61','15','2','318'],为了对该数组进行排序操作,小美编写了如下Python程序: for i in range(3): for j in range(6,i+1,﹣1): if a[j]<a[j﹣1]: a[j],a[j﹣1]=a[j﹣1],a[j] 则程序运行之后,数组a的值为(  ) A.['128','15','2','26','318','61','9'] B.['128','15','26','9','61','2','318'] C.['128','15','2','26','9','61','318'] D.['128','15','2','26','318','9','61'] 9.使用冒泡排序算法对数组排序,要求奇数和偶数各自按升序排序,其中奇数在前,偶数在后。例如,将数组a=[4,5,2,9,6,7,10,3,8,1],排序后a=[1,3,5,7,9,2,4,6,8,10]。如下Python程序能实现相关功能,则横线处应填入的代码为(  ) a=[4,5,2,9,6,7,10,3,8,1] for i in range(len(a)): for j in range(len(a)﹣1,i,﹣1): if: a[j],a[j﹣1]=a[j﹣1],a[j] A.a[j]%2==a[j﹣1]%2 and a[j]<a[j﹣1]or a[j]%2<a[j﹣1]%2 B.a[j]%2==a[j﹣1]%2 and a[j]<a[j﹣1]or a[j]%2>a[j﹣1]%2 C.a[j]%2==a[j﹣1]%2 or a[j]<a[j﹣1 ... ...

~~ 您好,已阅读到文档的结尾了 ~~