题库 高中信息

题干

某对分查找算法的 VB 程序段如下:(   )
i = 1: j = 7
key = Int(Rnd() * 100) Do While i <= j
m = (i + j) \ 2
If a(m) = Key Then
Exit Do
ElseIf a(m) > Key Then
j = m - 1
Else
i = m + 1
End If
数组元素 a(1)到 a(7)的值依次为“25,42,53,66,77,83,98”,运行上述程序段后,下列条件表达式肯定不成立的是
A.j-i=0B.i-j=2C.i=8D.m<=7
上一题 下一题 0.99难度 选择题 更新时间:2019-05-28 08:39:39

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

同类题1

查找并删除重复数据的算法是基于顺序查找的优化,主要思路是把待查数据的起点元素设置成查找关键字,然后从后往前查找,通过结束时停留的数据位置来判断查找结果(即结束时若停留在数据序列的起点,表示数据序列中无重复数据;否则,存在重复数据,删除该数据后继续查找)。
编写VB程序,实现上述算法。程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据;单击“去重”按钮(Command1),查找数组a中的重复数据并删除,即相同的数据仅保留一个,并在列表框List2中输出去重后的数组a中的数据,同时在标签Label1中显示删除的数据总个数,运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Const maxn = 10
Dim a(1 To maxn) As Integer
Private Sub Form_Load()
' maxn个数据存储在数组a中,并在列表框List1中显示
' 代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, n As Integer 'n用于存储当前查找的数组长度
Dim j As Integer, key As Integer   'key用于存储本次查找关键字的数据位置
key = 1: n = maxn
Do While key <= n

i = n

Do While  a(i) <> a(1)   '(1)

i = i - 1
Loop
If i = key Then   '找到重复数据,删除;未找到,设定下一查找关键字
key = key + 1
Else
For j = i To n - 1
a(j) = a(j + 1)
Next j
n = n - 1
End If
Loop
For i = 1 To n
List2.AddItem a(i)
Next i
Label1.Caption = "共删除重复数据:" &  Str(n)  & " 个" '(2)
End Sub

同类题2

VB猜价格小程序
高二(8)班决定在第11周开一个主题班会,为了丰富班会的内容,班主任要求班级几位信息高手,设计一个小程序,这事难不倒班上的各位大神,他们齐心协力,很快就完成了。
编写程序,实现如下功能:有6张待猜的商品图片加载到Image1中,通过上一个和下一个按钮进行切换,主持人可以通过“设置价格”按钮Command2对每一张商品图片设置一个价格,然后,单击“我来猜一猜”按钮开始猜价格游戏,每人只给8次(这个数据存放在变量n中)猜价格的机会,8次机会用完后,如果猜中价格,则在文本框Text2中显示处价格。

(1)窗体中有________个对象,________类。
(2)Command1对象的Caption属性值是_______________________________。
(3)实现上述功能的部分VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer
Dim n As Integer    '变量n存储猜价格的次数
Dim cai_shu As Integer    '变量cai_shu存储猜的价格
n = __________________
For i = 1 To n
cai_shu = Val(InputBox("请输入当前商品的价格:", "输入价格"))
If cai_shu = jg(dqtp) Then  'jg(dqtp)存储的是当前商品图片的价格
MsgBox "恭喜你猜对了"
Text2.PasswordChar = ""
Text2.Text = Text2.Text + "元"
Exit For
ElseIf __________________ Then
MsgBox "猜大了,再来猜一猜"
Else
MsgBox "猜小了,再来猜一猜"
End If
Next i
If i > n Then
MsgBox "猜价格次数用尽,很遗憾,你没有猜对!"
___________________
End Sub