题库 高中信息

题干

(加试题)对 n 个互不相同的整数(整数的最大值不超过 m)进行排序,排序要求如下:①奇 数在前,偶数在后;②奇数升序排序;③偶数降序排序。小刘用 VB 编写了实现上述功能的程序。 程序运行时,自动产生 n 个不同的随机数存储在数组 a 中,并在列表框 List1 中显示。单击按钮 Command1 后,按要求在列表框 List2 中输出排序后的结果。

实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Const n = 15
Const m = 100   '整数的最大值
Dim a(1 To n) As Integer
Private Sub Form_Load
'本过程产生 n 个不同随机数存储在数组 a 中,并在列表框 List1 中显示
End Sub
Private Sub Command1_Click Dim i As Integer
Dim flag(1 To m) As Boolean   'flag(i) = True 代表数组 a 中存在值为 i 的元素
For i = 1 To m flag(i) = False
Next i
For i = 1 To n
flag(i) = True 
①________
Next i
For i = 1 To m-1 Step 2
If flag(i) Then List2.AddItem Str(i) Next i
For i =2 To m
②________
If flag(i) Then List2.AddItem Str(i) Next i
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-03-30 05:21:34

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

同类题4

(加试题)小明编写了一个数据加密的VB程序功能如下:在文本框Text1中输入明文,单击“加 密”按钮Command1后在文本框Text2中显示加密后的密文,运行界面如下图所示。

其中加密算法如下:
①将明文中的ASCII码每3个字节为一组(该明文字符串均为ASCII码,且字节数为3的倍数),顺次连接 后得到24位二进制数
②将①中的24位二进制数每8位进行一次翻转操作,比如原来的“0101 0001”变为“1000 1010”
③将②所得24位二进制数逐位取反,比如原来的“1110”变为“0001”
④将③中所得的24位二进制数每6位一组转换为相应的十进制数,即得到对应的密文
⑤将所有密文顺序连接并输出 实现上述功能的VB程序如下,请回答下列问题:
(1)按照上述加密算法进行加密,则“ABC”的密文是________(已知“A”的ASCII码值为65)
(2)请在划线处填入合适代码:
Dim a(1 To 24) As Integer, k As Integer
Private Sub Command1_Click()
Dim mw As String, ch1 As Integer, ch2 As String, ch3 As String, s As String
Dim m As Integer, i As Integer, j As Integer
s = ""
mw = Text1.Text    ‘mw存储明文字符串
For i = 1 To Len(mw) Step 3
For j = 1 To 24    ‘初始化数组,用于存储三个字节的二进制数
a(j) = 0
Next j k=1
ch1 = Asc(Mid(mw, i, 1))
ch2 = Asc(Mid(mw, i + 1, 1))
ch3 = Asc(Mid(mw, i + 2, 1))
Convert (ch1)    ‘调用自定义过程Convert
Convert (ch2)
Convert (ch3)
For j = 1 To 24    ‘逐位取反
①____________
Next j
For j = 1 To 4 m = 0
For p =  ②____________ To j * 6    ‘每6位一组进行权值相加
m = m * 2 + a(p) Next p
s = s & m‘&连接运算符,连接数字和字符串时,会将数字自动转换为字符串 Next j
Next i
Text2.Text = s
End Sub
Sub Convert(x As Integer)
Dim i As Integer, j As Integer
Do While x > 0
a(k) = x Mod 2
x = x \ 2
k = k + 1
Loop
j = ③_____    ‘8位二进制数,高位补“0”
k = k + j
End Sub
相关知识点