Const n = 6
Dim a(1 To n) As Integer, f(1 To 10) As Boolean
Dim tmp As Integer, i As Integer, j As Integer, t As Integer
′f数组各元素的初值置为False,代码略
For i = 1 To
t = Int(1+Rnd * 10)
If Not f(t) Then
a(i) = t : f(t) = True
For j =
If a(j) < a(j-1) Then
tmp = a(j): a(j) = a(j-1): a(j-1) = tmp
End If
Next j
Else
End If
Next i
上述程序段3个方框处的表达式分别为( )
i = 1: j = 8: c = 0
key = 32
Do While i <= j
m = (i + j) \ 2
t = b(m)
c = c + 1
If a(t) = key Then p = t: Exit Do
If a(t) < key Then i = m + 1 Else j = m - 1
Loop
程序运行结束后变量c的值为( )
实现上述功能的VB代码如下。
Private Sub Command1_Click()
Dim pre(0 to 30)As Long, cur(0 to 30)As Long
Dim s As String, i As Integer, j As Integer
n = Val(Text1.Text)
′I处
For i = 1 To n
s = “”
For j = 1 To i
cur(j)= ′II处
s = s & str(cur(j))& “ ”
Next j
For j = 1 To i
pre(j)= cur(j)
Next j
Next i
Label1.Caption = s
End Sub
方框处的代码会是以下四句中的某一句:
① cur(1)=1 ②pre(1)=1 ③pre(j-1)+ per(j+1) ④pre(j-1)+ per(j)
程序中I、II方框处正确的选项是( )
图a
图b
图c
1)将明文中每个字符用8位二进制ASCII码(不足八位的左端补0,凑足八位)表示;如“A”的二进制ASCII码值为01000001;
2)对8位二进制编码进行取反码(0变1,1变0)操作,如01000001的反码是10111110;
3)将8位二进制反码用2位十六进制表示,得到该字符的密文;
4)将每个字符的密文按照明文的倒序连接。
实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim i As Integer, j As Integer, m As Integer, k As Integer
Dim c As String, x As Integer, y As Integer
Dim d(1 To 8) As Integer '数组d存储字符ASCII码二进制从左到右的各位数码
Dim mw As String 'mw存储密文
mw = ""
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
For j = 1 To 8
‘I处
Next j
m = Asc(c)
k = 8
Do While ‘II处
d(k)= ①
m = m \ 2
k = k - 1
Loop
mw = btoh(d) + mw
Next i
Text2.Text = mw
End Sub
Function btoh(m() As Integer) As String
′自定义函数是将m数组中的二进制数转换成对应的十六进制数
Dim s As Integer, i As Integer
Dim str As String, ch As String
str = "0123456789ABCDEF"
s = 0: ch = ""
For i = 1 To 8
s = s * 2 + m(i)
If ② Then
btoh =btoh+ Mid(str, s + 1, 1)
s = 0
End If
Next i
End Function
阅读分析程序代码,请回答下列问题:
① ②
1)用数组b存储最小下降数列中最小的元素(查找过程中的最小值)b(1)开始为数组a第1个元素;
2)加入方法:将a(i)与数组b中的每个元素依次逐个比较:若a(i)比b(j)小就用a(i)替换b(j)中的值;将a(i)添加到第j个下降数列中,并存储在c数组的c(j)中;
3)若数组a各元素的值为:34,54,3,76,2,3时,则3个下降数列分别为:
“34,3,2”,“54,3”,“76”。
程序运行界面如下图所示:
依据上述描述设计了如下VB程序。请回答下列问题:
Const n = 20
Dim a(1 To n) As Integer
Private Sub Form_Load()
'读取n个数据,依次存储到a(1)、a(2)、……a(n)中,代码略
End Sub
Private Sub Command1_Click()
Dim b(1 To n) As Integer '存储数列最小的值
Dim c(1 To n) As String '存储下降数列
Dim i As Integer
Dim j As Integer
Dim bn As Integer '存储下降数列个数
b(1) = a(1)
bn = 1
c(1) = Str(a(1))
For i =
For j = 1 To bn
If a(i) < b(j) Then
b(j) = a(i)
Exit For
End If
Next j
If j > bn Then
bn = bn + 1
c(bn) = Str(a(i))
End If
Next i
For i = 1 To bn
List1.AddItem c(i)
Next i
Text2.Text = "数列中共有" + Str(bn) + "个下降序列"
End Sub