查找并删除重复数据的算法是基于顺序查找的优化,主要思路是把待查数据的起点元素设置成查找关键字,然后从后往前查找,通过结束时停留的数据位置来判断查找结果(即结束时若停留在数据序列的起点,表示数据序列中无重复数据;否则,存在重复数据,删除该数据后继续查找)。
编写VB程序,实现上述算法。程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据;单击“去重”按钮(Command1),查找数组a中的重复数据并删除,即相同的数据仅保留一个,并在列表框List2中输出去重后的数组a中的数据,同时在标签Label1中显示删除的数据总个数,运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Const maxn = 10
Dim a(1 To maxn) As Integer
Private Sub Form_Load()
' maxn个数据存储在数组a中,并在列表框List1中显示
' 代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, n As Integer 'n用于存储当前查找的数组长度
Dim j As Integer, key As Integer   'key用于存储本次查找关键字的数据位置
key = 1: n = maxn
Do While key <= n

i = n

Do While  a(i) <> a(1)   '(1)

i = i - 1
Loop
If i = key Then   '找到重复数据,删除;未找到,设定下一查找关键字
key = key + 1
Else
For j = i To n - 1
a(j) = a(j + 1)
Next j
n = n - 1
End If
Loop
For i = 1 To n
List2.AddItem a(i)
Next i
Label1.Caption = "共删除重复数据:" &  Str(n)  & " 个" '(2)
End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
编写“二进制加法”程序。程序运行时,在文本框 Text1 和文本框 Text2 分别输入两个二进制数,单击按钮 Command1 后在文本框 Text3 上输出两个二进制相加后的结果。程序运行如图所示。

(1)观察代码,触发代码执行的事件名是____________
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim b1 As String, b2 As String, ans As String, t As String
Dim dist As Integer, jw As Integer
b1 = Text1.Text: b2 = Text2.Text : ans=""

__________________________

   If dist < 0 Then

t = b1: b1 = b2: b2 = t: dist = -dist

   End If

   For i = 1 To dist

b2 = "0" + b2

   Next i

   jw = 0

   For i = Len(b1) To 1 Step -1

x = Val(Mid(b1, i, 1)) + Val(Mid(b2, i, 1)) + jw

__________________________

   ans = Str(x Mod 2) + ans

Next i

If ___________________

Text3.Text = ans

End Sub
当前题号:2 | 题型:填空题 | 难度:0.99
有如下VB程序段:
Dim a(1 To 10) As Integer, i As Integer, j As Integer
a(1) = 1: a(2) = 1
For i = 3 To 5
a(i) = 1
For j = i - 1 To 2 Step -1
a(j) = a(j) + a(j - 1)
Next j
Next i
Text1.Text = Str(a(3))
该程序段运行后,在文本框Text1中显示的内容是
A.1B.3C.4D.6
当前题号:3 | 题型:选择题 | 难度:0.99
如果一个正整数从左到右读与从右到左读是一样的,就称它为回文式数(简称回数),如图321。“回数猜想”的主要思想是,对任意正整数,若它不是回数,则按下列算法即可获得一个回数:
(1)把该整数的数字顺序颠倒,求得该数的逆序数;
(2)将该整数和其对应的逆序数相加;
(3)若相加结果不是回数,则将结果作为新的整数,返回步骤(1)。
小林按照上述算法,设计了验证回数猜想的VB程序(猜想次数不超过10次),程序功能如下:在文本框Text1中输入一个正整数,单击“验证”按钮(Command1),获取文本框Text1中的数,当该数不是回数时,采用回数猜想的方法进行验证,并在列表框List1中输出每次验证的过程,若验证成功或验证次数超过10次,则停止验证,最后在列表框List1中输出验证结果。程序运行效果如图所示。

实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim t As String, a As Long, b As Long
Dim count As Integer ' count用于存储回数猜想的验证次数
t = Text1.Text
count = 1
Do While Check(t) = False And count <= 10
a = Val(t)
b=turn(t)
c = a + b
List1.AddItem Str(a) & " +" & Str(b) & " =" & Str(c)
count = count + 1
t = c
Loop
If Check(t) Then
List1.AddItem  "验证成功!"
Else
List1.AddItem  "10次内未验证成功!"
End If
End Sub
' 自定义函数Turn
Function Turn(x As String) As Long
Dim s As String, i As Integer
s = ""
For i = Len(x) To 1 Step -1
s = s & Mid(x, i, 1)
Next i
Turn = Val(s)
End Function
' 自定义函数Check,检查x是否为回文数
Function Check(x As String) As Boolean
Dim i As Integer
Check = True
For i = 1 To Len(x) \ 2 Step 1
If Mid(x, i, 1) <>  Then Check = False mid(x,len(x)+1-i,1)
Next i
End Function
(1)程序代码中,自定义函数Turn(x)的功能是求x的逆序数
(2)请在划线处填入合适代码。
当前题号:4 | 题型:填空题 | 难度:0.99
有如下VB程序段:
Dim a(1 To 10) As Integer
s = "7218634594": n = Len(s)
t = 0
For i = 1 To n - 1
a(i) = Val(Mid(s, i, 2))
Next i
For i = 1 To n - 2 Step 2
k = i
For j = i + 2 To n - 1 Step 2
If a(j) < a(k) Then k = j
Next j
If k <> i Then
temp = a(i): a(i) = a(k): a(k) = temp: t = t + 1
End If
Next i
Text1.Text = Str(t)
该程序段运行后,文本框Text1中显示的内容是
A.1B.2
C.3D.4
当前题号:5 | 题型:选择题 | 难度:0.99
某算法流程图如第5题图所示,最后输出s的值是(    )
A.0.25B.1C.2D.8
当前题号:6 | 题型:选择题 | 难度:0.99
编写“单词查询”程序,实现如下功能:在文本框Text1中输入一段英文文本(以“.”为结束符),在文本框 Text2 输入一个英文字母,单击“获取单词”按钮 Command1,在列表框 List1 依次显示Text1中包含该英文字母的所有单词。程序运行界面如图所示。

(1)程序运行时,文本框Text1显示为“请输入英文短句”,可在Form_Load事件过程中添加代码____________ (单选,填字母:
A.Text1.Caption = "请输入英文短句" /B.Text1.Text="请输入英文短句"/C.Text1.AddItem "请输入英文短句")。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, tmp As String, c As String
Dim n As Integer, i As Integer
Dim flag As Boolean
Dim cnt As Integer  '存储符合条件的单词数
s = Text1.Text
n = Len(s)
flag = False
List1.Clear
For i = 1 To n
c = Mid(s, i, 1)
If c >= "a" And c <= "z" Or c >= "A" And c <= "Z" Then
____________
If c = Text2.Text Then flag = True: cnt = cnt + 1 
Else
If flag Then List1.AddItem tmp
tmp = ""
___________ 
End If
Next i
If cnt = 0 Then  List1.AddItem "找不到符合条件的单词."
End Sub
(3)若文本框Text2中输入“M”,单击“获取单词”按钮后,列表框List1中显示的单词个数是______。
当前题号:7 | 题型:填空题 | 难度:0.99
某算法的部分流程图如图所示。执行这部分流程后,变量x,y的值分别是(  )
A.7,9B.13,12C.69,10D.11,11
当前题号:8 | 题型:选择题 | 难度:0.99
将文本框 Text1 内输入的数据送到字符型变量 n 中,则应使用的语句是(   )
A.n=Text1B.n=Text1.TextC.n=Val(Text1.name)D.n=Val(Text1.Text)
当前题号:9 | 题型:选择题 | 难度:0.99
在Visual Basic中,语句Label1.Caption = "欢迎使用本系统!" 中的"Label1"是(    )
A.属性值B.属性名C.对象名D.类名
当前题号:10 | 题型:选择题 | 难度:0.99