a(1)=”231”:a(2)=”44”:a(3)=”23”:a(4)=”244”:a(5)=”124”
For i=5 To 4 step-1
k=i
For j=i-1 To 1 Step-1
If a(j) >a(k) Then k=j
Next j
If k<>i Then
t=a(k):a(k)=a(i):a(i)=t
End If
Next i
请将划线处的代码补充完整。
Dim b (1 To n) As String '存储会议实际到的人员名单
Dim flag (1 To n) As Boolean, m As Integer
Private Sub Form_Load()
'将n个应到人员姓名依次存储在数组a中,将m个实际参加会议人员姓名依次存储在数组b中
'在列表柱1显示应到人员姓名,在列表框2显示实到人员姓名,该过程代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
For i=1 To n
flag(i)=False
Next i
i=1
Do While i<=m
For j=1 To n
If ① Then
flag(j)=True
Exit For '退出for循环
End If
Next j
i=i+1
Loop
For i=1 To n
If ② Then List3. AddItem a(i)
Next i
End Sub
① ②
a(1) = 5: a(2) = 7: a(3) = 12: a(4) = 12
a(5) = 15: a(6) = 20: a(7) = 25: a(8) = 27
low = 1: high = 8
key = Text1.Text
Do While low <= high
m = (low + high) \ 2
If a(m) >= key Then
high = m - 1
Else
low = m + 1
End If
Loop
执行该程序段后,变量low的值为3,则文本框Text1中输入的值不可能是( )
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
图a
②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。请回答下列问题:
图b
Dim n As Integer '总人数/总作品数
Dim m As Integer '每人分配篇数
Dim a(1 To 500) As Integer '数组a大小满足处理要求
Dim c(1 To 100) As Integer '数组c大小满足处理要求
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randomize
i = 1
Do While i <= m
For j = 1 To n
c(j) = 0 '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
For j = 1 To n
If j = n - 1 And c(n) = 0 Then
①
Else
k = r(n, j)
End If
a((i - 1) * n + j) = k '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If ② Then i = i + 1
Loop
s = ""
For i = 1 To n
s = "参赛者" & i & ":"
For j = 1 To m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Function r(x As Integer, y As Integer) As Integer
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Function
Function check(c As Integer) As Boolean
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer,f As Boolean
f = True
p = 1
For i = 1 To c * n
If ③ Then
f = False: Exit For
End If
p = p mod n +1
Next i
check = f
End Function
① ② ③

图 a
小李编写VB程序实现上述功能:在列表框List1中按货物顺序显示其重量和货架号,在文本框Text1中输入机器人送货趟数,单击“结果”按钮Command1后,标签Label3和Label4中分别显示要求机器人可承受的最大载重最小值和送货总行程。程序运行界面如图b所示。

图 b
请回答下列问题:
Const num = 8 '货物数量
Const shelf = 10 '货架数量,1-9号货架可供存储货物,第10号货架用作机器人装货点
Dim g(1 To num) As Integer '各货物的重量
Dim s(1 To num) As Integer '各货物的货架号
Private Sub Form_Load()
'从数据库中读入num件物品的重量、货架号,分别存储在数组g、s中
'将各物品数据显示在list1中,代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer, max As Integer, total As Integer
Dim head As Integer, tail As Integer, dis As Integer, part As Integer
total = g(1)
For i = 2 To num
If g(i) > max Then max = g(i)
total = total + g(i)
Next i
n = 0
For i = max To total
part = 0: n = 0: head = 1: dis = 0
For j = 1 To num
part = part + g(j)
If part > i Then
n = n + 1: j = j - 1: tail = j
dis = dis + tran(head, tail)
part = 0: head = tail + 1
End If
Next j
If part > 0 Then
n = n + 1
dis = dis + tran(head, tail)
End If
If n <= Val(Text1.Text) Then Exit For
Next i
Label3.Caption = "机器人可承受的最大载量至少为:" + Str(i)
Label4.Caption = "机器人完成各趟任务的总行程为:" + Str(dis)
End Sub
Function tran(p As Integer, q As Integer) As Integer '计算机器人每趟按装货倒序配送并回到A 处的行程
Dim temp As Integer, t1 As Integer, t2 As Integer, k As Integer
temp = 0: t2 = shelf
For i = q To p Step -1
t1 = t2: t2 = s(i)
k =
If k > (shelf + 1) \ 2 Then k = shelf - k
temp = temp + k
Next i
If t2 <= shelf \ 2 Then temp = temp + t2 Else temp = temp + shelf - t2
tran = temp
End Function
k=1
For j=2 To 100
If a(j)>a(k)Then k=j
Next j
x=a(k)

图1

图2
Private Sub Command1_Click()
Dim s As Integer, r As Integer, c As Integer
Dim source As String, delstr As String, ch As String
c = 0: i = 1
source = Text1.Text:delstr = Text2.Text
s = Len(source)
r = Len(delstr)
Do While s-i+1 >= r
ch = Mid(source, i, r)
If ch = delstr Then
source = Mid(source,1, i-1) +
s = Len(source)
Else
i = i + 1
End If
Loop
Label4.Caption = "共删除:" + Str(c) + "处"
Text3.Text = source
End Sub
a(1) = 68: a(2) = 88: a(3) = 76: a(4) = 60: a(5) = 98
a(6) = 100: a(7) = 64: a(8) = 85: a(9) = 99: a(10) = 59
For i = 1 To 9
b(i) = Abs(a(i + 1) - a(i))
c(b(i) \ 10) = c(b(i) \ 10) + 1
Next i
For i = 0 To 10
If c(i) > 0 Then Label1.Caption = Label1.Caption + " " + Str(c(i))
Next i
数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是( )
Const n=10
Dim a(1 To 10) As Integer
m = Int(Rnd( ) *n+ 1)
For i=1 To n
a(i)= 0
Next i
i=0:j=0:c=1:ans=""
Do While c<=3
i=i Mod n+1
If a(i)=0 Then j=j+1
If j=m Then
a(i)=1:c=c+1
j=0: ans = ans+ str(i)
End If
Loop
Text1.Text = ans
执行上述程序段后,文本框Text1中不可能显示的内容是( )
图1
例如某天的销售清单,库存数据如图2所示,根据每本书的警戒1和警戒2库存,分组后的数据如图3所示。
图2
图3
Dim stock(1 To 52) As Integer '存储每本书警戒1和警戒2的库存数量
Dim num(1 To 100) As Integer '存储每本书每次的销售数量
Dim bm(1 to 26) As String '存储每本书的书名编码
Dim kc(1 To 26) As Integer '存储每本书的库存数量
Dim sell(1 To 26) As Integer,q(1 To 26) As Integer
Private Sub Form_Load()
'从数据库读取书目销售清单数据,显示在list1中,分别存在数组
'stock(1),stock(2)存书名编码A的警戒1库存,警戒2库存;stock(3),stock(4)存书名编码B的警戒1库存,警戒2库存,依次类推,代码略
End sub
Private Sub Command1_Click()
For i = 1 To 100 '处理100条销售清单数据
k = Asc(bm(i)) - 64
Next i
n = 0
For i = 1 To 26 '更新库存数据
If sell(i) > 0 Then
n = n + 1
kc(i) = kc(i) - sell(i)
End If
Next i
head = 0: tail = n + 1: j = 1
Do While j < tail
r = kc(q(j))
If r <= stock(2 * q(j) - 1) Then
head = head + 1
If Then t = q(head): q(head) = q(j): q(j) = t
j = j + 1
ElseIf r > stock(2 * q(j)) Then
tail = tail - 1
t = q(j): q(j) = q(tail): q(tail) = t
Else
j = j + 1
End If
Loop
'分组排序及排序后数据显示在列表框list2中,代码略
End Sub
amin= a(1) : amax=a(1)
i=2 : j=9
Do While i <= j
If a(i) > a(j) Then
Else
End If
i=1 : j=j-1
Loop
Text 1. Text= Str(amin)+"," Str(amax)
上述程序段中方框处可选语句为:
①If a(j)>amax Then amax =a(j)
②If a(j)< amin Then amin =a(j)
③If a(i)<amin Then amin =a(i)
④If a(i)>amin Then amin =a(i)
则(1)(2)(3)(4)处语句依次可为( )