试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省温州环大罗山联盟2020-2021学年高二下学期信息技术期中联考试卷

如下图所示,数组a中存储了一组正整数,特征是:①以三个数为一组的话,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组a的元素总个数为3的倍数。

8

5

3

17

14

10

32

25

24

53

50

35

73

66

61

图 a

依据对分查找思想,设计一个在数组a中查找数据key的程序。执行程序,在文本框Txt1中输入key的值,在文本框Txt2中显示查找结果。根据左右边界,计算中位值,并在标签L1中记录历次中位值的位置。

(1)、程序代码如下,请在划线处填入合适的代码。

Private Sub Command1_Click( )

Const n = 15

Dim a(1 To n) As Integer, search As Integer, key As Integer Dim i As Integer, j As Integer, m As Integer

Dim s As String

' 读取一组正整数,按上述规则存入数组,代码略。

key =

i = 1: j = n: search = 0

Do While i <= j

    m = (i + j) \ 2

    s = s + Str(m) + ","

    If m Mod 3 <> 0 Then  '把 m调整到三个一组的最后一个数的位置

    If key = a(m) Then search = m: Exit Do

    ElseIf key < a(m) Then j = m - 3

    ElseIfThen i = m + 1

    ElseIf key = a(m - 2) Then search = m - 2: Exit Do

    ElseIf key = a(m - 1) Then

        search = m - 1: Exit Do

    End If

Loop

If search <> 0 Then Txt2.Text = Str(search)

Else

    Txt2.Text = "找不到" End If

    L1.Caption = s

End Sub

(2)、a数组数据如图 a所示,如果key的值为 10,则L1上显示的内容为
举一反三
返回首页

试题篮