题型:综合题 题类:常考题 难易度:普通
浙江省杭西高2019-2020学年高二下学期信息技术6月月考试卷
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 100)As Integer
Dim n As Integer
Private Sub Command1_Click() '生成n个有序数,显示在List1中
’有序代码略
End Sub
Private Sub Command2_ Click)
Dim t As Integer,i As Integer,j As Integer,temp As Integer
t=Val(Text2.Text)
For
Temp=
For j=i To i+1-t Step -1
a(j)=a(j-1)
Next j
Next i
For i=1 To n
List2.AddItem Str(a(i))
Next i
End Sub
①将该字符的ASCII码值转化为8位二进制数;
②将后4位二进制数进行按位取反(1变0,0变1);
③将操作②生成的4位二进制数均左移1位(原第1位变为新的第4位);
④原高4位二进制数连接到新的后4位二进制数成为最终加密后字符的内码。
例如:字符“a”经过上述加密运算,可得到字符“m”。
ASCII码值 |
转二进制 |
后四位取反 |
后四位左移 |
拼合 |
转十进制 |
转字符 |
97D |
01100001B |
1110 |
1101 |
01101101B |
109D |
“m” |
程序运行界面如图所示,请改正加框处有误的代码:
Private Sub Command1_Click()
Dim s As String:Dim sl As String:Dim jg As String
Dim n As Integer:Dim x As Integer:Dim i As Integer:Dim j As Integer
Dim a(15)As String
a(0)=“0000”:a(1)=“0001”:a(2)=“0010”:a(3)=“0011”
a(4)=“0100”:a(5)=“0101”:a(6)=“0110”:a(7)=“0111¨
a(8)=“1000”:a(9)=“1001”:a(10)=“1010”:a(11)=“1011¨
a(12)=“1100”:a(13)=“1101”:a(14)“1110”:a(15)=“1111”
jg=“ ”
s=Text1.Text
For i=1 To Len(s)
n=Asc(Mid(s,i,1))
low=n Mod 16
low=15-low ‘执行步骤②
s1=Mid(a(low),2,3)&Mid(a(low),1,1) ‘执行步骤③
For i=l To 4
x=x+Val(Mid(s1,j,1))* ‘⑴{#blank#}1{#/blank#}
Next j
x= *16+x ‘⑵{#blank#}2{#/blank#}
jg=jg&Chr(x)
Next i
Text2.Text=jg
End Sub
⑴从左向右将13个数字按顺序排列,最左边的是第1位,最右边的是第13位(即校验位)。将所有偶数位的数据相加,结果乘3,得到p。将除校验位以外所有奇数位的数据相加,得到q。
⑵计算p加q得到的和除以10的余数,再计算该余数以10为模的补数(如3以10位模的补数为7,8以10为模的补数为2)。
⑶若补数与校验位相等,则验证正确,否则验证错误。
小李对上述校验规则进行了加密处理,他将前12位数字分成3个一组。每组上每个数字分别循环向左移1位轮换(如第2位移到第1位,第7位移到第9位),再分别加上所处的位置后除以10 的余数,示例如下:
位置 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
原文 |
9 |
7 |
8 |
7 |
5 |
1 |
0 |
1 |
3 |
7 |
0 |
1 |
3 |
轮换 |
7 |
8 |
9 |
5 |
1 |
7 |
1 |
3 |
0 |
0 |
1 |
7 |
3 |
密文 |
8 |
0 |
2 |
9 |
6 |
3 |
8 |
1 |
9 |
0 |
2 |
9 |
3 |
小李还编写了解密验证程序,代码如下,运行界面如图所示。
Private Sub Command1_Click()
Dim i As Integer, t As Integer, code As String, res As String
Dim p As Integer, q As Integer, x As Integer
Dim a(1 To 13) As Integer
code = Text1.Text
For i = 1 To 12
ch = Mid(code, i, 1)
t = ①
a(i + 1 - ( ② ) * 3) = t
Next i
For i = 1 To 12
If i Mod 2 = 0 Then p = p + a(i) Else q = q + a(i)
Next i
x = ③
If x = Val(Mid(code,13,1)) Then res = "验证正确" Else res = "验证错误"
Label3.Caption = res
End Sub
请回答下列问题:
试题篮