试题 试卷
题型:单选题 题类:常考题 难易度:困难
《冒泡排序》同步练习
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n=10
Private Sub Form_Load()
‘排序前数据存储在数组a中,并在文本框Text1中显示
‘代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer
Dim bottom As Integer
Dim j As Integer
Dim a(1 To n)As Integer
i=1
bottom=n
Do While i<bottom
k=i
j=i+1
Do While i<=bottom
If a(j)=a(k)Then
a(i)=a(bottom)
‘(1)
bottom=bottom-1
E1seIf a(j)<a(k) Then
k=j
End If
j=j+1
Loop
If Then ‘(2)
t=a(i)
a(i)=a(k)
a(k)=t
i=i+1
‘排序后数据存储在数组a中,并在文本框Text2中显示
以下程序实现了冒泡排序的优化,请在划线处填写合适的代码。
Dim n As Integer
Dim a (1 to 100) As Integer
‘n=10,排序前生成的数据存储在数组a中,并在列表框List1中显示
Dim i As Integer, j As Integer, start As Integer, t As Integer
{#blank#}1{#/blank#}
Do While i < n
start = n
For j = n To i Step {#blank#}2{#/blank#}
If a(j) < a(j - 1) Then
t = a(j): {#blank#}3{#/blank#} : a(j - 1) = t
start = j
Next j
{#blank#}4{#/blank#}
For i = 1 To n
List2.AddItem Str(a(i))
Next i
如数据25 54 8 54 21 排序过程如下(n=5):
待排序数据:【25】 54 8 54 21
i=2:【25 54】 8 54 21
i=3:【8 25 54】 54 21
i=4:【8 25 54 54】 21
i=5:【8 21 25 54 54】
程序产生10个-100~100之间的整数,从小到大排序后输出,运行结果如图所示:
实现上述功能的VB程序代码如下,但加框处代码有错,请改正。
Dim a(0 To 10) As Integer
Private Sub Command1_Click()’产生10个随机数放在数组a中
For i = 1 To 10
‘①
List1.AddItem Str(a(i))
Private Sub Command2_Click()
Dim i As Integer, j As Integer
For i = 2 To 10
a(0) = a(i)
j = i - 1
Do While a(0) < a(j)
‘②
j = j - 1
a(j + 1) = a(0)
①处的代码修改为{#blank#}1{#/blank#}。
②处的代码修改为{#blank#}2{#/blank#}。
If temp >= a(n) Then
a(n + 1) = temp
Else
j = n
Do While j >= 1 And temp < a(j)
①
j = j -1
②
tail=6: i=1: r=2
Do While i<r
For j= tail To i+1 Step-1
If a (j)> a(j-1) Then
t=a(j):a(j)=a(j-1):a(j-1)=t
For j=i To tail-1
If a(j)<a(j+1) Then
t=a(j):a(j)=a(j+1):a(j+1)=t
tail=tail-1
数组元素值“73、56、28、61、44、92”,运行程序,数组元素a(1)到a(6)的值依次为( )
试题篮