题目

小明编写了一个字符串加密程序,功能如下:在文本框Text1中输人明码,单击“加密”按钮Command1后,在文本框Text2 中显示加密后的密文,运行界面如图所示。加密算法如下: ①将明码中每个字符的八位二进制ASCII码(不足八位的左端补0,凑足八位)分成两段(左4位一段,右4位为另一段),如字符“C”的二进制ASCI值为01000011,分段后为0100,0011 ; ②将高位段(左边4位)左移一位,并将原第一位数码移到第4位(如0100转化为1000),再转化为十六进制数(如1000 化为8); ③对另一段(右4位)执行2)所示算法,如0011→0110→6; ④顺次连接两位十六进制数,得到该字符的暗码,如“C”的暗码为“86”; ⑤将每个字符的暗码按照明码的顺序连接。 实现上述功能的VB程序如下,请回答下列问题: Private Sub Command1_Click()     Dim i As Integer, j As Integer, m As Integer, k As Integer     Dim c As String, x As Integer, y As Integer     Dim d(1 To 8)As Integer    '数组d存储字符ASCII码二进制从左到右的各位数码     Dim mw As String    'mw存储暗码     mw = " "     For i=1 To Len(Text1. Text)         c= Mid(Text1. Text, i, 1)         For j=1 To 8             d(j)=0         Next j         m= Asc(c)             ①             Do While m>0             d(k)=m Mod 2             m=m\2             k=k-1         Loop         x=d(1) : y=d(5)         For j=1 To 3             d(j)=d(j+1)                 ②            Next j         d(4)= x:d(8)=y         mw= mw十btoh(d)     Next i     Text2. Text= mw End Sub '以下函数是将数组元素中的二进制数转换成对应的十六进制数 Function btoh(m() As Integer) As String '将数组m作为函数的参数     Dim s As Integer, i As Integer     Dim str As String, ch As String     str=" "     s=0 : ch=" "     For i=1 To 8         s=s * 2+m(i)         If i=4 Then             ch= Mid(str, s+1, 1)             s= 0         End If     Next i         ③     End Function (1) 按照加密算法,字符“J”的密文是; (2) 请在划线处填入合适代码。 ① ② ③  答案: 【1】85 【1】k=8【2】d(j+4)=d(j+5)【3】btoh=ch+Mid(str, s+1, 1)
信息技术 试题推荐
最近更新