x = ①
t = 0: s = ""
Do While x <> 0
t = ②
x = x \ 10
Loop
If ③ Then Then Then s = "是9的倍数" Else s = "不是9的倍数"
s = "defghiabc"
key = Text1.Text
i = 1: j = Len(s)
Do While i <= j
m = (i + j) \ 2
c = Mid(s, m, 1)
If c = key Then Exit Do
If Mid(s, i, 1) < c Then
If key >= Mid(s, i, 1) And key < c Then j = m - 1 Else i = m + 1
Else
If key > c And key <= Mid(s, j, 1) Then i = m + 1 Else j = m - 1
End If
ans = ans + Str(m)
Loop
运行程序后,若在文本框Text1中输入字符"b",则变量ans的值是( )
图a
图b
a(1) |
a(2) |
a(3) |
a(4) |
a(5) |
19 |
17 |
6 |
4 |
3 |
a数组
b(1) |
b(2) |
b(3) |
b(4) |
b(5) |
b(6) |
5 |
7 |
8 |
13 |
15 |
20 |
b数组
c(1) |
c(2) |
c(3) |
c(4) |
c(5) |
c(6) |
c(7) |
c(8) |
c(9) |
c(10) |
c(11) |
3 |
5 |
7 |
13 |
17 |
20 |
19 |
15 |
8 |
6 |
4 |
c数组
当窗体Form1加载时,自动产生a、b数组的数据,并分别显示在列表框List1与List2中,单击合并按钮Command1后,在c数组中保存按规则合并后的a、b数组的数据,并显示在列表框List3中。程序截图如下所示:
实现该功能的VB程序如下:
Const m = 5
Const n = 6
Dim a(1 To m) As Integer
Dim b(1 To n) As Integer
Dim c(1 To m + n) As Integer
‘窗体加载时,生成数组a、b中的数据,并按要求排序后显示在列表框中,代码略
Private Sub Command1_Click()
Dim pa As Integer, pb As Integer, pc As Integer, s As Integer, flag As Boolean
pa = m: pb = 1: pc = 1
flag = True
Do While ①
If a(pa) < b(pb) Then
s = a(pa)
pa = pa - 1
Else
s = b(pb)
pb = pb + 1
End If
c(pc) = s
If flag Then
pc = m + n - pc + 1
Else
pc =
End If
②
Loop
‘处理a、b数组中剩余数据,并在列表框List3中输出数组c,代码略
End Sub
① ②
⑴从左向右将13个数字按顺序排列,最左边的是第1位,最右边的是第13位(即校验位)。将所有偶数位的数据相加,结果乘3,得到p。将除校验位以外所有奇数位的数据相加,得到q。
⑵计算p加q得到的和除以10的余数,再计算该余数以10为模的补数(如3以10位模的补数为7,8以10为模的补数为2)。
⑶若补数与校验位相等,则验证正确,否则验证错误。
小李对上述校验规则进行了加密处理,他将前12位数字分成3个一组。每组上每个数字分别循环向左移1位轮换(如第2位移到第1位,第7位移到第9位),再分别加上所处的位置后除以10 的余数,示例如下:
位置 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
原文 |
9 |
7 |
8 |
7 |
5 |
1 |
0 |
1 |
3 |
7 |
0 |
1 |
3 |
轮换 |
7 |
8 |
9 |
5 |
1 |
7 |
1 |
3 |
0 |
0 |
1 |
7 |
3 |
密文 |
8 |
0 |
2 |
9 |
6 |
3 |
8 |
1 |
9 |
0 |
2 |
9 |
3 |
小李还编写了解密验证程序,代码如下,运行界面如图所示。
Private Sub Command1_Click()
Dim i As Integer, t As Integer, code As String, res As String
Dim p As Integer, q As Integer, x As Integer
Dim a(1 To 13) As Integer
code = Text1.Text
For i = 1 To 12
ch = Mid(code, i, 1)
t = ①
a(i + 1 - ( ② ) * 3) = t
Next i
For i = 1 To 12
If i Mod 2 = 0 Then p = p + a(i) Else q = q + a(i)
Next i
x = ③
If x = Val(Mid(code,13,1)) Then res = "验证正确" Else res = "验证错误"
Label3.Caption = res
End Sub
请回答下列问题:
① ② ③