试题 试卷
题型:单选题 题类:常考题 难易度:困难
《冒泡排序》同步练习
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n=10
Dim a(1 To n)As Integer
Private Sub Form_Load()
‘获取排序前数据,并依次存储在数组a中,并在文本框Text1中显示。代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer,t As Integer
Dim top As Integer
top=1
For i=1 To n-1
For j= To n-1 ‘⑴{#blank#}1{#/blank#}
If a(i)>a(j+1)Then
t=a(j):a(j)=a(j+1):a(j+1)=t
ElseIf a(j)=a(j+1)Then ‘相邻两个数据相等,由前面数据对进行覆盖处理
‘⑵{#blank#}2{#/blank#}
top=top+1
End If
Next j
Next i
Text2.Text=“ ”
For i=top To n
Text2.Text=Text2.Text+Str(a(i))
Dim a(1 To 10) As Integer
Dim s As String, n, i As Integer
s = "54851845236": n = Len(s)
For i = 1 To n - 1
a(i) = Val(Mid(s, i, 2))
For i = 1 To n - 2
k = i
For j = i + 1 To n - 1
If a(k) < a(j) Then k = j
Next
If k <> i Then
t = a(k): a(k) = a(i): a(i) = t
Text1.Text = Str(a(1))
该程序段运行后,文本框 Text1 中显示的内容是:( )
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
For i=1 To 7
For j=i+1 To 8
If a(j)>a(k) And a(j)>85 Then k=j
If k<>i Then t=a(i): a(i)=a(k): a(k)=t
数组元素a(1)到a(8)的原始数据依次为“89,70,79,85,99,80,82,74”,则第3遍“加工”后数组元素a(1)到a(8)的数据依次是( )
n = Val(Text1.Text)
For i = 1 to n
a(i) = i
For i = 1 to n/2-1
For j = n to 2*(i+1) step -2
If ① Then t = a(j):a(j)=a(j-2):a(j-2)=t
For j = 1 to n- i*2 step 2
If ② Then t = a(j):a(j)=a(j+2):a(j+2)=t
图a
试题篮