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

2024-06-05
| 10页
| 60人阅读
| 0人下载

资源信息

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

内容正文:

教科版(2019)选修一3.2数据的排列同步训练 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.将数组a 中的 8 个数据“ 18, 33, 5, 26, 86, 0, 60, 200”按从大到小的顺序,使用选择排序,则需要交换的次数是(    ) A.4 B.5 C.6 D.7 2.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位参加竞标,竞标价分别为19万、15万、21万、13万、12万元人民币。 若采用选择排序算法对标价从大到小排序,需要进行数据互换的次数是(    ) A.1 B.2 C.3 D.4 3.某学校举行校园歌手比赛,数组a存放歌手的得分,数组mc存放名次。名次计算规则为:先对数组a中的元素按高到低的排序,分值最高为第1名,分值相同则名次相同。VB程序段的部分代码如下: For i = 1 To 19 For j = 20 To i + 1 Step -1 If① Then t =a(j): a(j)=a(i): a(i)=t Next j Next i mc(1) =② For i = 2 To 20 If a(i) < > a(i - 1) Then③ Else④ Next i 下列①②③④代码正确的是(    ) A.①处代码为 a(j) < a(i) B.②处代码为 i C.③处代码为 mc(i) = mc(i + 1) D.④处代码为 mc(i) = mc(i - 1) 4.有如下 VB 程序段: s = "26170534": n = Len(s): y = "" For i = 1 To n ch(i) = Mid(s, i, 1) Next i For i = 1 To n k = i For j = i To n Step 2 If ch(j) < ch(k) Then k = j Next j If k <> i Then t=ch(k): ch(k)=ch(i): ch(i)=t y = y &amp; ch(i) Next i Label1.Caption = y 该程序段运行后,标签Label1中显示的内容是(    ) A.0123 B.4567 C.01234567 D.04152637 5.有如下VB程序段,若数组元素d(l)〜d(6)的值分别为:“f”、“a”、“t”、“h”、“e”、“r”,在文本框Textl中输入3,则该程序运行结束后,标签Labell中显示的内容为(    ) n = Val(Text1.Text) s = d(n) For i = 1 To 5 For j = 6 To i + 1 Step -1 If d(j)<d(i)Then t = d(j):d(j)= d(i): d(i) = t If i = n Then s = s + "-" + d(i) If j = n Then s = s + "-" + d(j) End If Next j Next i Label1.Caption = s A.t-a-r-f-h B.t-r-f C.t-e-f D.t-r-h 6.有如下程序: S="" For i=1 to 3 For j=7 to i+1 step -1 If a(j)<a(j-1) then K=a(j):a(j)=a(j-1):a(j-1)=k End if Next j        s=s+str(a(i)) Next i Text1.text= s 数组元素a(1)到a(7)的数据依次为“4,15,11,7,9,16,12”经过该程序段“加工”后,文本框text1中显示的内容是(    ) A.4  7  9 B.16   15  12 C.4   15   11   7 D.4  7  9  11 7.有如下程序段 Dim a(1 To 6) As String i = 6 Text1.Text = "" Do While i > 1    k = i    For j = 1 To i - 1    If a(k) < a(j) Then k = j    Next j    tmp = a(k): a(k) = a(i): a(i) = tmp    Text1.Text = a(i)    i = i - 1 Loop 其中数据元素 a(1)到 a(6)的值依次为“12”、“34”、“8”、“9”、“77”、“23”,执行该程序段后,文本框 Text1 中显示的内容为 A.9 B.8 C.12 D.23 8.下列VB程序段实现以下功能,产生10个1~100之间的随机整数存储数组a中,引入一个数组 b,使得a(b(i))升序,即a(b(1) )≤a(b(2) )≤a(b(3))......≤a(b(9))≤a(b(10))。 For i= 1 To 10 ___(1)___ a(i)= Int(Rnd() *100)+1 Next i For i= 1 To 9 For j = 10 To i+ l step -1 If (2) Then t=b(j): b(j)= b(j-1): b(j-1)=t Next j Next i 上述程序段个划线处的代码分别为 A.(1)b(i) =i  (2)a(b(j))<a(b(j-1)) B.(1)b(i)= i   (2)b(j)<b(j-1) C.(1)b(i)=1   (2)a(b(j))<a(b(j-1)) D.(1)b(i)= 1   (2)b(j)<b(j-1) 9.对一组数据采用冒泡排序算法进行排序,若第一趟排序完成后的数据序列为:31,24,23,15,20,10,则该数据序列的原始顺序不可能的是(   ) A.24,23,15,31,10,20 B.24,23,15,20,31,10 C.24,31,23,15,10,20 D.23,24,15,20,31,10 10.有如下VB程序段 Dim a(1 To 6)As Integer For i=1 To 6     a(i)=Int(Rnd()*45)*2+10 Next i For i=1 To 2     For j=2 To 6-i       If a(j)\10〉a(j-1)\10 Then         temp=a(j):a(j)=a(j-1):a(j-1)=temp       End If     Next j Next i 执行上述程序段后,下列选项中,a(1)到a(6)各元素值可能的是(      ) A.84,98,93,84,62,30 B.70,60,10,28,18,14 C.34,44,36,14,16,94 D.74,32,66,46,38,28 11.有如下VB程序段: 生成6个随机正整数,依次存入数组元素a(1)到a(6),代码略 For i = 1 To 5 k = i For j = 5 To i + 1 Step -1 If a(k) Mod 2 <= a(j) Mod 2 Then k = j Next j If k <> i Then t = a(k): a(k)= a(i): a(i)= t Next i 执行该程序段后,a(1)到a(6)各元素值可能的是(    ) A.3, 7, 4, 4, 5, 8 B.2, 4, 6, 8, 10, 12 C.1, 3, 7, 2, 6, 3 D.1, 3, 5, 2, 4, 6 12.采用选择排序算法对数据系列“1,3,5,2,4,0”完成降序排序,则需要交换的次数为(   ) A.2次 B.3次 C.4次 D.5次 13.采用冒泡排序算法对数据序列“8,7,2,3,9,6,5”完成升序排序,排序2趟后,正确的顺序是(   ) A.2,3,8,7,5,6,9 B.2,3,8,7,9,6,5 C.2,3,5,6,7,8,9 D.2,3,7,5,6,8,9 14.有如下VB程序段: a(1)=7:a(2)=3:a(3)=5:a(4)=2:a(5)=9:a(6)=6 p=2*Int(Rnd*3)+1 For i= p To 5 k=i For j=i+1 To 6 If a(j) < a(k) Then k=j Next j If k <>i Then temp=a(i):a(i)=a(k):a(k)=temp End If Next i 执行该程序段后,a(1)~a(6)各元素的值不可能是(   ) A.7,3,5,2,6,9 B.7,3,2,5,6,9 C.7,2,3,5,6,9 D.2,3,5,6,7,9 15.有如下 VB 程序段: For i = 1 To 8 a(i) = Int(Rnd * 7) + 1 Next i For i = 1 To 3    For j = 1 To 8 - 2 * i      If a(j) Mod 7 > a(j + 2) Mod 7 Then               t = a(j): a(j) = a(j + 2): a(j + 2) = t      End If       Next j Next i For i = 1 To 8    ch(i) = Chr(a(i) + Asc("A") - 1) Next i 执行该程序段后,ch(1)~ch(8)各元素值不可能的是(   ) A.AACBFBFE B.GGABCDDE C.ABBBCDDE D.ABBCDDEG 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题主要考查选择排序算法。第一次交换200和18,交换后变为“ 200, 33, 5, 26, 86, 0, 60,18”,第二次交换86和33,交换后变为“ 200,86, 5, 26, 33, 0, 60,18”,第三次交换5和60,交换后变为“ 200,86,60, 26, 33, 0, 5,18”,第四次交换26和33,交换后变为“ 200,86,60,33, 26, 0, 5,18”,第五次交换0和18,交换后变为“ 200,86,60,33, 26, 18, 5,0”,故使用选择排序,则需要交换的次数是5,故本题选B选项。 2.B 【详解】本题主要考选择排序算法。选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。21万和15万需要交换一次,21万和19万需要交换依次,故需要进行数据互换的次数是2,故本题选B选项。 3.D 【详解】本题主要考查排序算法知识点。分析程序可知,①处通过嵌套for循环比较a(i)与a(j)的大小,实现降序排序,若a(i)<a(j),就交换,故此处填a(i)<a(j)。②第一名的名次初始化为1,即mc(1)=1。③此处若相邻的分数不相同,则第i位的名次为i-1位的名次加1,故此处填mc(i)=mc(i-1)+1。④如果相邻的分数相同,则名次相同,即mc(i) = mc(i - 1),故本题选D选项。 4.D 【详解】本题主要考查VB程序排序知识点。i等于1时,第一遍循环后,s= "06172534",y=ch(1)="0",i等于2时,第二遍循环后,s= "04172536",y= y &amp; ch(2)=“04”,排除A、B、C选项,依此类推,程序结束时,y="04152637",故该程序段运行后,标签Label1中显示的内容是04152637,故本题选D选项。 5.B 【详解】本题主要考查VB程序的执行。n=3,s=d(3)="t",i=1时, 内层循环完,d(l)〜d(6)的值分别为:“a”、“e”、“t”、“h”、“f”、“r”,s="t",i=2时,内层循环完,无交换,i=3时,内层循环完,d(l)〜d(6)的值分别为:“a”、“e”、“f”、“h”、“r”、“t”,s="t-r-f",已完成升序,后面再无交换,故该程序运行结束后,标签Labell中显示的内容为t-r-f,故本题选B选项。 6.A 【详解】本题主要考查VB程序的执行。i=1时,执行内层循环后数组元素a(1)到a(7)的数据依次为“4,7,15,11,9,12,16”,s=s+str(a(1))=“4”,i=2时,执行内层循环后数组元素a(1)到a(7)的数据依次为“4,7,9,15,11,12,16”,s=s+str(a(2))=“4 7”,i=3时,执行内层循环后数组元素a(1)到a(7)的数据依次为“4,7,9,11,15,12,16”,s=s+str(a(3))=“4 7 9”,程序结束,故经过该程序段“加工”后,文本框text1中显示的内容是4 7 9,故本题选A选项。 7.A 【详解】本题主要考查排序算法。该程序通过for循环实现数组的升序,每次内层循环完,更新Text1.Text 的值,故程序结束后,文本框 Text1 中显示的内容为程序结束时a(2)的值,程序结束后,数据元素 a(1)到 a(6)的值依次为“8”、“9”、“12”、“23”、“34”、“77”,故a(2)=9,故本题选A选项。 8.A 【详解】本题主要考查VB程序的执行。数组b为数组a的10个下标,故第一个for循环将数组b(1)到b(10)分别赋值为1到10,第二个嵌套for循环完成数组a的升序排序,当a(b(j))<a(b(j-1))时,进行交换,故上述程序段个划线处的代码分别为(1)b(i) =i (2) a(b(j))<a(b(j-1)),故本题选A选项。 9.D 【详解】本题主要考查冒泡排序算法。冒泡排序是重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。第一趟排序完成后的数据序列为:31,24,23,15,20,10,最大值在左边,最小值在右边,所以是降序排序,A选项从右端开始比较,将最大值放到左边,可得到题干顺序,B和C选项同理,D选项第一趟排完后是31,23,24,15,20,10,故本题选D选项。 10.C 【详解】本题考查VB排序程序相关知识点 Int(Rnd()*45)*2+10生成的是[10,100)的两位数,第一个for循环实现给a(1)到a(6)随机赋值。第二个for循环嵌套实现两次排序(比较两位数的十位大小),当i=1时,a(1)到a(5)参与降序排序,i=2时,a(1)到a(4)参与降序排序。所以当序列为34,36,14,44,16,94时执行完程序后,得到的序列就是C选项。故本题选C选项 11.B 【详解】本题考查排序算法相关知识。从双重For循环可知,此处是选择排序,选择排序将所选出的数值放入指定的位置。根据内循环中If a(k)Mod 2 <= a(j)Mod 2 Then k=j,可知选出除以2余数最小的数字,除以2的余数是0或者1,若数组中有偶数,则排序后排在最前面的一定是偶数。选项ACD,数组中都有偶数,但没有排在前面,故错误,选项B数组全都是偶数,则该排序可能,故本题选B。 12.B 【详解】本题主要考查选择排序算法知识点。选择排序:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾,以此类推,直到全部待排序的数据元素的个数为零。第一次5和1进行交换,交换后为5,3,1,2,4,0,第二次是3和4进行交换,交换后为5,4,1,2,3,0,第三次是1和3进行交换,交换后是5,4,3,2,1,0,已完成降序排序,故需要交换的次数是3次,故本题选B选项。 13.A 【详解】本题主要考查冒泡排序算法。冒泡排序,它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来,走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。排序第1趟后,顺序为2,8,7,3,5,9,6,排序第2趟后,顺序为2,3,8,7,5,6,9,故本题选A选项。 14.C 【详解】本题考查VB程序段。根据代码p=2*Int(Rnd*3)+1,可知p的取值是1,3,5。双重For循环是选择排序,并且是一个升序排序,若p=1,For i=1 To 5,实现全部排序,排序后a(1)至a(6)各元素的值是2,3,5,6,7,9。若p=3,For i=3 To 5,a(3)至a(6)实现升序排序,排序后a(1)至a(6)各元素的值是7,3,2,5,6,9。若p=5,则For i=5 To 5,a(1)至a(6)各元素的值和初始值一样。故本题a(1)至a(6)各元素的值不可能是选项C的数值,本题选C。 15.D 【详解】本题考查VB程序段,冒泡排序相关知识。可先将选项根据字母关系转化为数字,则A:11326265,B:77123445,C:12223445,D:12234457。从第一段For循环可知,a(i)的范围是[1,7],第二段For循环是一个类似的冒泡排序过程,由For j=1 To 8-2*i和If a(j) Mod 7 >a(j + 2)Mod 7可知,数组奇数项和偶数项分别升序排序,并且根据除以7的余数大小,进行排序,由此判断,选项ABC都可能出现,而选项D:12234457,最后一项除以7的余数是0,显然不应该在最后,故本题ch(1)至ch(8)各元素值不可能的是选项D的字母,故选D。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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