友情提示:380元/半年,儿童学编程,就上码丁实验室。
VB代码:(2018年8月金丽衢12校)14.某密钥的加密规则是:取字符ASCII码对应二进制的后4位,如果其值为0到7则显示该值,如果其值为8到11则对应显示“东南西北”,如果其值为12到15则对应显示“东南东北西南西北”。程序运行的界面如图所示,
(1)要使得程序开始运行时command1按钮上显示“解码”则可以在FormLoad()事件中添加的语句是 。(单选,填字母:A. Command1.text = “解码” / B. Command1.Caption = “解码” / C. Form.Caption = “解码”)(1分)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1Click()
Dim s As String, n As Integer, m As Integer, result As String
dw = “东南西北东南东北西南西北” : result = “”
①
For i = 1 To Len(s)
c = Mid(s, i, 1)
m = Asc(c) Mod 16
If m < 8 Then
result = result + Str(m)
ElseIf m >= 8 And m <= 11 Then
result = ②
ElseIf m >= 12 And m <= 15 Then
result = result + Mid(dw, 2 * (m – 10) + 1, 2)
End If
Next i
Label1.Caption = result
End Sub
程序中①处填入的是_________。(1分)
程序中②处填入的是_________。(2分)
(3)已知“a”的ASCII为97,“A”的ASCII为65,“0”的ASCII为“48”,由上述算法可知,在文本框Text1中输入字符串“mCn5”,在标签(label1)中输出的值为 。(1分)
参考答案如下:
(1) B (1分)
(2)① s = Text1.Text (1分)
② result + Mid(dw, m – 7, 1) (2分)
(3) 东北3西南5 (1分)
Python代码如下:
dw = “东南西北东南东北西南西北”
result = ”
s=input(‘输入代码:n’)
n=len(s)
for i in range(n):
c = s[i]
m = ord(c) % 16
if m<8:
result = result + str(m)
elif m>=8 and m<=11:
result =result + dw[m - 8]
elif m>=12 and m<=15:
result = result + dw[2 * (m - 10):2 * (m - 10)+2 ]
print(‘密码:’,result)
Python代码运行结果如下: