某查找算法的VB 程序如下:
Private Sub Commandl_Click()

Dim a(1 To 9) As Integer, key As Integer, i As Integer,j As Integer

Dim mid 1 As Integer,mid 2 As Integer

a(1)=4:a(2)=22:a(3)=27:a(4)=32:a(5)=35:a(6)=44:a(7)=56:a(8)=59:a(9)=78

key=Val(Textl.Text)

i=1:j=9

flag=False

Do While i<=j And Not flag

midl=i+(j-i)\3
mid 2=j-(j-i)\3
If key=a(midl) Then
flag=True
ElseIf key<a(midl) Then
j=midl-l
ElseIf key=a(mid 2) Then
flag=True
ElseIf key>a(mid2) Then
i=mid2+1
Else
i=mid1+1
j=mid2-1
End If

Loop

If flag Then Labell.Caption=″查找成功!″Else Labell.Caption=″查找失败!″

End Sub
该程序段执行时,在文本框Text1中输入36,单击命令按钮Command1,程序运行结束后,i和j的值为(   )
A.4,5B.6,5C.5,6D.6,4
当前题号:1 | 题型:选择题 | 难度:0.99
波波同学一直梦想买彩票中500万大奖,他收集了最近100期“双色球”开奖信息,存储于data. accdb文件中,并使用VB软件编写了“双色球投注建议”程序,程序根据最近100期开奖信息,统计出现概率最低的6个红色球号码和1个蓝色球号码,给出投注建议。如果蓝色球有多个概率最低的号码,则输出多个,红色球不考虑并列概率量低情况。
注:福彩“双色球”玩法;在1-33个红色球影申随机生成6个号码,在1~16个蓝色球号码中随机生成个号码,共计6+1个号码开奖。
程序运行界面如图所示。

(1)实现上述功能的VB程序如下,请完善画线处的代码。
Dim red(l To 600) As Integer '用于存储100*6红色球信息
Dim blue(1 To 100) As Integer '用于存储100*1蓝色球信息
Private Sub Form_Load()
'本过程用于从数据库data. accdb中读取最近100期双色球开奖信息
'将100*6个红色球开奖信息依次存储在数组red()中
'将100*1个蓝色球开奖信息依次存储在数组blue()中
'将最近100期开奖信息格式化后显示在列表框List1中
'本过程代码略
End Sub
Private Sub Command1_Click()
Dim min As Integer
Dim s As string
Dim f(1 To 33)As Integer
'——以下开始处理蓝色球部分——
For b= 1 To 100
f(blue(b))= f(blue(b))+1
Next b
min= 100
For i= 1 To 16

If f(i)< min Then min f(i)

Next i
For i=1 To 16

If f(i)= min then s= _______

f(i)=0
Next i
List2. Additem"蓝色球重点买人:"十s
'——以下开始处理红色球部分——
For r=1 To 600
_________
Next r
_________

(2)在某次红球部分处理时,若数组f中的,f(1)至f(33)的值依次为:
f(1)-f(11):
6
8
20
25
16
21
14
20
24
28
26
f(12)-f(22):
1
30
8
1
10
10
33
28
32
20
6
f(23)-f(33):
4
34
29
18
25
30
4
13
30
20
6
 
结合加虚线框处代码的算法,输出的内容是:
红色球重点买入:________________________.(按输出顺序写出6个红球号码)。
当前题号:2 | 题型:None | 难度:0.99
有如下VB程序段:
a(1)=91:a(2)=5:a(3)=65:a(4)=8;a(5)=78:a(6)=13:a(7)=29:a(8)=18
For i=2 To 5

tmp= a(i)

L=1

R=i-1

Do While l<= R

M= Fix(L+ R)/2)
If tmp <=a(M) Then R= M-1 E lse L= M+1

Loop

j=i-1

Do While j>=L

a(j+1)=a(j)
j=j-1

Loop

a (L)= tmp

Next i
执行上述代码后,数组a中的元素分别是(   )
A.5 8 13 18 29 65 78 91B.5 8 65 78 91 13 29 18
C.91 78 65 29 18 13 8 5D.91 78 65 8 5 13 29 18
当前题号:3 | 题型:选择题 | 难度:0.99
有如下ⅤB程序段:
For i=1 To 10

b(a(i) Mod 10)= b(a(i) Mod 10)+1

b(a(i)\10)=b(a(i)\10)+1

Next i
num=0
Fori=0 To 9

If b(i>num Then num b(i)

Next i
数组b各元素初始值为0,数组元素a(1)到a(10)的值依次为“68,17,24,30,36,40,55,58,61,66”,执行该程序段,num的值为(   )
A.2B.3C.4D.5
当前题号:4 | 题型:选择题 | 难度:0.99
对用户输入的字符串进行解密的VB程序段如下:
s = Text1.Text
For i = 1 To Len(s)
ch = Mid(s, i, 1)
nk = Asc(ch) - i
If nk < 0 Then nk = nk + 127
Text2.Text = Text2.Text + Chr(nk)
已知大写字母A的ASCII码值为65,小写字母a的ASCII码值为97,在文本框Text1中输入内容“yhT5”,执行程序段后,文本框Text2显示的内容为(   )
A.YHt5B.xgS4C.zjW9D.xfQ1
当前题号:5 | 题型:选择题 | 难度:0.99
随机产生集合{-1,1}中任意一个数的VB表达式是(   )
A.Int(Rnd*2)-1
B.Int(Rnd*3)-1
C.Int(Rnd *3)\2-1
D.Int(Rnd *2)*2-1
当前题号:6 | 题型:选择题 | 难度:0.99
求最长升序子序列的长度。一个数的序列bi,当b1<b2<…<bS的时候,我们称这个序列是升序的。对于给定的一个序列(al,a2,…,aN),我们可以得到一些升序的子序列(ail,ai2,…,aiK),这里1<=il<i2<……<iK<=N。比如,对于序列(1,7,3,5,9,4,8),有它的一些升序子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是4,比如子序列(1,3,5,8),小王设计VB程序用于求最长升序子序列的长度,在文本框Text1中输入n个各不相同的数据(各数据之间以逗号隔开),单击“求解”按钮Command1后在标签Labell中输出最长升序子序列的长度,运行界面如图所示。

具体算法描述如下:
①将文本框Text1中的n个数据依次读取到数组a中;
②构造一个数组b(j),j表示升序子序列的长度,b(j)的值表示所有j长度升序序列中最小的末尾元素值。例:序列(2,6,4,5),长度为2的子序列有(2,6),(2,4),(2,5),(4,5),则b(2)=4;
③从第1个元素开始,依次处理到第i(1≤i≤n)个元素为止,b数组所能达到的最大下标值maxlen,处理过程分两种情况:
a)a(i)>b(maxlen),则最长升序子序列的长度增加;
b)a(i)<b(maxlen),则在数组b中逆序查找到第一个b(j)>a(i)(maxlen-1≤j<1),更新数组b中升序子序列长度为j+1时所存储的元素值。
以图中数据为例:

④数组b的最大下标值即为最长升序子序列的长度。
实现上述过程的VB程序如下,请回答下列问题:
(1)若在文本框Text1中输入的序列为(4,7,9,8,6),则数组元素b(2)的值为_____________。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a(1 To 100)As Integer存储原序列
Dim b(1 To 100)As Integer存储各长度序列的最小末尾元素
Dim s As String
Dim n As Integer,i As Integer,j As Integer,maxlen As Integer
S=Text1.Text
n=1:j=1
For i=1 To Len(s)

c=Mid(s,i,1)

If c=","Then

a(n)=Mid(s,j,i-j)
n=n+1
j=i+1
End If
Next i
______
maxlen=1:b(1)=a(1)
For i=2 To n
If a(i)>b(maxlen) Then
maxlen=maxlen+1
b(maxlen) =a(i)
Else
j=maxlen-1:flag=True
Do While j>=1 And flag
If a(i)>b(i)Then
______
flag = False
End If
j=j-1
Loop
If______Then b(1)=a(i)
End If
Next i
Label1.Caption="最长升序子序列的长度为:"+Str(maxlen)
End Sub
当前题号:7 | 题型:None | 难度:0.99
如果一个整数是另一个整数的平方,则称该数是“完全平方数”。例:4=2*2,9=3*3,所以4,9是完全平方数。下列表达式能判断整数m为完全平方数的是(   )
①(Sqr(m))^2=m
②Int(Sqr(m))=Sqr(m)
③m/Int(Sqr(m))=m\Int(Sqr(m))
④Int(Sqr(m))^2=m
A.①②B.②③C.②④D.③④
当前题号:8 | 题型:选择题 | 难度:0.99
有如下VB程序段:
a(1)=0:a(2)=1:a(3)=0:a(4)=1:a(5)=0
i=1
Do While i<= 2

n=Int(Rnd()*5+1)

If n > i Then

t=a(i): a(i)=a(n):a(n)=t
i=i+1

End if

Loop
执行程序段后,当前a(1)~a(5)各元素的值不可能是(   )
A.1,0,1,0,0B.1,0,0,1,0C.0,0,1,0,1D.0,0,1,1,0
当前题号:9 | 题型:选择题 | 难度:0.99
数组a为一组正整数,其奇数下标的数组元素是升序排序的奇数,偶数下标的数组元素是升序排序的偶数依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序段如下:
key=Val(Textl. Text):i=1:j=10
Do While i <=J
m=Int(i+j)/2+0.5)
If key Mod 2+ a(m) Mod 2= 1 Then m=m-1
If a(m)= key Then
List 1. AddIton"找到了!": Exit Do
ElseIf a(m)> key Then
j=m-2
Else
i=m+2
End If
Loop
If i>j Then List1. AddItem "未找到此数"
如果数组元素a(1)到a(10)的数据依次是“1,4,5,6,11,10,23,16,25,20”,key的值为1,则执行上述程序段,变量m依次被赋值为(   )
A.5  3  2  1B.6  3  2  1C.5  2  1D.6  5  2  1
当前题号:10 | 题型:选择题 | 难度:0.99