- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- + 排序算法及程序实现
- 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
下列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个方框处的代码分别为

上述程序段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 |
(加试题)数组a中存储的n个正整数满足如下条件:奇数位上的数降序有序,偶数位上的数升序有序,且所有奇数位上的数都大于偶数位上的数,如下表所示:

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


改错:(1)______________ (2)______________
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)______________
下列 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 个划线处的表达式分别为( )
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 |
某升序排序算法的VB程序段如下:
Dim a (8) As Integer
For i=2 To 8

j=j-1
数组元素a(1)~a(8)的值为随机生成的整数,为实现升序排序,则上述程序段3个方框处的表达式分别为( )
Dim a (8) As Integer
For i=2 To 8
a(0)=a(i)
Do While a (0)<a(j)

j=j-1
Loop
数组元素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) |
某同学设计了一个排序算法,先将数组a中奇数位置的元素、偶数位置的元素分别进行排序,然后再进行后续处理,直至所有元素按降序排列。算法的VB程序段如下:
‘待排序数据已存储在数组a中(a(1)~a(n))

上述程序段中3处方框处的代码分别为
‘待排序数据已存储在数组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 |
数组 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
c(pc) = s
If flag Then
__________________________
Loop
‘处理 a、b 数组中剩余数据,并在列表框 List3 中输出数组 c,代码略
End Sub
(1)窗体加载的事件处理过程名为__________。(填字母:
(2)加框处代码有错,请改正。 __________
(3)在划线处填入合适的代码。

当窗体 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
Elses = b(pb)
pb = pb + 1
End Ifc(pc) = s
If flag Then
pc = m + n - pc + 1
Elsepc =
__________________________
Loop
‘处理 a、b 数组中剩余数据,并在列表框 List3 中输出数组 c,代码略
End Sub
(1)窗体加载的事件处理过程名为__________。(填字母:
A.Form1_Click / | B.Form_Click / |
C.Form1_Load / | D.Form_load) |
(3)在划线处填入合适的代码。
采用冒泡排序对一组数据进行排序,第一遍排序后的结果为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 |
某省举办大型活动,面向省内城市招募有志愿服务工作经历的志愿者,每个志愿者的报名数据包含城市序号、姓名(字母缩写)和参加志愿服务的次数。现需整理报名数据,要求是:先按城市序号从小到大排列;然后,同一城市的志愿者按参加志愿服务的次数从多到少排列。
按上述要求,编写一个VB程序,功能如下:在列表框List 1中显示整理前的数据,单击“整理”按钮Command 1,整理结果显示在列表框List 2中,程序运行界面如图所示。

(1)将数组元素q(1)到q(200)分为10段,如果每段恰好包含20个元素,采用选择排序算法分别对每段中的元素进行排序,整个排序过程中,数组元素之间的比较次数是________(单选,填字母:
(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
按上述要求,编写一个VB程序,功能如下:在列表框List 1中显示整理前的数据,单击“整理”按钮Command 1,整理结果显示在列表框List 2中,程序运行界面如图所示。

(1)将数组元素q(1)到q(200)分为10段,如果每段恰好包含20个元素,采用选择排序算法分别对每段中的元素进行排序,整个排序过程中,数组元素之间的比较次数是________(单选,填字母:
A.![]() | B.![]() | C.![]() |








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
篮球联赛中,有5个班级的比赛积分依次为14,11,13,8,9。若采用冒泡排序算法对其进行从小到大排序,则完成第二遍时的结果是( )
A.8,11,13,14,9 | B.8,9,13,14,11 |
C.8,9,14,11,13 | D.14,13,11,9,8 |