对于图中所示部分的文档,下列说法正确的是 ( )
′待排序数据已存储在数组a中(a(1)~a(n))
For i = 1 To n - 2
k = i
For j = ′①
If a(j) > a(k) Then k = j
Next j
If k <> i Then t = a(i): a(i) = a(k): a(k) = t
Next i
For i = 1 To n \ 2
j = 2 * i - 1
If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next i
For i = ′②
t = a(i): j = i - 1
Do While t > a(j)
a(j + 1) = a(j): j = j - 1
Loop
′③
Next i
上述程序段中 3 处方框处的代码分别为 ( )
⑴上靠:若退的房间号为3,则原来登记的记录变为1_3,6_3,10_1;
⑵下靠:若退的房间号为5,则原来登记的记录变为1_2,5_4,10_1;
⑶上下靠:若退的房间号为9,则原来登记的记录变为1_2,6_5;
⑷上下都不靠:若退的房间号为4,则原来登记的记录变为1_2,4_1,6_3,10_1
根据上述规则,小明编写了相应的VB程序,程序启动时读入空房间数据,并在列表框List1中显示,在文本框Text1中输入退房号,单击“退房”按钮后更新列表框List1中的数据。
程序界面如下图所示,请回答下列问题:
Const n=1000
Dim a(0 To n)As Integer ‘a(i)保存第i条记录的开始房间号
Dim b(0 To n)As Integer ‘b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer ‘k为原始记录数
Private Sub Form_Load()
‘程序启动时从数据库中读取原始k条记录,依次存入a(1),b(1),a(2),b(2),…,a(k),b(k),代码略
‘为了程序处理方便,虚设下面两条记录
A(0)=0: b(0)=0: sp=k+1: a(sp )=1000: b(sp)=0
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
c=Val(Text1.Text)
i=1
Do While a(i)<c
i=i+1
Loop
i=i-1
‘以下处理退房登记问题
If a(i)+b(i)=c Then
If a(i+1)=c+1Then ‘处理第3种情况
①
For j=i+1 To sp-1
a(j)=a(j+1):b(j)=b(j+1)
Next j
sp = sp-1
Else ‘处理第1种情况
b(i)=b(i)+1
End If
ElseIf c+1=a(i+1)Then ‘处理第2种情况
a(i+1)=c: b(i+1)=b(i+1)+1
Else ‘处理第4种情况
For j= ②
a(j)=a(j-1): b(j)=b(j-1)
Next j
a(i+1)=c: b(i+1)=1: ③
End If
List1.Clear
For i=1 To sp-1
List1.Addltem"第" & CStr(i) & "条记录" & CStr(a(i)) & "_" & CStr(b(i))
‘CStr函数的作用是将数字转成字符串
Next i
End Sub
① ② ③

图a
图b
图c
①描述网页中的文本、图像、超级链接等元素及构件网页
②将浏览器发出的请求发送到Web服务器
③将服务器回应的网页传回到发出请求的浏览器
④将不同地点的WWW网站链接起来
⑤超文本传输协议即HTTP(Hyper Text Transfer Protocol)
⑴将该字符的ASCII码转换成对应的2位十六进制数;
⑵将产生的十六进制数互换位置;
⑶步骤⑵产生的二位十六进制数即为该明文字符加密后的密文字符。
小明按照上述方法,设计了一个字符串加密的VB程序,功能如下:单击“生成密文”按钮 Command1,程序依次将文本框Text1中每个字符按上述规则进行加密处理,连接这些加密字符,最后在文本框Text2中输出加密结果。程序运行界面如图所示。
实现上述功能的VB程序如下:
Private sub Command2_Click()
Dim s As String, a As String, ans As String
Dim c As Integer, i As Integer
Dim s1 As String
s= Text1. Text
ans=" "
For i=1 To Len(s)
a=Mid(s, i, 1)
s1=
ans=
Next i
Text2. Text=ans
End Sub
Function DToh(x As Integer)As String
Dim str As string
str="0123456789ABCDEF"
Do While x < > 0
t=x Mod 16
x=x\16
Loop
End Function
Private Sub Command1_Click ()
Dim s As String, ch As String, flag As Boolean
Dim ch2 As String, res As String, i As Integer
s=Text.Text:res=“”
①
Do While<= Len (s)
flag= False
ch= Mid (s, i, 1)
If i= 1 And ch>=“a”And ch2<=“z”Then
ch= Chr (Asc(ch)-32)′小写字母转换为大写字母
End If
If ch=“.” Or ch=“?” Then flag=True
ch2= Mid(s,i+1. 1)
If flag And ch2>=“a”And ch2<=“Z”Then
ch2= Chr (Asc(ch2)-32)′小写字母转换为大写字母
res= ②
i=i+2
Else
i=i+1
res=res+ch
End If
Loop
Text2. Text=res
End Sub
① ②

实现上述功能的VB程序如下,请回答下列问题:
Dim ach(1 To 500) As String '存储各学生选课编码
Dim bno(1 To 10) As Integer '存储各科目编号
Dim bname(1 To 10) As String '存储各科目名称
Dim bnum(1 To 10) As Integer '存储各科目被选次数
Dim bmc(1 To 10) As Integer '存储各科目被选的名次
Dim n As Integer, num As Integer
Private Sub Command1_Click()
Dim i As Integer, km As String
km = "物理化学生物政治历史地理技术"
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, sql As String
cn.Open "provider=Microsoft.Jet.oledb.4.0;Data Source=" + App.Path + "\students.mdb"
rs.Open "select * from choose", cn
Do While Not rs.EOF
n = n + 1 : ach(n) = rs.Fields("subject") : rs.MoveNext
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
For i = 1 To 7
bno(i) = i
bname(i) = Mid(km, (i - 1) * 2 + 1, 2)
List2.AddItem Str(bno(i)) + "---" + bname(i)
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer
Dim c As String, per As Integer
For i = 1 To n
If check(ach(i)) = True Then
For j = 1 To 3
c = Mid(ach(i), j, 1)
bnum(Val(c)) =
Next j
num = num + 1
End If
Next i
i = 1
Do While i <= 7'该循环得到各学科被选人数的名次
bmc(i) = 1
For j = 1 To 7
If bnum(j) >bnum(i) Then
Next j
i = i + 1
Loop
For i = 1 To 7
For j = 1 To 7
If Then
per = Int(bnum(j) * 100 / num * 100) / 100
List3.AddItem Str(bno(j)) + "---" + bname(j) + "---" + Str(per) + "%"
End If
Next j
Next i
End Sub
Function check(s As String) As Boolean
'代码略! 若学生选科代码有效,函数返回True,否则返回False
End Function