题型:单选题 题类:常考题 难易度:普通
【bj】高中信息技术综合库——面向对象程序设计 VB开发工具
⑴从左向右将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
请回答下列问题:
试题篮