选择题 适中0.65 引用1 组卷33
有如下程序段:
For i = 1 To 2
For j = i + 1 To 6
If a(i) > a(j) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next j
Next i
数组元素 a(1)到 a(6)的值依次为“3,4,2,1,5,0”,经过该程序段“加工”后,数组元素 a(1)到 a(6)的值依次为( )
For i = 1 To 2
For j = i + 1 To 6
If a(i) > a(j) Then
t = a(j): a(j) = a(i): a(i) = t
End If
Next j
Next i
数组元素 a(1)到 a(6)的值依次为“3,4,2,1,5,0”,经过该程序段“加工”后,数组元素 a(1)到 a(6)的值依次为( )
A.0,1,4,3,5,2 | B.0,1,2,3,4,5 |
C.0,1,2,4,5,3 | D.5,4,2,1,3,0 |
2020·浙江·一模
类题推荐
某种数据加密方法描述如下(加密前数据是ASCII字符):
●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。
●数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。
位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:
加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。
数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算(⊕)规则:如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。
●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是
则数据位置变换如下:
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:
(1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______ (填二进制数据)。
(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。
Const n = 1024
Dim c(1 To 8) As Integer
Private Sub Form _ Load()
‘产生位置变换密钥数组c,代码略
End Sub
Function convert(c As Integer)As String
‘程序功能:把整数c转成8位二进制数,代码略
End Function
Private Sub Command1_Click()
Dim s As String,st As String,ss As String,res As String
Dim i As Integer,j As Integer start As Integer
Dim a(1 To n) As String,b(1 To n) As String
s = Text1. Text
st = convert(Val(Text2. Text))
For i = 1 To Len(s)
a(i) = Mid(s,i,1)
Next i
i = 1:start = -8
Do While①________
If i Mod 8 = 1 Then start = start + 8
b(i)=②_______
i = i + 1
Loop
For j = i To Len(s)
b(j) = a(j)
Next j
For i = 1 To Len(s)
③________
For j = 1 To 8
If Mid(ss,j,1)= Mid(st,j,1)Then
res = res + "0" Else res = res + "1"
'按位异或
Next j
Next i
Text3. Text = res
End Sub
●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。
●数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。
位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:
加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。
数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算(⊕)规则:如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。
●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是
数组c | 3 | 6 | 1 | 5 | 2 | 8 | 4 | 7 |
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:
变换前 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
密钥m | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
变换后 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。
Const n = 1024
Dim c(1 To 8) As Integer
Private Sub Form _ Load()
‘产生位置变换密钥数组c,代码略
End Sub
Function convert(c As Integer)As String
‘程序功能:把整数c转成8位二进制数,代码略
End Function
Private Sub Command1_Click()
Dim s As String,st As String,ss As String,res As String
Dim i As Integer,j As Integer start As Integer
Dim a(1 To n) As String,b(1 To n) As String
s = Text1. Text
st = convert(Val(Text2. Text))
For i = 1 To Len(s)
a(i) = Mid(s,i,1)
Next i
i = 1:start = -8
Do While①
If i Mod 8 = 1 Then start = start + 8
b(i)=②
i = i + 1
Loop
For j = i To Len(s)
b(j) = a(j)
Next j
For i = 1 To Len(s)
③
For j = 1 To 8
If Mid(ss,j,1)= Mid(st,j,1)Then
res = res + "0" Else res = res + "1"
'按位异或
Next j
Next i
Text3. Text = res
End Sub
有如下程序段:
n=0:i=1:j=6
key=Val(Text l. Text)
Do While i<=j
Loop
d(1)到d(6)的值依次为“88,77,53,47,39,28”,并且输入key值为40,下列说法正确的是( )
n=0:i=1:j=6
key=Val(Text l. Text)
Do While i<=j
m=(i+j)\2
n=n+1
If key=d(m) Then Exit Do
If key>d(m) Then j=m-1 Else i=m+1
Loop
d(1)到d(6)的值依次为“88,77,53,47,39,28”,并且输入key值为40,下列说法正确的是( )
A.变量n中记录了查找次数,终值为3 |
B.数组d中的元素若无序,也可用此程序段进行查找某个数字 |
C.无论数组d中是否出现与key值相等的元素,循环结束后“i>j”一定成立 |
D.该程序段结束后,变量m的终值为5 |
某VB程序段功能为:数组a顺序不变,输出升序结果。例如a数组各元素的值分别为“53,9,71,45,10,41”,最终a数组保持不变,而列表框List2输出“9,10,41,45,53,71”。
Const n= 6
Dim a(1To n)As Integer
Private Sub Command1_Click()
Dim b(1To n)As Integer
Dim t As Integer, i As Integer, j As Integer
For i =1 To n
b(i)=i
Next i
For i=1 To ①
For i=1 To n
List2. AddItem a(b(i))
Next i
End Sub
上述程序段3处下划线的表达式分别为( )
Const n= 6
Dim a(1To n)As Integer
Private Sub Command1_Click()
Dim b(1To n)As Integer
Dim t As Integer, i As Integer, j As Integer
For i =1 To n
b(i)=i
Next i
For i=1 To ①
For j= ② To n
If ③ Then
t=b(i):b(i)=b(j):b(j)=t
End If
Next j
Next iFor i=1 To n
List2. AddItem a(b(i))
Next i
End Sub
上述程序段3处下划线的表达式分别为( )
A.①n-1 ②i+1 ③b(i)> b(j) |
B.①n-1 ②i+1 ③a(b(i))> a(b(j)) |
C.①n ②1 ③b(i)> b(j) |
D.①n ②1 ③a(b(i))> a(b(j)) |
组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网