题型:单选题 题类:常考题 难易度:困难
浙江省嘉兴市、丽水市2017-2018学年选考信息技术教学测试试卷(3月)
Key=Val(Text1.Text)
i=1:j=10
flag=False
s=””
Do While i<一i And NOt flag
mid1=Int(i+(j-i)/3)
mid2=Int(j-(i-i)/3)
If Key=a(mid1)Then
flag=True
ElseIf Key<a(mid1) Then
j=mid1-1
ElseIf Key=a(mid2) Then
flag=True
ElseIf Key>a(mid2) Then
j=mid2+1
Else
i=mid1+1
i=mid2-1
End If
s=s&” ”& mid1 & “:”& mid2
Loop
Text2.Text=s
已知数组a(1 To 10)中的数据分别是12,21,34.45,59,63,72,86,94,100,在文本框Text1中输入34,程序运行后文本框Text2中显示的内容是( )
a(1) |
a(2) |
a(3) |
…… |
a(n —2) |
a(n—1) |
a(n) |
3 |
25 |
38 |
…… |
55 |
31 |
12 |
依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Const n = 6
Dim a(1 To n)As Integer,flag As Boolean
Dim i As Integer,j As Integer,m As Integer,key As Integer
'读取一组正整数,按上述规则存入数组a中,代码略。
key = VaKText1. Text)
i = 1
j = (n + 1) \ 2
flag = False
Do While And Not flag ‘①
m = (i + j) \ 2
If key = a(m) Then
flag = True
ElseIf key< a(m) Then
j = m - 1
Else
i = m + 1
End If
Loop
If Not flag And j > 0 Then
m = ‘②
If key = a(m) Then flag = True
End If
If flag Then
Text2. Text = Str(m)
Else
Text2. Text = "找不到"
End If
End Sub
①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#}
试题篮