(加试题)小明编写了一个数据加密的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

其中加密算法如下:
①将明文中的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
编写VB程序,实现如下功能:在文本框Text1中输入投资金额,Text2中输入投资的目标金额,Text3中输入投资的年收益率,单击按钮Command1,在文本框Text4中输出达成预期投资目标至少需要的年数。投资收益按复利计算,如投资金额10000元,年收益率为5%,则1年后的本息为10000×(1+5%),2年后的本息为10000×(1+5%)2。程序运行界面如下图所示。

(1)代码“Private Sub Command1_Click()”中的Command1_Click()是________(填字母:
(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

(1)代码“Private Sub Command1_Click()”中的Command1_Click()是________(填字母:
A.对象名/ | B.事件名/ | C.事件处理过程名/ | D.方法名) |
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
“字符洗牌”程序模拟扑克洗牌的操作,为了打乱牌序,把手上的扑克牌中间抽一部分放到最上面,完成一次洗牌(如字符串“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),则运行程序时会发生的错误消息为_________

(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.![]() |
(加试题)有如下 VB 程序段:
i=1:j=10:p=1 f=False k=Int(Rnd*100)+0.5
Do While i<=j And Not f m=Fix((i+j)\2+0.5)
If k=a(m) Then f=True
ElseIf k<a(m) Then j=m-1:p=p+1
Else
i=m+1:p=p-1
End If Loop Label1.Caption=Str(p)
数组元素 a(1)到 a(10)的值依次为“5,16,22,28,35,43,52,67,78,89”,执行该程序段后,标签显示的值不可能是( )
i=1:j=10:p=1 f=False k=Int(Rnd*100)+0.5
Do While i<=j And Not f m=Fix((i+j)\2+0.5)
If k=a(m) Then f=True
ElseIf k<a(m) Then j=m-1:p=p+1
Else
i=m+1:p=p-1
End If Loop Label1.Caption=Str(p)
数组元素 a(1)到 a(10)的值依次为“5,16,22,28,35,43,52,67,78,89”,执行该程序段后,标签显示的值不可能是( )
A.-3 |
B.-1 |
C.1 |
D.3 |
建立一个VB程序窗体,如图所示,下列说法正确的是
A.该窗体的名称是“第一个VB小程序” |
B.当前选中对象的类名是“Lab4” |
C.当前界面共有7个对象 |
D.“VB01.vbp”是窗体文件名 |
以下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
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
有如下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的值为_________。
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的值为_________。
(加试题)小明编写了一个求真分数精确值的 VB 程序。程序运行时,在文本框 Text1 中输入被 除数,在文本 Text2 中输入除数,并保证被除数小于除数,单击“计算”按钮 Command1,在 标签 Label3 中显示结果。如果无限小数的小数点后,从某一位起向右进行到某一位止的一节数 字循环出现,首尾衔接,称这种小数为循环小数,这一节数字称为循环节。如果商为循环小数 保留一个循环节,否则最多计算到第 20 位。 程序运行界面如下图所示。

(1)运行程序,在文本框 Text1 中输入被除数 13,在文本框 Text2 中输入除数 99,单击“计算”按钮 Command1,在标签 Label3 中显示的结果是_____。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer, b(1 To 20) As Integer
Private Sub Command1_Click
Dim m As Integer, n As Integer, pa As Integer, pb As Integer
Dim flag As Boolean, s As String m = Val(Text1.Text)
n = Val(Text2.Text)
s = Str(m) + "/" + Str(n) + " = " s = s + "0."
pa = 1: pb = 1: flag = True b(1) = m
m = m * 10
Do While pa <= 20 And flag = True a(pa) = m \ n
If a(pa) > 0 Then pb = pb + 1
①________
m= b(pb)*10
Else
m = m * 10
End If
flag = Jud(pb)
If b(pb) = 0 Then flag = False s =②_________
pa = pa + 1
Loop
Label3.Caption = s
End Sub
Function Jud(x As Integer) As Boolean
Dim i As Integer
For i = 1 To x - 1
If③________Then
Jud = False
Exit Function '退出自定义函数
End If
Next i
Jud = True
End Function

(1)运行程序,在文本框 Text1 中输入被除数 13,在文本框 Text2 中输入除数 99,单击“计算”按钮 Command1,在标签 Label3 中显示的结果是_____。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer, b(1 To 20) As Integer
Private Sub Command1_Click
Dim m As Integer, n As Integer, pa As Integer, pb As Integer
Dim flag As Boolean, s As String m = Val(Text1.Text)
n = Val(Text2.Text)
s = Str(m) + "/" + Str(n) + " = " s = s + "0."
pa = 1: pb = 1: flag = True b(1) = m
m = m * 10
Do While pa <= 20 And flag = True a(pa) = m \ n
If a(pa) > 0 Then pb = pb + 1
①________
m= b(pb)*10
Else
m = m * 10
End If
flag = Jud(pb)
If b(pb) = 0 Then flag = False s =②_________
pa = pa + 1
Loop
Label3.Caption = s
End Sub
Function Jud(x As Integer) As Boolean
Dim i As Integer
For i = 1 To x - 1
If③________Then
Jud = False
Exit Function '退出自定义函数
End If
Next i
Jud = True
End Function