试题

试题 试卷

logo

题型:单选题 题类:常考题 难易度:困难

浙江省丽水市2018-2019学年高二下学期信息技术期末考试试卷

数组d中存储的是一组降序的正整数。依据对分查找算法,设计一个在数组d中查找数据key所在位置的程序。实现该功能的VB程序段如下:

key = Val(Text1.Text)

i = 1: j = 10

Do While i <= j

  m = (i + j) \ 2

  If  Then

    Text2.Text = "在第" + Str(m) + "个"

    Exit Do  'Exit Do 表示退出循环

  ElseIf  Then

     i = m + 1

  Else

   

  End If

Loop

If i >j Then Text2.Text = "找不到目标"

上述程序中方框处可选语句为:

①i = m - 1     ②j = m – 1   ③d(m) = key   ④d(m) > key   ⑤d(m) < key

则(1)、(2)、(3)处语句依次是(  )

A、③、④、② B、③、⑤、② C、④、⑤、② D、③、④、①
举一反三
有100个大小形状一样的玻璃球,其中有1个玻璃球的重量轻于其他99个玻璃球,如何用一台无砝码的天平,以最快的速度找出这个轻玻璃球?运用“三分筛选”法来模拟“寻找”这个轻玻璃球的算法如下:

步骤1:如果待筛选的玻璃球个数<3,则认定已经找出了这个玻璃球(认定方法参照步骤2中描述),停止筛选,并输出经过的筛选总次数;否则,重复执行步骤2。

步骤2:按编号依次将玻璃球均分成3份,如果有多余的放入第3份中;比较第1、2份的玻璃球重量:

①如果第1份等于第2份的重量,则选取第3份的玻璃球作为下一次筛选的对象;

②如果第1份小于第2份的重量,则选取第1份的玻璃球作为下一次筛选的对象;

③如果第1份大于第2份的重量,则选取第2份的玻璃球作为下一次筛选的对象;

重复执行步骤1。

例如:第1次筛选的小球编号区间是1~100,均分成三份的待称重小球编号分别是1~33、34~66、67~100;第2次则选取以上3份中的一份进行再筛选、再均分……直至找到。

解决上述问题的VB程序功能如下:运行程序,在列表框List1中显示100组数据,分别代表每个编号及对应的小球重量(其中有且只有一个小球的重量与其他小球不同),单击“筛选”按钮Command1,在列表框List2中显示每次筛选的编号区间和完成筛选的总次数。程序运行界面如图。

返回首页

试题篮