题库 高中信息

题干

小张编写了一个查询汉字区位码的程序,程序具体功能:在文本框Text1中输入一个汉字的内码(处理码),单击“查询”按钮Command1后,在Text2中输出汉字的区码和位码。例如:汉字“啊”的内码和区位码的关系如下:
“啊”的区位码
区码
位码
十进制
16
01
十六进制
10
01
 
区位码分别转成十六进制后,将区码和位码分别加上十六进制数A0即得到内码。

“啊”的内码的十六进制形式即为B0A1H
程序运行界面如图所示:

Private Sub Command1_Click()
Dim i As Integer, q As Integer, w As Integer, s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To 4    '如果输入的处理码包含小写字母,则转成大写字母
c = Mid(s, i, 1)
If  _____ Then
s = Mid(s, 1, i - 1) + Chr(Asc(c) - 32) + Mid(s, i + 1, Len(s) - i)
End If
Next i
For  i = 1 To 4   '两个字节分别减去 A0H
c = Mid(s, i, 1)
If i Mod 2 = 1 Then
s1 = s1 & CStr((Asc(c) - Asc("A")))    'CStr( ):将括号内表达式的值转换为字符串型
Else
_____
End If
Next i
For i = 1 To 2    '将十六进制转换成十进制
q = q * 16 + Val(Mid(s1, i, 1))
_____
Next i
Text2.Text = "区号:" + Str(q) + "   位号:" + Str(w)
End Sub
(1)请在划线处填入合适的代码。
(2)如果输入的内码为 D1A7,则 Text2 中输出的内容是:_______________
上一题 下一题 0.99难度 填空题 更新时间:2019-07-10 02:39:25

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

同类题3

(加试题)某字符串(字节数为 2 的倍数)编码规则如下:
(1)将该字符串内码分成 2 个字节一组,每个字节前补上一个 0,构成 9 位二进制,顺次链接后得到 18 位二进制;
(2)将得到的 18 位二进制数字分成 3 组,每组 6 位;
(3)在每组数字前补上两个 0,得到 3 个字节的二进制数;
(4)将(3)中得到的三个字节的二进制数分别转换为十进制数;
(5)将每个十进制数转换为 1 个加密字符,对应的“ 密码表 ”按数值由小到大依次为 012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/” 小明按照上述方法,设计了一个字符串(仅包含 ASCII 字符)加密的 VB 程序,功能如下:单击“加密”按钮 Command1,程序依次将文本框 Text1 中每 2 个字符的 ASCII 码值按编码规则转换为三个加密字符,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序效果如下图所示。

实现上述功能的 VB 程序如下:
(1)在 Text1 中输入明文“AB”,用上述加密算法得到的密文为_____。
(2)实现上述功能的 VB 程序如下。请在划线处填入合适的代码。
Function cc(n As Integer) As String
Dim s As String
s = "012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
_____
End Function
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a1 As Integer, a2 As Integer
Dim b1 As Integer, b2 As Integer, b3 As Integer
s = Text1.Text
n = Len(s)
ss = ""
For i = 1 To n    Step 2
a1 = Asc(Mid(s, i, 1))
_____
b1 = a1 \ 8
b2 = _____
b3 = a2 Mod 64
ss = ss + cc(b1) + cc(b2) + cc(b3) Next i
Text2.Text = ss
End Sub