题库 高中信息

题干

(加试题)有如下VB程序段:
i=1:j=10:n=0:Key=Val(Text1.Text)
Do While i<=j
m=(i+j)\2
If a(m)<Key Then
i=m+1:n=n+1
Else
j=m-1:n=n-1
EndIf
Loop
数组元素a(1)到a(10)依次是33,42,48,57,69,71,75,89,91,96,在文本框Text1输入89,则变量n的最终值为()
A.2B.1C.0D.-2
上一题 下一题 0.99难度 选择题 更新时间:2019-03-02 03:53:02

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

同类题1

(二进制转十六进制)从文本框 TextB 输入一串不带符号位的二进制整数,单击“转换”按钮,将二进制转换为十六进制并显示在文本框 TextH 中。程序界面如图所示:

转换方法:先从右往左将二进制数分割成 4 位一组,若最左边的一组不足4位,则用 0 将高位补足,然后将每 4 位二进制数转换为 1 位十六进制数。
(1)观察程序代码,可知“转换”按钮的对象名为____________。(单选,填字母:
A.TextB/ B.TextH/B.Command1/C.Convert/D.转换)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Convert_Click()
Dim a(1 To 100) As Integer, temp As Integer
Dim s As String, res As String, n As Integer, r As Integer
res = ""
s=TextB.text
n = Len(s)
For i = 1 To n
a(i) = Val(Mid(s, i, 1))
Next i
t = n \ 4
r =   ①    
temp = 0
For i = 1 To r '将最高的 r 位转换为十六进制
 ②     
Next i
If temp > 9 Then
res = Chr(temp + 55)
ElseIf temp > 0 Then
res = CStr(temp) ‘Cstr()函数用于将数值转换为字符串,同时删除前导空格
End If
For i = 1 To t '将t组4位二进制转换为十六进制
Temp=0
For j=1 to 4
temp = temp+a(j+r+4*(i-1))*2^(4-j)
Next j
If temp > 9 Then
res = res + Chr(temp + 55)
Else
res = res + CStr(temp)
End If
Next i
TextH.Text = res
End Sub
第①处代码为______________________________________________ 
第②处代码为______________________________________________    
(3)若在文本框 TextB 中输入“101000111”,则单击”转换”按钮后的输出结果为:_________。