(加试题)下列VB程序的功能是:程序运行时,单击命令按钮Commandl后,产生10个[1,999]范围内互不相同的随机整数,依次显示在列表框List1中,然后将它们按从小到大的顺序排序,排序结果显示在列表框List2中。
数组a用于存储产生的10个随机整数,函数f(x)用于判断随机整数x与已生成的整数是否有重复,若有重复则返回True,否则返回False。
(1)虚线框内程序段所采用的排序算法名称是__________。(填:冒泡排序 / 选择排序)
(2)在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。
Dim a(1 To 10) As Integer
Function f(x As Integer) As Boolean
′代码略
End Function
Private Sub Commandl_Click()
Dim n As Integer ′n用于统计已经产生的随机整数个数
Dim i As Integer,j As Integer
Dim x As Integer,k As Integer
Randomize ′初始化Rnd函数
n=0
List1.Clear ′清除列表框中内容
List2.Clear
Do While n<10
①________ ′产生[1,999]范围内的随机整数
If Not f(x) Then
n=n+1
a(n)=x
List1.AddItem Str( a(n))
End If
Loop
For i=1 To 9 ′进行排序
For j=10 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
Next i
For i=1 To 10
②___________
Next i
End Sub
数组a用于存储产生的10个随机整数,函数f(x)用于判断随机整数x与已生成的整数是否有重复,若有重复则返回True,否则返回False。
(1)虚线框内程序段所采用的排序算法名称是__________。(填:冒泡排序 / 选择排序)
(2)在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。
Dim a(1 To 10) As Integer
Function f(x As Integer) As Boolean
′代码略
End Function
Private Sub Commandl_Click()
Dim n As Integer ′n用于统计已经产生的随机整数个数
Dim i As Integer,j As Integer
Dim x As Integer,k As Integer
Randomize ′初始化Rnd函数
n=0
List1.Clear ′清除列表框中内容
List2.Clear
Do While n<10
①________ ′产生[1,999]范围内的随机整数
If Not f(x) Then
n=n+1
a(n)=x
List1.AddItem Str( a(n))
End If
Loop
For i=1 To 9 ′进行排序
For j=10 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
Next i
For i=1 To 10
②___________
Next i
End Sub
(加试题)(改编)有一段 VB程序,代码如下:
For i = 1 To 2
For j = 8 To i + 1 Step -1
If a(j) < a(i) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next j
Next i
数组元素 a(1)到 a(8)的值依次为“35,18,14,20,30,15,28,26”,运行该程序段后,a(5)到a(8)的值依次是( )
For i = 1 To 2
For j = 8 To i + 1 Step -1
If a(j) < a(i) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next j
Next i
数组元素 a(1)到 a(8)的值依次为“35,18,14,20,30,15,28,26”,运行该程序段后,a(5)到a(8)的值依次是( )
A.30,26,28,35 | B.14,15,18,20 | C.26,15,18,14 | D.26,28,30,35 |
某排序程序的主要代码如下所示:
n=5
For i = 1 To n-1
For j =n-1 To i step -1
If d(j) < d(j+1) Then k = d(j): d(j) = d(j + 1): d(j + 1) = k
Next j
Next i
在排序过程中,某一遍排序后的结果是81,77,1,76,70,则下一遍排序后的结果应该是
n=5
For i = 1 To n-1
For j =n-1 To i step -1
If d(j) < d(j+1) Then k = d(j): d(j) = d(j + 1): d(j + 1) = k
Next j
Next i
在排序过程中,某一遍排序后的结果是81,77,1,76,70,则下一遍排序后的结果应该是
A.81,76,1,77,70 | B.81,77,76,1,70 |
C.81,77,76,70,1 | D.1,70,76,77,80 |
将数组a中的8 个数据“18,33,5,26,86,0,60,200”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换的次数是( )
A.4 | B.5 | C.6 | D.7 |
(加试题)某校举行班班有歌声比赛,参赛班级的成绩按照班级序号保存在“bbygs.accdb”数据库文件中,为了快速计算每个班级最终的分,设计了一个VB程序,该程序能够将8个评委的打分按照从高到低的顺序排序,然后去掉一个最高分和一个最低分,最后计算平均值作为参赛班级的成绩。程序界面如图:单击“提取”按钮Command1,在列表框list1中显示班级序号和该班级8个评委的打分成绩,单击“排序”按钮Command2后,在列表框list2中按降序排序。单击计算得分按钮Command3,在文本框text1中显示最终成绩。按此要求编写程序如下:
Dim class(1 To 30) As Integer '存放班级序号的数组定义为class
Dim score(1 To 8) As single '存放班级各评委打分的数组定义为score
Private Sub Form_load() '提取某班级的评委打分
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.AC
conn.Open
Set rs.ActiveConnection = conn
rs.Open "SELECT * FROM score "
n = 0
Do While Not rs.EOF '到最后一条记录后退出循环
n = n + 1
class (n) = rs.Fields("班级序号").Value
score (n) = rs.Fields("评委打分").Value
rs.MoveFirst '① 指针移动到下一条记录
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
for i=1 to n
List1.AddItem str(score(i))
Next i
End sub
Private Sub Command1_Click()
Dim i as integer
Dim j as integer
Dim t as single

For i=1 to 8
List2.AddItem str(score(i))
Next i
End sub
Private Sub Command2_Click() '计算班级平均得分
Dim i As Integer
Dim sum As single
For i=2 to 7
sum=sum+score(i)
Next i
Text1.text= ③
End sub
(1)程序中①划线处有错,应改为____________________。
(2)加矩形框处的程序所采用的算法是_____________排序。
(3)程序中②划线处应填入___________,程序中③划线处应填入___________。
Dim class(1 To 30) As Integer '存放班级序号的数组定义为class
Dim score(1 To 8) As single '存放班级各评委打分的数组定义为score
Private Sub Form_load() '提取某班级的评委打分
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.AC
A.OLEDB.12.0;Data Source=" + App.Path + "\bbygs.accdb " |
Set rs.ActiveConnection = conn
rs.Open "SELECT * FROM score "
n = 0
Do While Not rs.EOF '到最后一条记录后退出循环
n = n + 1
class (n) = rs.Fields("班级序号").Value
score (n) = rs.Fields("评委打分").Value
rs.MoveFirst '① 指针移动到下一条记录
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
for i=1 to n
List1.AddItem str(score(i))
Next i
End sub
Private Sub Command1_Click()
Dim i as integer
Dim j as integer
Dim t as single

For i=1 to 8
List2.AddItem str(score(i))
Next i
End sub
Private Sub Command2_Click() '计算班级平均得分
Dim i As Integer
Dim sum As single
For i=2 to 7
sum=sum+score(i)
Next i
Text1.text= ③
End sub
(1)程序中①划线处有错,应改为____________________。
(2)加矩形框处的程序所采用的算法是_____________排序。
(3)程序中②划线处应填入___________,程序中③划线处应填入___________。
实现某排序算法的部分VB 程序如下:
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
End If
Next i
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k) Then k=j
Next j
If i<>k Then
t=a(i):a(i)= a(k):a(k)= t
End If
Next i
在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是( )
A.10,11,41,75,12,63,85 | B.10,11,75,12,63,41,85 |
C.10,11,12,75,63,41,85 | D.10,11,12,41,63,75,85 |
(加试题)随机数排序程序。程序功能如下:窗体加载时生成[10,100]范围内的随机整数10 个存储在数组 a 中,并在列表框 List1 中显示原始数据,单击“排序”按钮,这 10 个数据按 降序排序后显示在列表框 List2 中。程序运行效果如图所示。实现上述功能的 VB代码如下,但 加框处代码有错,请改正。

Dim a(1 To 10) As Integer
Private Sub Command1 Click()
Dim i As Integer, j As Integer, x As Integer p = True
i = 1
Do While i <= 9 And p p = False
For j = 10 To i + 1 Step -1
If a(j)< a(i) Then '①________
k = a(j): a(j) = a(j - 1): a(j - 1) = k: p = True
End If
Next j
i = i + 1
Loop
For i = 1 To 10
Private Sub Form_Load() Dim i As Integer
List1.Clear
Randomize ' 初始化随机函数 Rnd
For i = 1 To 10
a(i) = Int(Rnd * 100) '②________ List1.AddItem Str(a(i))
Next i
End Sub

Dim a(1 To 10) As Integer
Private Sub Command1 Click()
Dim i As Integer, j As Integer, x As Integer p = True
i = 1
Do While i <= 9 And p p = False
For j = 10 To i + 1 Step -1
If a(j)< a(i) Then '①________
k = a(j): a(j) = a(j - 1): a(j - 1) = k: p = True
End If
Next j
i = i + 1
Loop
For i = 1 To 10
List2.AddItem Str(a(i)) Next i
End SubPrivate Sub Form_Load() Dim i As Integer
List1.Clear
Randomize ' 初始化随机函数 Rnd
For i = 1 To 10
a(i) = Int(Rnd * 100) '②________ List1.AddItem Str(a(i))
Next i
End Sub
(加试题)有如下VB程序段:
Dim a(1 To 8) As Integer
a(1) = 12: a(2) = 44: a(3) = 65: a(4) = 26
a(5) = 48: a(6) = 91: a(7) = 98: a(8) = 13
n = 8: t = 0
For i = 1 To n - 1
k = i
For j = i + 1 To n
If a(j) < a(k) Then k = j
Next j
If k <> i Then
temp = a(i): a(i) = a(k): a(k) = temp: t = t + 1
End If
Next i
Text1.Text = Str(t)
该程序段运行后,文本框Text1中显示的内容是
Dim a(1 To 8) As Integer
a(1) = 12: a(2) = 44: a(3) = 65: a(4) = 26
a(5) = 48: a(6) = 91: a(7) = 98: a(8) = 13
n = 8: t = 0
For i = 1 To n - 1
k = i
For j = i + 1 To n
If a(j) < a(k) Then k = j
Next j
If k <> i Then
temp = a(i): a(i) = a(k): a(k) = temp: t = t + 1
End If
Next i
Text1.Text = Str(t)
该程序段运行后,文本框Text1中显示的内容是
A.5 | B.7 | C.8 | D.28 |
(加试题)某排序算法思想如下:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。例如(9,3,1,4)升序排序;第一步 3 插入到有序记录(9),得到(3,9);第二步 1 插入到有序记录(3,9),得到(1,3,9);第三步 4 插入到有序记录(1,3,9),得到最终有序记录为“1,3,4,9”。
为此,编写了一个 VB 程序,功能如下:运行程序,窗体加载时随机产生 10 个随机整数,并在列表框 List1 中依次显示排序前数据,单击“排序”按钮 Command1,在列表框 List2 中显示经过上述排
序算法后的数据,运行结果如图所示。实现上述功能的 VB 代码如下,但加框处代码有错,请改正。

Const n = 10
Dim a(1 To n) As Integer '生成 n 个随机数,存储在 a 数组,代码略
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer
For i = 2 To n
t = a(i)
j = i - 1
Do While t < a(j)
a(j + 1) = a(j)
j = j - 1
For i = 1 To n
End Sub
为此,编写了一个 VB 程序,功能如下:运行程序,窗体加载时随机产生 10 个随机整数,并在列表框 List1 中依次显示排序前数据,单击“排序”按钮 Command1,在列表框 List2 中显示经过上述排
序算法后的数据,运行结果如图所示。实现上述功能的 VB 代码如下,但加框处代码有错,请改正。

Const n = 10
Dim a(1 To n) As Integer '生成 n 个随机数,存储在 a 数组,代码略
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer
For i = 2 To n
t = a(i)
j = i - 1
Do While t < a(j)
a(j + 1) = a(j)
j = j - 1
If j = 1 Then Exit Do ;改正:_______________
Loopa(j) = a(j + 1) ;改正:_______________
Next iFor i = 1 To n
List2.AddItem Str(a(i))
Next iEnd Sub