组卷题库 > 高中信息技术试卷库
试题详情
数组b是一个有重复数据的递增数组,现把前面n个元素整体移动到最后形成如“7,8,9,10,1,2,3,4”的排列形式。下列程序实现如下功能:输入一个数,利用对分查找算法在数组b中查找,返回查找结果在Label2输出,若有多个相同数据,则返回最左侧数据的位置。

Dim b(1 To 20) As Integer

Private Sub Command1_Click()

 Dim i As Integer, j As Integer, m As Integer

 i = 1: j = 20

 Key = Val(Text1.Text)

 Do While  (1)  

  m = (i + j + 1) \ 2

  If b(i) < b(m) Then

   If   (2)  Then 

    j = m - 1

   Else

    i = m + 1

  ElseIf Key = b(m) Then

   Exit Do

  Else

   If Key > b(m) And Key <= b(j) Then

    i = m + 1

   Else

    j = m - 1

  End If

 Loop

 If  (3)  Then

  Label2.Caption = "数组中无此数"

 Else

  Do While m > 0

   If Key = b(m) Then m = m - 1 Else Exit Do

  Loop

  Label2.Caption = "此数在第" + Str(m + 1) + "个位置"

 End If

End Sub

知识点
参考答案
采纳过本试题的试卷
    教育网站链接