(加试题)小李基于冒泡排序算法编写了一个VB程序,功能如下:在文本框Text1 中显示排序前的数据,单击“排序”按钮Command1,在文本框Text2 中显示剔除重复数据后的升序排序结果。程序运行界面如下图所示。

实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer, bottom As Integer
'获取排序前数据依次存储在数组a 中,并在文本框Text1 中显示。代码略
bottom = n : i = 1
Do While i <= bottom - 1

For j = bottom To i + 1 Step -1

If a(j) < a(i) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
ElseIf a(j) = a(j - 1) Then ' 相邻两个数据相等,进行剔除处理
a(bottom)=a(j)   
bottom = bottom - 1
End If

Next j

i = i + 1

Loop
Text2.Text = " "
For i = 1 To bottom

Text2.Text = Text2.Text + Str(a(i))

Next i
End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
找出满足各位数字之和等于5的所有三位数可采用的算法是(    )。
A.解析算法
B.冒泡排序
C.枚举算法
D.选择排序
当前题号:2 | 题型:选择题 | 难度:0.99
用VB编程解决一个问题:求所有五位数中满足能被17整除且十位数字为5的数之和。
(1)本题的所有五位数所指的范围是1~10000,10000~99999,10000~90000,还是11111~99999?写出本题的所有五位数所指的范围。
(2)算术运算符:除/、整除\、求余Mod。例子,设五位数为参数i,则i\10000为万位,(i\1000)Mod 10 为千位,类推,则五位数中十位数字为( ),i  Mod 10为个位。写出五位数中十位数字为5的表示式。
(3)将本题程序填写完整。
Private Sub Command1_Click()
s = 0
For i =   To  
If   i Mod 17 = 0    And    =5   Then
s = s + i
End If
Next i
Print  s
End Sub
(4)本题程序采用了什么算法?
当前题号:3 | 题型:填空题 | 难度:0.99
小骆设计了一个程序,用来统计一段文字中句子的数量。规定以“。”或者“?”或者“!”结束的为句子。窗体界面和程序如下所示,请回答问题。

图1 图2
(1)应用程序界面设计时,用来输入文字的对象,使用了图2所示的“控件工具箱”中的 ________________(填写相应数字),
(2)Private Sub Command1_Click()
Dim s As String, r As String, k As Integer
k = 0
s=Text1.Text
For i = 1 To Len(s)

If r ="。" Or r ="!"  Or r ="?"  Then
Next i
Label1.Caption ="本段文字中含" + Str(k) + "句语句。"
End Sub
在程序划线处填写适当的表达式或语句,以实现程序功能。
程序中①划线处应填入____________________________。
程序中②划线处应填入____________________________。
当前题号:4 | 题型:填空题 | 难度:0.99
有如下程序段:
Dim a(1 To 10) As Integer
Dim i As Integer, j As Integer, m As Integer
Dim key As Integer
i = 1: j = 10: key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
If key < a(m) Then
j = m - 1
ElseIf key > a(m) Then
i = m + 1
Else
Do While m > 1
If a(m - 1) = key Then
m = m - 1
Else
Exit Do
End If
Loop
Exit Do
End If
Loop
数组中a(1)到a(10)依次为“1,1,2,3,3,3,3,4,4,4”,若在文本框Text1中输入值3,经上述程序段执行后变量m的值为
A.7
B.6
C.5
D.4
当前题号:5 | 题型:选择题 | 难度:0.99
(加试题)一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26是一个A类数。下列VB程序的功能是:统计前1000个自然数中A类数的个数,并在文本框中输出。请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim s As Integer, t As Integer, k As Integer
s = 0
For i = 1 To  1000
n = i
t = 0
k = 0
Do While n > 0
If n Mod 2 = 1 Then t = t + 1 Else k = k + 1
___________________
Loop
If ___________________Then s = s + 1
Next i
Text1.Text = Str(s)
End Sub
当前题号:6 | 题型:填空题 | 难度:0.99
(加试题)某排序算法的VB程序段如下:
n = 10
Text1.Text = ""
For i = 1 To 5
For j = n To i + 1 Step -1
If a(j) < a(i) Then
temp = a(j): a(j) = a(i): a(i) = temp
End If
Next j
Next i
For i = 1 To 10
Text1.Text = Text1.Text + Str(a(i))
Next i
数组元素a(1)到a(10)的值依次为“965,155,195,444,106,734,172,983,898,360”,执行该程序段,文本框Text1中显示的是
A.106 155 172 195 360 444 734 898 965 983
B.106 155 172 195 360 734 444 983 898 965
C.983 965 898 734 444 360 172 195 155 106
D.106 155 172 195 360 965 444 734 898 983
当前题号:7 | 题型:选择题 | 难度:0.99
有如下程序段:
Const n = 6
Dim a(1 To n) As Integer
Dim i As Integer, j As Integer, t As Integer
Do While True
For i=1 to n-1
If a(i)>a(i+1) then Exit For
Next i
If i < n Then
For i = 1 To n
j = Int(Rnd * 6) + 1
t = a(j): a(j) = a(i): a(i) = t
Next i
Else
Exit Do
End If
Loop
数组中a(1)到a(6)的值依次为“56,34,48,87,65,96”,经上述程序段执行后a(1)到a(6)的值依次为(   )
A.96 87 65 56 48 34
B.34 48 56 65 87 96
C.选项A和B都有可能
D.选项A和B都不可能
当前题号:8 | 题型:选择题 | 难度:0.99
(加试题)已知一无序数组a中的元素为"90,15,40,72,65,32,81,6",通过引入数组b存储数组a元素按升序排列时的下标,b数组元素为"8,2,6,3,5,4,7,1",使得a(b(1))≤a(b(2)) ≤a(b(3))……≤a(b(n)),从而对a数组中的数据进行对分查找。部分程序如下:

当文本框Text1中输入的值为32时,程序运行结束后变量c的值为
A.1B.2C.3D.4
当前题号:9 | 题型:选择题 | 难度:0.99
(加试题)某密码的破译步骤如下:
(1)找出文章(以“.”结束)中所有用英文表示的数字(均为小写,数字范围1≤n≤20),单词与数字对应如下:

(2)将这些数字平方后除以100取余,得到两位数如00,04,21,96。
(3)把这些两位数按升序排成一行,组成一个最小的新数,如果新数开头为0,就去除。
(4)步骤(3)找出的最小数即为密码。
小明按照上述方法,设计了一个解密的VB程序,功能如下:单击“解密”按钮Commandl,程序依次将文本框Textl中以空格分隔的每个英文单词取出,若单词属于数字单词,则按解密步骤进行处理,最后在文本框Text2中输出解密结果。
程序运行效果如图所示,请回答下列问题:

(1)若文章内容为“tom bought two apples and five oranges, which cost ten dollars altogether.”,则破译后的密码应为_____________。
(2)请在划线处填入合适的代码。
Dim a(1 To 20) As String
Private Sub Form_Load()
a(1) = "one": a(2) = "two" 
'……将所有数字单词按顺序存入数组a中,代码略
End Sub
Private Sub Command1_Click()
Dim s As String, tmp As String
Dim c as Integer,i As Integer, j As Integer, k As Integer, t As String, ch As As String,code As Long
Dim b(1 To 100) As String   'b数组存放数字单词处理后得到的两位数
s = Text1.Text
c = 0: i = 1: flag = True:t = ""
Do While i <= Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Then
t = t + ch
flag = False
ElseIf flag = False Then
For j = 1 To 20
If t = a(j) Then
c = c + 1
b(c) =_________________
End If
Next j
t = ""
flag = True
End If
i = i + 1
Loop
’将b数组中的两位数按数值大小进行升序排序,代码略
For i = 1 To c
t = Val(b(i))
_______________________
Next i
Text2.Text = Str(code)
End Sub
Function decode(num As Integer) As String
Dim mo As Integer
mo = num * num Mod 100
If mo = 0 Then
decode = "00"
ElseIf ___________________  Then
decode = "0" + Trim(Str(mo))
Else
decode = Trim(Str(mo))  'Trim为去除字符串两端空格的函数
End If
End Function
当前题号:10 | 题型:填空题 | 难度:0.99