题目

【加试题】某数据存储算法如下:使用长度为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,则存储在第 位置。   (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 ① ②  (3) 数组h中的元素值初始化为-1表示含义是。   答案: 【1】4 【1】t=d(i)Mod n【2】h(y)<>1 And h(y)<>x 【1】没有存储数据
信息技术 试题推荐
最近更新