(加试题)小明编写了一个VB程序,功能如下:在文本框Text1中输入一段英文,并在文本框Text2中输入英文段落中的某个单词(或字符串),单击“最大间距”按钮(Command1)后,在文本框Text3中显示该单词在文中某两次出现的最大间距,若只出现一次或不出现则显示值为0。程序运行界面如下图所示:


实现上述功能的VB程序如下:
Private Sub Command1_Click()  
Dim a(1 To 1000) As String   '数组a存储文中出现该指定单词(或字符串)的各个位置
Dim s As String, c As String ,ch As String
Dim n As Integer, max As Integer, i As Integer
s = Text1.Text 
c = Text2.Text
n = 0: Max = 0
For i = 1 To Len(s) - Len(c) + 1
ch = 
If ch = c Then
n = n + 1
a(n) = i
If n >= 2 Then
If a(n) - a(n - 1) - Len(c) > Max Then Max = a(n) - a(n - 1) - Len(c)
End If
End If
Next i
Text3.Text =   
End Sub
以上程序段运行时,为了实现上述功能,划线处①和②应填入的代码分别为: 
(1)_______________________________; (2)_______________________________
当前题号:1 | 题型:填空题 | 难度:0.99
最大回文子串。回文字符串是具有回文特性的字符串:即该字符串从左向右读, 与从右向左读都一样.如:凤落梧桐梧落凤,abcba 等。“最大回文子串”是指一个字符串中长度最大的回文字符串,其基本算法思想如下:
(1)每个回文都有一个“中心”,当回文字符数为奇数时,中间的那个字符就是回文中心;但是当回文的字符数为偶数时,回文的中心是最中间的那两个字符,且这两个字符相同。
(2)对任意一个字符或者相同的两个连续字符,我们都可以假设它为回文的“中心”,向它的左右两边扩展出尽可能长的回文。对于每种假设,我们都能得到一个回文,而最长回文必定由其中的某个假设中得到。
现编写一个 VB 程序,在 Text1 中输入一串字符,单击“统计”按钮,在 Text2 中显示该字符串中的最大的回文子串(长度相同时,输出最左边的子串)。运行界面如图所示。

请回答下列问题:
(1)当 Text1 中输入“123321344332423112113123”时,则输出的结果为  。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(0 To 100) As String
Private Sub Command1_Click()
Dim s As String
Dim left As Integer, right As Integer, i As Integer
Dim max As Integer, m As Integer, b1 As Integer
'变量 b1 用于记录回文子串的左端起点
Text2.Text = " "
s = Text1.Text
n = Len(s)
For i = 1 To n
a(i) = Mid(s, i, 1)
Next i
max = 0: left = 0: right = 0
For i = 1 To n
left = i
right = i
m = longest(left, right)
If m > max Then
________①_________
max = m
End If
left = i
right = i + 1
If a(left) = a(right) Then
m = longest(left, right) + 1
If m > max Then
b1 = i - m \ 2 + 1
max = m
End If
End If
Next i
For i = b1 To _____②________
Text2.Text = Text2.Text + a(i)
Next i
End Sub
Function longest(left As Integer, right As Integer) As Integer
Dim p As Integer
p = 1
Do While left > 1 And right < n And _________③______________
left = left - 1
right = right + 1
p = p + 2
Loop
longest = p
End Function
当前题号:2 | 题型:填空题 | 难度:0.99
插入排序。小明用VB设计程序,主要功能如下:随机产生10个介于1到100之间的正整数数列,按升序排序后显示在List1列表框中,在文本框Text1中输入1个100以内的正整数,单击“插入”按钮Command1后将其插入到数列中,并保持数列仍然有序,显示在列表List2中,同时在标签Label4中显示插入的位置,程序界面如下图所示。

实现上述功能的VB程序代码如下,但是有两个地方有误,请改正。
Dim a(1 To 15) As Integer
Dim i, j As Integer
Const n=10
Private Sub Form_Load()

Randomize '随机生成n个1到100之间的正整数

For i = 1 To n

a(i) = Int(Rnd * 100) + 1

Next i

'将10个数从小到大排序

For i = 1 To n-1

k = i

For j = i + 1 To n

If  a(k) < a(j)  Then k = j ‘(1)

Next j

If i <> k Then

   t = a(i): a(i) = a(k): a(k) = t

End If

Next i

'将排好序的数输出在列表框Listl中

List1.Clear

For i = 1 To n

List1.AddItem Str(a(i))

Next i

End Sub
Private Sub Command1_Click()

Dim key As Integer

key = Val(Text1.Text)

i = 1

Do While key > a(i) And (i <= n)

i = i + 1

Loop

Label4.Caption = "该数插入的位置是:" + Str(i)

If i = 11 Then

  a(i) = key

Else

 For j = n+1 To i + 1 Step -1
a(j-1) = a(j+1) ‘(2)
Next j
a(i) = key

End If

List2.Clear

For i = 1 To 11

List2.AddItem a(i)

Next i

End Sub
当前题号:3 | 题型:填空题 | 难度:0.99
小明用VB程序编写了一个密码生成器,单击“生成密码”按钮生成一个8位数的密码,该密码必须同时包含数字、大写字母和小写字母,并在文本框Text1中显示。程序界面如下图所示。

(1)在设计程序界面时,要将文本框Text1中的内容清空,应修改该文本框的   属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Const n = 8
Dim s As String
Dim a As Integer, i As Integer
Dim x As Boolean, y As Boolean, z As Boolean
x = False
y = False
z = False
Randomize
Do While ①  
s = ""
For i = 1 To n
a = Int(Rnd() * 62) + 1
If a <= 10 Then
x = True
s = s + Chr(a + Asc("0") - 1)
ElseIf a <= 36 Then
y = True
s = s + Chr(a + Asc("A") - 11)
Else
z = True

End If
Next i
Loop
Text1.Text = ③   
End Sub
当前题号:4 | 题型:填空题 | 难度:0.99
某算法的流程图如下图所示。

当输入x的值为100时,在标签Label1中输出的内容为(   )
A.4B.33C.36D.48
当前题号:5 | 题型:选择题 | 难度:0.99
某 VB 程序代码如下:
For i = 1 To 3
For j = 5 To i Step -1
If a(j) < a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
List1.AddItem Str(a(i)) Next i
数组元素 a(1)到 a(6)的数据依次为“1,5,7,6,9,3”,经过该程序段加工后,列表框 list1 中显示的内容是( )
A.9 7  6B.1  3 5C.9 7 6 1 5 3D.9 7  6  5 3  1
当前题号:6 | 题型:选择题 | 难度:0.99
小王用 VB 编写一个自动统计离散数据的“极大值”(如图 a 所示)个数的程序。 功能如下:在列表框 List1 中随机产生 n 个介于[1,99]的正整数,单击“统计极大值”命令按钮 Command1,程序自动统计出极大值,并将其输出到列表框 List2,且将其中的最大值输出在标签 Label1 中。程序界面如图 b 所示,实现上述功能的 VB 程序如下。(假设:数据的左右两个端点不 计入极大值,且相等的两个值也不计入极大值)。请回答以下问题:

图 a 图 b
(1)当 n=6,原始数据为“8 39 24 5 71 25”,此时极大值有:  。
(2)请在划线处填入合适的代码。 Const n = 10
Dim a(1 To n) As Integer    '存储原始数据 Dim Max(1 To n) As Integer  '存储极大值数据
Private Sub Form_Load() '原始数据初始化
Randomize
For i = 1 To n
a(i) = ①  '产生[1,99]间随机整数
List1.AddItem Str(a(i))
Next i End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim count As Integer, Maxa As Integer
count = 0
List2.Clear
For i = 2 To n - 1 '统计极大值,左右两边端点值除外
If   ②     Then
count = count + 1
    ③   = a(i)
End If
Next i
Maxa = 0
For i = 1 To count
List2.AddItem Str(Max(i))
If Maxa < Max(i) Then
Maxa = Max(i)
End If
Next i
Label1.Caption = "极大值中的最大值为:" + Str(Maxa) End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
有如下 VB 程序段:
s = 0
For i = 1 To 10 
s = s + i Mod 2
Next i
Label1.Caption = Str(s) &“-”& str(i) 该程序段运行后,在标签 Label1 上显示的是(   )。
A.5-10B.5-11C.55-10D.1-11
当前题号:8 | 题型:选择题 | 难度:0.99
若一个正整数从左向右读与从右向左读都一样,我们就将其称之为回文数。如 11、121 均是回文数。请你编写程序,输出 10 至 n 之间的所有回文数。程序运行界面如图所示, 在文本框 Text1 中输入一个正整数 n,单击“查找”按钮 Command1,在列表框 List1 中显示 10 – n 之间的所有回文数,并且在标签 Label1 中输出查找到回文数的总数。

问题:实现上述功能的 VB 代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim n as long , sum as long , i As Long Dim x as long , y as long
List1.Clear
n = Val(Text1.Text) sum = 0
For i = 10 To n
  x = n   ’(1)
y = 0    
Do While x > 0
    y =  x Mod 10 ’(2)
x = x \ 10
Loop
If y = i Then
List1.additem  Str(i)
sum = sum+1
End if Next i
Label1.caption = “共有”& Str(sum) & “个回文数” End Sub
当前题号:9 | 题型:填空题 | 难度:0.99
将数学表达式写成VB表达式,正确的是( )
A.log(x)/(a+b)B.log(x)/a+b
C.ln(x)/(a+b)D.ln(x)/a+b
当前题号:10 | 题型:选择题 | 难度:0.99