题目

某字符串加密算法,规则如下: 1)根据字符串长度构建一个最小的n*n矩阵,将字符串中每个字符从左到右,自上而下顺序填入矩阵,不足部分用字符“*”代替; 2)将矩阵转置(行列对换),然后将奇数行字母内码加上1,偶数行字母内码减1,字符为a、z或A、Z时做循环处理。比如,字符a减1为z;字符Z加1为A。 3)按从左到右,从上而下依次取出字符,形成新的字符串。如图a为字符串“Go to the zoo.”的加密过程。编写VB程序,在文本框Text1中输入字符串,点击“加密”按钮,在文本框Text2中输出加密后的字符串。程序运行结果如图b所示。 图a 图b (1) 若在文本框Text1中输入3个字母“Far”,执行加密程序后,输出结果为。 (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码 Dim a(1 To 100) As String, b(1 To 100) As String, n As Integer Private Sub Command1_Click()     Dim s1 As String, s2 As String,i As Integer, j As Integer, m As Single     s1 = Text1.Text     m = Sqr(Len(s1))     If m > Int(m) Then n = Int(m) + 1 Else n = m     For i = 1 To n * n         If i <= Len(s1) Then  a(i) = Mid(s1, i, 1)   Else  a(i) = "*"     Next i     For i = 1 To n         For j = 1 To n             b((i - 1) * n + j) =     ‘将矩阵转置             b((i - 1) * n + j) = jm(i, j)   ‘内码变换         Next j     Next i     s2 = ""     For i = 1 To n * n         s2 = s2 & b(i)     Next i     Text2.Text = s2 End Sub Function jm(x As Integer, y As Integer) As String     Dim s As String     s = b((x - 1) * n + y)     If s <= "Z" And s >= "A" Or s <= "z" And s >= "a" Then         If x Mod 2 <> 0 Then             If s <> "Z" And s <> "z" Then                 s = Chr(Asc(s) + 1)             Else                 s = Chr(Asc(s) - 25)             End If         Else             If s <> "a" And s <> "A" Then                 s = Chr(Asc(s) - 1)             Else                 s =             End If         End If     End If      End Function 答案: 【1】Gsz* 【1】a((j - 1) * n + i)【2】Chr(Asc(s) + 25)【3】jm = s
信息技术 试题推荐
最近更新