教科版(2019)選擇性必修1《3.2 數(shù)據(jù)的排序》2022年同步練習(xí)卷
發(fā)布:2024/4/20 14:35:0
一.選擇題(共26小題)
-
1.采用冒泡排序算法對數(shù)據(jù)序列“4,9,8,2,6,3”完成升序排序,則需要交換的次數(shù)為( ?。?/h2>
組卷:12引用:2難度:0.5 -
2.下列關(guān)于排序算法的描述,錯誤的是( ?。?/h2>
組卷: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
數(shù)組元素a(1)~a(8)中的初始值為:8,13,7,14,6,9,5,12,執(zhí)行該程序段后,數(shù)組元素a(1)~a(8)中的值將變?yōu)椋ā 。?/h2>組卷:2引用:2難度:0.5 -
4.某冒泡排序程序?qū)崿F(xiàn)對n個數(shù)進行升序排序的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.采用冒泡排序算法對某數(shù)據(jù)序列進行排序,經(jīng)過第一輪排序后的結(jié)果是“1,7,4,5,9,6,8”,那么原數(shù)據(jù)序列不可能是( ?。?/h2>
組卷:2引用:2難度:0.5 -
6.某算法的VB程序段如下:
數(shù)組元素a(1)到a(6)的值依次為“17,79,93,55,15,13”,執(zhí)行該程序段后,s的值是( ?。?/h2>組卷:2引用:2難度:0.5 -
7.利用冒泡排序給數(shù)組[15,78,88,23,69,71,20,53]升序排序,第三遍冒泡加工之后的數(shù)據(jù)結(jié)果是( ?。?/h2>
組卷:3引用:2難度:0.5 -
8.已知有這樣一種對冒泡排序的優(yōu)化方法:在每一遍“加工”過程中,記錄在這遍“加工”中是否進行過數(shù)據(jù)交換。若在一遍“加工”過程中沒有進行過數(shù)據(jù)交換,則數(shù)據(jù)已經(jīng)有序,可以直接退出循環(huán)結(jié)束排序。則下列說法錯誤的是( ?。?/h2>
組卷: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
執(zhí)行該程序段后,d(1)~d(6)各元素的值不可能是( ?。?/h2>組卷:6引用:2難度:0.5 -
10.有數(shù)據(jù)序列為“2,6,8,3,5,9,7”,經(jīng)過一輪冒泡排序后的結(jié)果是“2,3,6,8,5,7,9”,那么還需要( ?。┹喢芭菖判蚝?,數(shù)據(jù)才能完全有序。
組卷:11引用:3難度:0.5 -
11.假定一組記錄為(46,79,56,64,38,40,84,43),在冒泡排序的過程中,進行第一趟排序結(jié)束時,元素40不可能在哪個元素之后( ?。?/h2>
組卷:9引用:3難度:0.5
三.簡答題(共4小題)
-
34.某比賽項目由多位評委打分,然后根據(jù)項目難度系數(shù)計算最終得分。規(guī)則為:
最終得分=(所有評委打分總和-1個最高分-1個最低分)×項目難度系數(shù)
編寫VB程序,實現(xiàn)計算最終得分的功能。在文本框Text1中輸入項目難度系數(shù)和多位評委的打分,中間用“,”隔開并以“,”結(jié)尾,然后點擊計算按鈕,在文本框Text2中顯示最終得分。程序運行界面如圖所示。
(1)程序中計算按鈕的對象名是
(2)實現(xiàn)上述功能的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.某校最近開設(shè)了10節(jié)不同內(nèi)容的選修課,課的編號為1~10。每位同學(xué)只能選報一門課。事先讓學(xué)生做過問卷調(diào)查并根據(jù)自己的興趣愛好填寫了選課報名志愿表(無重復(fù)),如某同學(xué)的報名志愿表為4,1,2,7,3,5,8,10,9,6,表示他最想選報的課的編號是4(第一志愿),其次為1(第二志愿),以此類推。學(xué)校根據(jù)每位學(xué)生的問卷調(diào)查得分及選課報名志愿表進行了分班,每班30人。
分班方法:優(yōu)先滿足問卷得分最高同學(xué)的第一志愿,如果該同學(xué)第一志愿所報名人數(shù)超過30人,則嘗試滿足其第二志愿,以此類推,直至該同學(xué)選課成功。
編寫程序?qū)崿F(xiàn)選課分配功能并統(tǒng)計各志愿錄取率情況:單擊讀取按鈕Command1后,在列表框List1中顯示每位學(xué)生的相關(guān)信息。單擊統(tǒng)計按鈕Command2后,統(tǒng)計第X志愿錄取人數(shù)及錄取率的統(tǒng)計結(jié)果清單,顯示在列表框List2中。程序界面如圖a所示。實現(xiàn)上述功能的VB程序代碼如下,請回答下列問題:
(1)代碼“List2.AddItem”中的AddItem是
(2)在橫線處填入合適代碼。組卷:16引用:2難度:0.2