教科版(2019)选择性必修1《3.2 数据的排序》2022年同步练习卷
发布:2024/4/20 14:35:0
一.选择题(共26小题)
-
1.采用冒泡排序算法对数据序列“4,9,8,2,6,3”完成升序排序,则需要交换的次数为( )
组卷:12引用:2难度:0.5 -
2.下列关于排序算法的描述,错误的是( )
组卷:6引用:3难度:0.5 -
3.有程序段如下:
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)中的值将变为( )组卷:2引用:2难度:0.5 -
4.某冒泡排序程序实现对n个数进行升序排序的VB程序段如下:
若要使程序完成升序排序,则上述横线处的可填写的正确代码是( )
①n To i+1 Step-1
②n-i To 2 Step-1
③n To 2 step-1
④1 To n-i
⑤i+1 To n-i
⑥2 To n-i+1组卷:6引用:2难度:0.5 -
5.采用冒泡排序算法对某数据序列进行排序,经过第一轮排序后的结果是“1,7,4,5,9,6,8”,那么原数据序列不可能是( )
组卷:2引用:2难度:0.5 -
6.某算法的VB程序段如下:
数组元素a(1)到a(6)的值依次为“17,79,93,55,15,13”,执行该程序段后,s的值是( )组卷:2引用:2难度:0.5 -
7.利用冒泡排序给数组[15,78,88,23,69,71,20,53]升序排序,第三遍冒泡加工之后的数据结果是( )
组卷:3引用:3难度:0.5 -
8.已知有这样一种对冒泡排序的优化方法:在每一遍“加工”过程中,记录在这遍“加工”中是否进行过数据交换。若在一遍“加工”过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是( )
组卷:2引用:2难度:0.6 -
9.有如下VB程序段:
d(1)=17:d(2)=13:d(3)=15:d(4)=12:d(5)=19:d(6)=16
t=2*Int(Rnd*3)+1
For i=t To 5
For j=1 To 6–i
If d(j)<d(j+1)Then tt=d(j):d(j)=d(j+1):d(j+1)=tt
Next j
Next i
执行该程序段后,d(1)~d(6)各元素的值不可能是( )组卷:6引用:2难度:0.5 -
10.有数据序列为“2,6,8,3,5,9,7”,经过一轮冒泡排序后的结果是“2,3,6,8,5,7,9”,那么还需要( )轮冒泡排序后,数据才能完全有序。
组卷:11引用:3难度:0.5 -
11.假定一组记录为(46,79,56,64,38,40,84,43),在冒泡排序的过程中,进行第一趟排序结束时,元素40不可能在哪个元素之后( )
组卷:9引用:3难度:0.5
三.简答题(共4小题)
-
34.某比赛项目由多位评委打分,然后根据项目难度系数计算最终得分。规则为:
最终得分=(所有评委打分总和-1个最高分-1个最低分)×项目难度系数
编写VB程序,实现计算最终得分的功能。在文本框Text1中输入项目难度系数和多位评委的打分,中间用“,”隔开并以“,”结尾,然后点击计算按钮,在文本框Text2中显示最终得分。程序运行界面如图所示。
(1)程序中计算按钮的对象名是
(2)实现上述功能的VB程序如下,请在横线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Private Sub Cmd1_Click
Dim a(1 To 100)As Single
Dim i As Integer,j As Integer,k As Integer,m As Integer,n As Integer
Dim Tot As Single,tmp As Single
Dim s As String,v As String,ch As String
s=Text1.Text
n=1:v=““
Do While n<=Len(s)
ch=Mid(s,n,1)
If ch<>“,“Then
v=v & ch
Else
a(m)=Val(v)
m=m+1
End If
n=n+1
Loop
For i=2 To m-2
For j=m-1 To i+1 Step-1
If a(i)<a(j) Then
tmp=a(i):a(i)=a(j):a(j)=tmp
End If
Next j
Next i
Tot=0
For i=1 Tom
Tot=Tot+a(i)
Next i
Text2.Text=
End Sub组卷:3引用:2难度:0.2 -
35.某校最近开设了10节不同内容的选修课,课的编号为1~10。每位同学只能选报一门课。事先让学生做过问卷调查并根据自己的兴趣爱好填写了选课报名志愿表(无重复),如某同学的报名志愿表为4,1,2,7,3,5,8,10,9,6,表示他最想选报的课的编号是4(第一志愿),其次为1(第二志愿),以此类推。学校根据每位学生的问卷调查得分及选课报名志愿表进行了分班,每班30人。
分班方法:优先满足问卷得分最高同学的第一志愿,如果该同学第一志愿所报名人数超过30人,则尝试满足其第二志愿,以此类推,直至该同学选课成功。
编写程序实现选课分配功能并统计各志愿录取率情况:单击读取按钮Command1后,在列表框List1中显示每位学生的相关信息。单击统计按钮Command2后,统计第X志愿录取人数及录取率的统计结果清单,显示在列表框List2中。程序界面如图a所示。实现上述功能的VB程序代码如下,请回答下列问题:
(1)代码“List2.AddItem”中的AddItem是
(2)在横线处填入合适代码。组卷:17引用:2难度:0.2