(1)授权码由10位字符组成,前8位为日期的密文,后2位为验证码;
(2)从右往左依次取日期的每一位字符,若该字符第一次出现,则直接取其对应的加密字符,否则取下一个不重复的加密字符。按此操作,依次取出该日期余下各位对应的加密字符;如日期为20201223,则依次取出的字符为“3、2、2、1、0、2、0、2”。
(3)求出所有日期字符数值的和,将和除16取余加1得到一位验证码字符;若和不小于16,则将和除16取整加1得到另一位验证码字符,否则另一位验证码字符为小写字母“x”。取出验证码重复时,处理规则与(2)相同。
加密(验证码)字符对应表如下:
值(十进制) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
加密(验证码)字符 | A | K | p | j | L | t | W | b | m | a | P | F | Z | q | y | c |

(1)若输入的日期是“20210108”,则labe12上显示内容为________________
(2)实现上述功能的VB程序段如下,请在划线处填入合适代码。
Dim f(0 To 15)As Integer
Const code = "AKpjLtWbmaPFZqyc"
Private Sub Comand1_Click()
Dim rq As String,sq As String
Dim c As Integer,i As Integer,d As Integer
For i = 0 To 15
f(i)= 0
Next i
rq = Text1. Text
sq="":d= 0
If Len(rq) <> 8 Then
Labe12. Caption ="请重新输入8位日期"
Else
For i = 1 To 8
c = Val(Mid(rq,i,1))
d =d + c
sq =①___
Next i
If d >= 16 Then
yz = getchar(d Mod 16 + 1) + getchar(d \ 16 + 1)
Else
yz = getchar(d Mod 16+ 1) + "x"
End If
Labe12. Caption = sq + yz
End If
End Sub
Function getchar(x As Integer) As String'获取不重复的加密字符
Dim flag As Boolean
flag = False
Do while flag = False
f(x)=f(x)+ 1
If f(x)= 1 Then
getchar =②___
f(x)=f(x)+ 1
flag = True
Else
③___
End If
Loop
End Function

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

