小张要对一批数据加密,数据内容全部由英文单词和空格组成(不包含数字和标点符号,数据最终以英文单词结尾,每个单词至少由两个字母组成)。加密时小张先从文本框中读取整段原文内容,然后对每个单词进行如下操作:每个单词中第一个和第二个字母交换位置,第三个字母按字母表顺序向后移动3 位,并后移到整个单词的最后面,其余字母前移,过程如图所示。例如:单词“Hazarded”,经过转换之后得到的密文是“aHardedc”。
代码和程序运行界面如下所示,请在划线处填入合适的代码,并且在加框处代码有错误,请改正: Const n = 1000 Dim mw(0 To 1000) As String '存放转换后密文的字符 Function zh(s As String) As String '按字母表后移3位进行转换 Dim p As Integer,flag As Boolean If s >= "a" And s <= "z" Then p = Asc(s) - 96: flag = True Else p = Asc(s) - 64: flag = False End If ① If flag Then zh = Chr(p + 96) Else zh = Chr(p + 64) End Function Private Sub Command1_Click() Dim i As Integer, j As Integer, t As String, a As Integer Dim tmp As String, k As Integer, s As String s = Text1.Text k = 1: a = 1 For i = 1 To Len(s) t = Mid(s, i, 1) If t = " " Then k = 0: mw(i) = t Else If k < 3 Then mw(i + a) = t: a = -a Else tmp = zh(t) j = i Do While ② j = j + 1 Loop mw(j) = tmp ③ End If End If k = k + 1 Next i For i = 1 To Len(s) Text2.Text = Text2.Text + mw(i) Next i End Sub 请回答下列问题:
(1)
如果输入的原文单词是“TextBox”,则加密后的密文是
(2)
加框处代码有错误,则正确的是
(3)
请将划线处补充完整
① ② ③
答案: 【1】eTtBoxa
【1】j < Len(s) And Mid(s, j + 1, 1) <> " "
【1】p = (p + 2) Mod 26 + 1【2】mw(j) = Mid(s, j + 1, 1)【3】i = j