(加试题)有如下VB程序段:
i=1:j=10:n=0:Key=Val(Text1.Text)
Do While i<=j
m=(i+j)\2
If a(m)<Key Then
i=m+1:n=n+1
Else
j=m-1:n=n-1
EndIf
Loop
数组元素a(1)到a(10)依次是33,42,48,57,69,71,75,89,91,96,在文本框Text1输入89,则变量n的最终值为()
A.2B.1C.0D.-2
当前题号:1 | 题型:选择题 | 难度:0.99
(加试题)双调序列:指的是有n个整数进行排序,在序列中第一个数是n个数当中最大数,第二 个数是n个数中最小数,第三个数是n个数中的第二大数,第四个是n个数中的第二小数……取过的数字 不能再取,依次类推,直到结束。
小明根据上述概念制作了VB应用程序,功能如下:程序运行后,点击“生成”按钮Command1随机生成10个不重复的[0,99]内的整数,列表框List1中显示排序之前数据;单击“排序”按钮Command2,在列 表框List2中显示这些数据的双调序列结果。其程序界面如图所示。 实现上述功能的VB代码如下,但加框处代码有错,请改正。

Const n = 10
Dim a(1 To n) As Integer Dim b(0 To 99) As Integer Private Sub Command1_Click()
‘随机生成10个不重复的[0,99]之间的整数,存储在a数组中,代码略。
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer k = 0
For i = 1 To n
b(i) = b(i) + 1    '①________
Next i
For j = 0 To 99
If b(j) = 1 Then k = k + 1
a(k) = j
End If
Next j
For i = 1 To n \ 2
List2.AddItem Str(a(n - i))    '②________
List2.AddItem Str(a(i))
Next i
End Sub
当前题号:2 | 题型:填空题 | 难度:0.99
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围为[2, 22],数字2在数2 中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2 在该范围内一共出现了6次。 小明编写如下图所示VB应用程序,在文本框Text1中输入区间左边界,在文本框Text2中输入区间右边 界,单击“统计数字”按钮Command1后,在标签框Label1中输出给定区间内所有整数中出现“2”的次 数。

(1)要使程序运行时,窗体Form1标题显示“统计数字”,则需在Form_Load事件过程中添加语句________
(单选,填字母:
A.Form1.Text="统计数字"/B.Form1.Caption="统计数字"/C.Form1.AddItem "统计数字")
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim left As Integer, right As Integer, s As String
Dim i As Integer, j As Integer, k As Integer, ch As String left = Val(Text1.Text)
right = Val(Text2.Text)
s = ""
k = 0
①________
Do While i <= right
s = s + Str(i)
i = i + 1
Loop
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "2" Then ②_____ 
Next i
Label1.Caption = Str(left) + "到" + Str(right) + "之间出现2的次数为" + Str(k) End Sub
(3)若在文本框Text1中输入300,在Text2中输入400,单击“统计数字”按钮后,标签Label1中显示的 内容是________。
当前题号:3 | 题型:填空题 | 难度:0.99
(加试题)小明编写了一个数据加密的VB程序功能如下:在文本框Text1中输入明文,单击“加 密”按钮Command1后在文本框Text2中显示加密后的密文,运行界面如下图所示。

其中加密算法如下:
①将明文中的ASCII码每3个字节为一组(该明文字符串均为ASCII码,且字节数为3的倍数),顺次连接 后得到24位二进制数
②将①中的24位二进制数每8位进行一次翻转操作,比如原来的“0101 0001”变为“1000 1010”
③将②所得24位二进制数逐位取反,比如原来的“1110”变为“0001”
④将③中所得的24位二进制数每6位一组转换为相应的十进制数,即得到对应的密文
⑤将所有密文顺序连接并输出 实现上述功能的VB程序如下,请回答下列问题:
(1)按照上述加密算法进行加密,则“ABC”的密文是________(已知“A”的ASCII码值为65)
(2)请在划线处填入合适代码:
Dim a(1 To 24) As Integer, k As Integer
Private Sub Command1_Click()
Dim mw As String, ch1 As Integer, ch2 As String, ch3 As String, s As String
Dim m As Integer, i As Integer, j As Integer
s = ""
mw = Text1.Text    ‘mw存储明文字符串
For i = 1 To Len(mw) Step 3
For j = 1 To 24    ‘初始化数组,用于存储三个字节的二进制数
a(j) = 0
Next j k=1
ch1 = Asc(Mid(mw, i, 1))
ch2 = Asc(Mid(mw, i + 1, 1))
ch3 = Asc(Mid(mw, i + 2, 1))
Convert (ch1)    ‘调用自定义过程Convert
Convert (ch2)
Convert (ch3)
For j = 1 To 24    ‘逐位取反
①____________
Next j
For j = 1 To 4 m = 0
For p =  ②____________ To j * 6    ‘每6位一组进行权值相加
m = m * 2 + a(p) Next p
s = s & m‘&连接运算符,连接数字和字符串时,会将数字自动转换为字符串 Next j
Next i
Text2.Text = s
End Sub
Sub Convert(x As Integer)
Dim i As Integer, j As Integer
Do While x > 0
a(k) = x Mod 2
x = x \ 2
k = k + 1
Loop
j = ③_____    ‘8位二进制数,高位补“0”
k = k + j
End Sub
当前题号:4 | 题型:填空题 | 难度:0.99
编写VB程序,实现如下功能:在文本框Text1中输入投资金额,Text2中输入投资的目标金额,Text3中输入投资的年收益率,单击按钮Command1,在文本框Text4中输出达成预期投资目标至少需要的年数。投资收益按复利计算,如投资金额10000元,年收益率为5%,则1年后的本息为10000×(1+5%),2年后的本息为10000×(1+5%)2。程序运行界面如下图所示。

(1)代码“Private Sub Command1_Click()”中的Command1_Click()是________(填字母:
A.对象名/B.事件名/C.事件处理过程名/D.方法名)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim pv As Single, fv As Single, rate As Single, n As Integer
pv = Val(Text1.Text)
fv = Val(Text2.Text)
_________①_________
n = 1
Do While pv<fv
pv =" pv" * (1 + rate)
List1.AddItem "第" + Str(n) + "年" + "  " + Str(pv) + "元"
______________
Loop
________③________
End Sub
当前题号:5 | 题型:填空题 | 难度:0.99
“字符洗牌”程序模拟扑克洗牌的操作,为了打乱牌序,把手上的扑克牌中间抽一部分放到最上面,完成一次洗牌(如字符串“1234ABCD”,若把中间的第3个到第5字母抽出并保持原来的顺序放到最前面,则一次洗牌操作后字符串变成“34A12BCD”),也可以把扑克牌分成上下两部分,把下面的部分放置到上面(如字符串“1234ABCD”,把第3个字符到最后一个字符移到前面,变成“34ABCD12”),多次重复做这个动作,就能达到洗牌的目的,效果如图所示。

(1)若要把窗体的标题名称由“Form1” 改为“字符洗牌”,应改变窗体的_______属性。
(2)完成上述功能的程序代码如下,请在划线处填入合适的代码
Private Sub Command1_Click()
Dim r As Integer, k1 As Integer, k2 As Integer, r As Integer
Dim s As String, n As Integer
_____   '从文本框TxtIn中获取字符串
Randomize
r = Int(Rnd() * 10) + 1   '随机生成洗牌次数
n = Len(s)
Do While r >= 1 '洗牌操作
k1 = Int(Rnd() * (n - 2)) + 2
k2 = Int(Rnd() * (n - k1 + 1)) + k1
s = _____      + Mid(s, 1, k1 - 1) + Mid(s, k2 + 1, n - k2)  
r = r - 1
Loop
TxtOut.Text = s   ' 输出结果
End Sub
(3)若加框处的语句改为TxtOut.Text = Str(s),则运行程序时会发生的错误消息为_________
A.B.
C.D.
当前题号:6 | 题型:填空题 | 难度:0.99
以下Visual Basic程序的功能是: 计算表达式1+2+22+23+24+25+26+27+28+29+210的值,并在文本框Text1中输出结果。为了实现这一功能,请在程序中划线处填入正确的语句:
Private Sub Command1_Click()
Dim i As Integer,s As Long
(1)_______
k = 2
For i= 1 To 10
s = s + k
(2)______
Next i
Text1.Text=Str(s)
End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
有如下Visual Basic程序:
Private Sub Command1_Click(___)
Dim a(1 To 100) As Integer, i As Integer, s As Integer
s = 0
For i = 2 To 100 Step 2
a(i) = i * 2
s = s + a(i)
Next i
Text1.Text = Str(s)
End Sub
问:
(1)程序运行后,下标变量a(4)的值为_________。
(2)循环刚退出时,变量i的值为_________。
当前题号:8 | 题型:填空题 | 难度:0.99
下列运算结果中,值最大的是 ( )
A.3\4
B.3/4
C.4 mod 3
D.3 mod 4
当前题号:9 | 题型:选择题 | 难度:0.99
下列属于字符常量的是(   )。
A.Abs(x)
B."100"
C.val("100")
D.10000/100
当前题号:10 | 题型:选择题 | 难度:0.99