试题

试题 试卷

logo
  • 题型:综合题 题类:常考题 难易度:困难

    【加试题】某数据存储算法如下:使用长度为n的一维数组h来存储m个不同整数型数据(m<n),数据的存储位置t根据存储数据的值除n取余计算得到。例如使用长度为11的数组来存储67,45,1 275,119,145,269,64共7个数据,先存储第1个数据67,67 Mod 11=1,在第1位置上没有数据,则存放在第1位置。第2个数据45,45 Mod 11=1,而在第1位置上已存有数据,那么查找下一位置有没有数据,现第2位置上没有数据,则存放在第2位置。在查找空位时如果到了数组最后一个位置还没有空位,则从头继续查找,以此类推……,举例数据存储结果如表所示。

    位置

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    数据

    64

    67

    45

    145

    269

    119

    1275

    (1)若按上述规则,再存储一个数据79,则存储在第1 位置。

     

    【答案】
    (2)当n=97时,实现上述数据存储及相应数据查找的VB程序如下,运行结果如图所示,请在画线处填入合适的代码。

    Const n=97

    Dim d(0 To 96)As Integer,h(0 To 96)As Integer

    Dim m As Integer      ‘变量m为数据个数

    Private Sub Command1_Click()    ‘数据存储

        Dim i As Integer,t As Integer

        ‘从数据库读取数据先存储在数组d中,代码略

        List1.Clear

        For i=0 To n-1

             h(i)=-1    ‘数组元素初始化

        Next i

        For i=0 To m

        ① 

            Do While h(t)<>-1

                 t=(t+1)Mod l2

            Loop

            h(t)=d(i)

      Next i

      For i=0 To n-1

        List1.AddItem Str(i)&“:”&Str(h(i))

      Next i

    End Sub

    Private Sub Command2_Click()    ‘数据查找

        Dim x As Integer,Y As Integer,z As Integer

        x=Val(Text1.Text)

        y=x Mod n

        z=1

        Do While   ②  

            z=z+1

            y=(y+1)Mod n

        Loop

        If h(y)=x Then

            Label2.Caption=“共查找了”&Str(z)&“次,在第”&,Str(y)&“位置找到”

        Else

            Label2.Caption=“共查找了”&Str(z)&“次,没有找到”

        End If

    End Sub

    1 ②2 

    【答案】
    (3)数组h中的元素值初始化为-1表示含义是1

     

    【答案】
    【考点】
    【解析】
      

    收藏 纠错

    组卷次数:1次 +选题

  • 举一反三
    返回首页

    试题篮

    共计:(0)道题