题库 高中信息

题干

编写VB程序,实现如下功能:在文本框Text1 输入字母字符串,单击“加密”按钮Command1,字符进行逐个加密,加密过程是,先在“密码本”m中找到相应字符,再从Text3中得到其所对应位置的密钥,并在文本框Text2中显示密文(运行效果如下图所示)。本题暂时不考虑解密问题。实现上述功能的VB代码如下:

请在划线处填入合适代码。
Private SubCommand1_Click()
Dim s As String, m As String
Dim t As String
Dim k As String
Dim c As Integer
s = Text1.Text
n1 = Len(s)
s3 = Text3.Text
n3 = Len(s3)
If n3 < 26 Then
Label1.Caption = "请重新输入密钥!"
Text3.Text = ""
Exit Sub
End If
m = "abcdefghijklmnopqrstuvwxyz"
For i =" 1" To n1
k =" Mid(s," i, 1)
If ①Then    '将大写字母转换为小写
k =" Chr(Asc(k)" + 32)
End If
c = 1
Do While c <= Len(m)
If k =" Mid(m," c, 1) Then
Exit Do
End If
②
Loop
t =" t" +③
Next i
Text2.Text = t
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2017-02-15 05:47:49

答案(点此获取答案解析)

同类题4

(加试题)异或的数学符号为“⊕”,其运算法则相当于不带进位的二进制加法:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(即符号两侧数值相同时,计算结果为0;数值不同时为1)。
如果要对两个十进制数进行异或运算,可以按以下步骤进行:
①   先将要进行异或运算的两个十进制数分别转换为二进制;
②   对两个二进制数按位进行异或运算;例:(101101)2⊕(111)2=(101010)2
③   再把步骤②中的运算结果转换为十进制,该十进制数即为运算结果。
小明编写了一个VB程序来模拟上述运算过程,程序功能如下:在文本框Text1和Text2中分别输入要参加异或运算的十进制数,单击计算按钮Command1,程序对输入的两个数进行异或运算,并将运算结果显示在文本框Text3中,程序运行界面如图所示。

(1)通过以上关于异或运算的描述,可知10⊕6的结果是___________。
(2)实现上述功能的VB程序如下。请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Dim a1 As String, b1 As String
Dim lena1 As Integer, lenb1 As Integer, i As Integer
Dim result As String
a = Val(Text1.Text)
b = Val(Text2.Text)
If a > b Then
c = a: a = b: b = c
End If
result = ""
a1 = DtoB(a): b1 = DtoB(b)
lena1 = Len(a1): lenb1 = Len(b1)
i = 1
Do While i <= lena1
If Mid(a1, lena1 - i + 1, 1) = Mid(b1, lenb1 - i + 1, 1) Then
result = "0" + result
Else
result = "1" + result
End If
i = i + 1
Loop
result =①_____
Text3.Text = BtoD(result)
End Sub
Public Function DtoB(x As Integer) As String
Dim remainder As String
DtoB = ""
Do While x > 0
remainder = CStr(x Mod 2)  '如:CStr(3 Mod 2)的值为"1"
DtoB = remainder + DtoB
②________  
Loop
End Function
Public Function BtoD(x As String) As Integer
Dim i As Integer
BtoD = 0
For i = 1 To Len(x)
BtoD =③________+ Val(Mid(x, i, 1))
Next i
End Function