下列VB程序段功能为:根据数组a中各元素的大小关系,计算各元素升序排列的序号,并将序号保行值效组b中。如数组a各元素为20、40、10、30,b(1)~b(4)各元素的值分别为"1、2、3、4",程序运行后b(1)~b(4)各元素的值分别为"2,4,1,3"。

上述程序段3个方框处的代码分别为
A.(1)b(i)=1 (2)a(j)<a(k)   (3)t=a(k):a(k)=a(i):a(i)=t
B.(1)b(i)=1 (2)a(b(j))<a(b(k)) (3)t=a(k):a(k)=a(i):a(i)=t
C.(1)b(i)=i (2)a(j)<a(k)   (3)t=b(k):b(k)=b(i):b(i)=t
D.(1)b(i)=i (2)a(b(j))<a(b(k)) (3)t=b(k):b(k)=b(i):b(i)=t
当前题号:1 | 题型:选择题 | 难度:0.99
(加试题)数组a中存储的n个正整数满足如下条件:奇数位上的数降序有序,偶数位上的数升序有序,且所有奇数位上的数都大于偶数位上的数,如下表所示:
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
a(9)
a(10)
100
10
90
20
80
30
70
40
60
50
 

依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。


读取一组正整数,按照上述规则存入数组a中,代码略。


改错:(1)______________   (2)______________
当前题号:2 | 题型:填空题 | 难度:0.99
下列 VB 程序段的功能为:对数组 a 中的 n 个元素进行排序,生成左右交替上升的数据系列。如排序前 a 中元素依次为:21,33,56,11,44,60,程序运行后  a 中元素依次为:11,33,56,60,44,21。
For i=1 To    ①     
k=i
For j=i+1 To n-i+1
If a(k)>a(j) Then k=       
Next j
If k<>i Then t=a(k):a(k)=a(i):a(i)=t  For j=    ③     
If a(j)<a(j+1) Then    a(j)=a(j)+a(j+1) : a(j+1)=a(j)-a(j+1):a(j)=a(j)-a(j+1) Next j
Next i
上述程序段 3 个划线处的表达式分别为(   )
A.①   n-1    ②    j+1    ③   i To n-i+1
B.①   n-1    ②    j+1    ③   i To n-i
C.①   n\2    ②    j    ③   i+1 To n-i
D.①   n\2    ②    j    ③   i+1 To n-i+1
当前题号:3 | 题型:选择题 | 难度:0.99
某升序排序算法的VB程序段如下:
Dim a (8) As Integer
For i=2 To 8

a(0)=a(i)

Do While a (0)<a(j)


j=j-1

Loop

Next i
数组元素a(1)~a(8)的值为随机生成的整数,为实现升序排序,则上述程序段3个方框处的表达式分别为(    )
A.①j=i-1    ②a(j+1)=a(j)    ③a(j+1)=a(0)
B.①j=i+1    ②a(j+1)=a(j)    ③a(0)=a(j+1)
C.①j=i-1    ②a(j)=a(j+1)    ③a(j+1)=a(0)
D.①j=i+1    ②a(j)=a(j+1)    ③a(0)=a(j+1)
当前题号:4 | 题型:选择题 | 难度:0.99
某同学设计了一个排序算法,先将数组a中奇数位置的元素、偶数位置的元素分别进行排序,然后再进行后续处理,直至所有元素按降序排列。算法的VB程序段如下:
‘待排序数据已存储在数组a中(a(1)~a(n))

上述程序段中3处方框处的代码分别为
A.①i+1 To n Step 2   ②2 To n Step 2   ③a(j+1)=t
B.①i+2 To n Step 2   ②3 To n Step 2   ③a(j+1)=t
C.①i+2 To n Step 2   ②2 To n Step 2   ③a(j)=t
D.①i+1 To n Step 2   ②3 To n Step 2   ③a(j)=t
当前题号:5 | 题型:选择题 | 难度:0.99
数组 a 存储降序排列的 m 个数据,数组 b 中存储的是升序排列的 n 个数据,且两个数组中存储的数据为区间[1,20]范围内的不重复的随机整数。现将两个数组的数据合并到 c 数组中,使 c 数组的数据为左右交替上升,如下表所示:

当窗体 Form1 加载时,自动产生 a、b 数组的数据,并分别显示在列表框 List1 与 List2
中,单击合并按钮 Command1 后,在 c 数组中保存按规则合并后的 a、b 数组的数据,并显示在列表框 List3 中。程序截图如下所示:

实现该功能的 VB 程序如下:
Const m = 5
Const n = 6
Dim a(1 To m) As Integer
Dim b(1 To n) As Integer
Dim c(1 To m + n) As Integer
‘窗体加载时,生成数组 a、b 中的数据,并按要求排序后显示在列表框中,代码略
Private Sub Command1_Click()
Dim pa As Integer, pb As Integer, pc As Integer, s As Integer, flag As Boolean
pa = m: pb = 1: pc = 1
flag = True
Do While ____________________  
If a(pa) < b(pb) Then

s = a(pa)

pa = pa - 1

Else

s = b(pb)

pb = pb + 1

End If
c(pc) = s
If flag Then

pc = m + n - pc + 1

Else

pc =  

End If
__________________________
Loop
‘处理 a、b 数组中剩余数据,并在列表框 List3 中输出数组 c,代码略
End Sub
(1)窗体加载的事件处理过程名为__________。(填字母:
A.Form1_Click /B.Form_Click /
C.Form1_Load /D.Form_load)
(2)加框处代码有错,请改正。 __________
(3)在划线处填入合适的代码。
当前题号:6 | 题型:填空题 | 难度:0.99
采用冒泡排序对一组数据进行排序,第一遍排序后的结果为2,19,4,55,6,7,11,13,32,那么该数组的原始顺序不可能是()
A.19,4,55,6,7,11,13,32,2
B.2,19,4,55,13,11,32,6,7
C.19,4,55,2,6,7,11,13,32
D.19,4,55,6,7,11,2,13,32
当前题号:7 | 题型:选择题 | 难度:0.99
采用冒泡排序算法对数据序列“2,3,4,5,1,0”完成升序排序,则需要交换的次数为(   )
A.9次B.12次C.15次D.18次
当前题号:8 | 题型:选择题 | 难度:0.99
某省举办大型活动,面向省内城市招募有志愿服务工作经历的志愿者,每个志愿者的报名数据包含城市序号、姓名(字母缩写)和参加志愿服务的次数。现需整理报名数据,要求是:先按城市序号从小到大排列;然后,同一城市的志愿者按参加志愿服务的次数从多到少排列。
按上述要求,编写一个VB程序,功能如下:在列表框List 1中显示整理前的数据,单击“整理”按钮Command 1,整理结果显示在列表框List 2中,程序运行界面如图所示。

(1)将数组元素q(1)到q(200)分为10段,如果每段恰好包含20个元素,采用选择排序算法分别对每段中的元素进行排序,整个排序过程中,数组元素之间的比较次数是________(单选,填字母:
A.次/B.次/C.次)。
(2)请在划线处填入合适的代码。
    报名总人数
城市数

 存储每个城市的报名人数


Private Sub Form_Load()
本过程读取城市序号,姓名和参加次数的数据分别存储在数组city;pname和times中,
并在List 1中显示,代码略
End Sub
Private Sub Command 1_Click()
Dim i As Integer,j As Integer,k As Integer,t As Integer,pos As Integer


Next i
   统计每个城市报名人数
 ①

Next i




Next i


  

Next i

  对各城市报名数据按参加志愿服务的次数进行排序



Next j

Next i

List 2.AddItem " " & city(q(i))& " " & pname(q(i))& " " & times(q(i))
Next i
End Sub
Function fp(head As Integer,tail As Integer)As Integer
Dim i As Integer,k As Integer

   

Next i

End Function
当前题号:9 | 题型:None | 难度:0.99
篮球联赛中,有5个班级的比赛积分依次为14,11,13,8,9。若采用冒泡排序算法对其进行从小到大排序,则完成第二遍时的结果是(   )
A.8,11,13,14,9B.8,9,13,14,11
C.8,9,14,11,13D.14,13,11,9,8
当前题号:10 | 题型:选择题 | 难度:0.99