组卷题库 > 高中信息技术试卷库
试题详情
【加试题】插值查找。在有序数组中查找值的VB程序段如下:

    Dim a(1 To 10)As Integer

    Dim i As Integer,j As Integer,m As Integer,flag As Boolean

    Dim key As Integer,n As Integer,C As Integer,d As Integer

    i=1:J=10:m=0:flag=False

    key=Val(Text1.Text)

    Do While i<=J And Not flag

        If key<a(i)Or key>a(j)Then n=-1:Exit Do  未找到退出

        If a(i) <>a(j) Then

            c=key-a(i):d=a(j)一a(i)

            m=i+Int(c*(j-i)/d)

        Else

            m=i

        End If

        If key=a(m)Then flag=True:n=m

        If key>a(m)Then i=m+1

        If key<a(m)Then j=m-1

    Loop

    If flag=False Then n=-1

其中数组元素a(1)到a(10)分别为“15,25,37,40,63,70,87,90,92,96”,下列说法错误的是(  )

A、如在文本框Text1中输入10,程序执行后,变量m取初值0,结果n=-1
B、如在文本框Text1中输入25,程序执行后,变量m的值变化为0→2,结果n=2
C、如在文本框Text1中输入40,程序执行后,变量m的值变化为0→3→4,结果n=4
D、如在文本框Text1中输入78,程序执行后,变量m的值变化为0→6→7,结果n=-1
知识点
参考答案
采纳过本试题的试卷
教育网站链接