题库 高中信息

题干

(加试题)有一组数据分别为“8,11,17,25,29,30,31,46”用对分查找和顺序查找数据 31 的过程中,两种 方法都能访问到的数字是(   )
A.11
B.17
C.29
D.30
上一题 下一题 0.99难度 选择题 更新时间:2019-04-21 04:12:01

答案(点此获取答案解析)

同类题3

酒店房间管理问题:某酒店房间(房间数小于1000)编号按1、2、3……连续编号,客房经理对没有入住的房间使用如下方法来登记管理。连续的空房间,登记第一个房间的编号和连续的空房间数,比如空房间1,2,6,7,8,10,则登记3条记录,分别为1_2,6_3,10_1。某旅客如果退房,需要把这个房间号也登记进去,共有4中情况需要处理:
(1)上靠:若退的房间号为3,则原来登记的记录变为1_3,6_3,10_1;
(2)下靠:若退的房间号为5,则原来登记的记录变为1_2,5_4,10_1;
(3)上下靠:若退的房间号为9,则原来登记的记录变为1_2,6_5;
(4)上下都不靠:若退的房间号为4,则原来登记的记录变为1_2,4_1,6_3,10_1
根据上述规则,小明编写了相应的VB程序,程序启动时读入空房间数据,并在列表框List1中显示,在文本框Text1中输入退房号,单击“退房”按钮后更新列表框List1中的数据。
程序界面如下图所示,请回答下列问题:

(1)当前登记的记录有3条,分别为2_3,6_2,9_4。某旅客退掉8号房间,则登记的记录将变为________。
第二部分通用技术(共50分)
(2)实现上述功能的VB程序如下,请将划线处的代码补充完整。
Const n=1000
Dim a(0 To n)As Integer a(i)保存第i条记录的开始房间号
Dim b(0 To n)As Integer b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer k为原始记录数
Private Sub Form_Load()
程序启动时从数据库中读取原始k条记录,依次存入a(1),b(1),a(2),b(2),…,a(k),b(k),代码略
为了程序处理方便,虚设下面两条记录
A(0)=0:b(0)=0:sp=k+1:a(sp )=1000:b(sp)=0
End Sub
Private Sub Command1_Click()

Dim i As Integer, j As Integer

c=Val(Text1.Text)

i=1

Do While a(i)<c

i=i+1

Loop

i=i-1

以下处理退房登记问题
Ifa(i)+b(i)=c Then
If a(i+1)=c+1Then   处理第3种情况

  __________

For j=i+1 To sp-1

a(j)=a(j+1):b(j)=b(j+1)
Next j
sp = sp-1

Else 处理第1种情况

b(i)=b(i)+1

End If

ElseIfc+1=a(i+1)Then 处理第2种情况

a(i+1)=c:b(i+1)=b(i+1)+1

Else 处理第4种情况

For j= ________

a(j)=a(j-1):b(j)=b(j-1)

Next j

a(i+1)=c:b(i+1)=1: ______

End If
List1.Clear
For i=1To sp-1

List1.Addltem"第"& CStr(i) &"条记录"&CStr(a(i))&"_"&CStr(b(i))

CStr函数的作用是将数字转成字符串

Next i

End Sub

同类题4

(加试题)最大回文子串。回文字符串是具有回文特性的字符串:即该字符串从左向右读, 与从右向左读都一样.如:凤落梧桐梧落凤,abcba 等。“最大回文子串”是指一个字符串中长 度最大的回文字符串,其基本算法思想如下:
(1)每个回文都有一个“中心”,当回文字符数为奇数时,中间的那个字符就是回文中心;但是当回文的字符数为偶数时,回文的中心是最中间的那两个字符,且这两个字符相同。
(2)对任意一个字符或者相同的两个连续字符,我们都可以假设它为回文的“中心”,向它的 左右两边扩展出尽可能长的回文。对于每种假设,我们都能得到一个回文,而最长回文必定由 其中的某个假设中得到!
现编写一个 V
A.程序,在 Text1 中输入一串字符,单击“统计”按钮,在 Text2 中显示该字 符串中的最大的回文子串(长度相同时,输出最左边的子串)。请回答下列问题:
(1)当 Text1 中输入“123321344332423112113123”时,则输出的结果为_________。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(0 To 100) As String Private Sub Command1 Click() Dim s As String
Dim left As Integer, right As Integer, i As Integer
Dim max As Integer, m As Integer, b1 As Integer
'变量 b1 用于记录回文子串的左端起点 Text2.Text = ""
s = Text1.Text n = Len(s)
For i = 1 To n

a(i) = Mid(s, i, 1) Next i

max = 0: left = 0: right = 0
For i = 1 To n left = i
right = i
m = longest(left, right) If m > max Then
b1 = i - m \ 2 max = m
End If left = i
right = i + 1
If a(left) = a(right) Then
m = longest(left, right) + 1
If m > max Then
①________
max = m
End If
End If
Next i
For i = b1 To ②________

Text2.Text = Text2.Text + a(i) Next i

End Sub
Function longest(left As Integer, right As Integer) As Integer
Dim p As Integer p = 1
Do While left > 1 And right < n And ③________
left = left - 1 right = right + 1 p = p + 2
Loop
longest = p
End Function