课件编号20065680

4.4二分查找法训练7(表格式)

日期:2024-05-07 科目:信息技术 类型:高中试卷 查看:40次 大小:78800Byte 来源:二一课件通
预览图 1/5
二分,查找,训练,格式
  • cover
4.4二分查找法训练7 学校:_____姓名:_____班级:_____考号:_____ 一、选择题 1.某对分查找算法的VB程序段如下: Key = Val(Text1. Text) n = Val(Text2. Text) i = 1:j = n Do While i < = j m = (i+j) \2 If a(m) = Key Then Exit Do' Exit Do表示退出循环 If a(m)> Key Then j= m - 1 Else i= m+ 1 LooP 整数数组元素a(1)到a(100)为升序序列。在文本框Text1和Text2中分别输入待查找数Key及n,表示在数组a(1)~a(n)间查找数字key。输入key的值,若找不到该数,且“m=(i+j)\2”该语句执行了4次,则n值可能是( ) A.7或8 B.5或31 C.8或30 D.6或15 2.已知一无序数组a中的元素为“90,15,40,72,65,32,81,6”,通过引入数组b存储数组a元素按升序排列时的下标,b数组元素为“8,2,6,3,5,4,7,1”,使得a(b(1))≤a(b(2))≤a(b(3))……≤a(b(n)),从而对a数组中的数据进行对分查找。部分程序如下: i=1:j=8:c=0 key=Val(Text1.Text) Do While i<=j m=Int((i+j)/2) t=b(m) c=c+1 If a(t)=key Then p=t:Exit Do If a(t)<key Then i=m+1 Else j=m-1 End If Loop 当文本框Text1中输入的值为32时,程序运行结束后变量c的值为( ) A.1 B.2 C.3 D.4 3.有10个数据34,22,101,8,14,88,24,17,54,7依次存放在数组a(1 to 10)中,下列关于数据查找的说法中,正确的是( ) A.数据19不在数组a(1 to 10)中,不能进行查找 B.可以直接对数组a(1 to 10)采用对分查找 C.最多经过10次比较,肯定能得出查找结论 D.顺序查找肯定比对分查找效率低 4.某对分查找算法的VB程序段如下 Key =Val(Text1. Text) i=1:j=10:n=0 Do While i <=j m= (i+j)\2 n=n+1 If a(m)>Key Then j=m-1 Else i=m+1 End If Loop Text2. Text = str(n) 数组元素a(1)到a(10)的值依次为“2,3,5,8,9,10,13,17,19,25”,在文本框Text1中入待查找的整数,执行该程序段,则文本框Text2中显示3,待查找数不可能是( ) A.2 B.4 C.9 D.19 5.以下是依据对分查找思想,设计的一个三分查找程序。已知数组a(1 To 10)中的数据分别是12、21、34、45、59、63、72、86、94、100,当在文本框Text1中输入“34”时,输出“34”的位置值“3”,当输入“33”时,输出“33”邻近数的位置值“23”。实现该功能的VB程序段如下: Key = Val (Text1. Text) i=1 : j=10 flag = False Do While i < = j And Not flag mid1= Int (i + (j-i) /3) mid2= Int (j - (j-i) /3) If Key = a(mid1) Or Key = a (mid2) Then flag = True ElseIf Key < a (mid1) Then _____(1)_____ ElseIf Key > a (mid2) Then _____(2)_____ El se i=mid1 + 1 j=mid2 - 1 End If Loop If _____(3)_____ Then List2. AddItem Str (mid1) ElseIf flag Then List2. AddItem Str (mid2) Else List2. AddItem Str(j) + Str (i) End If 上述程序中方框处可选语句为 ①i=mid1+1;② i=mid2+1;③ j=mid1-1;④ j=mid2-1;⑤ Key=a(mid1);⑥ flag And Key=a(mid1),则(1)、(2)、(3)处语句依次是( ) A.④②⑤ B.③②⑥ C.②③⑥ D.④③⑤ 6.某对分查找算法的VB程序段如下: i =1:j=10:nc=0:f=False Key = Val(Textl. Text) Do Whilei < = j And Not f m=(i+j)\ 2 nc=nc+1 If a(m) = Key Then f = True ElseIf Key > a(m) Then j = m-1 Else i = m+1 End If Loop 数组元素a(1)到a(10)的值依次为“94,91,87,76,73,70,67,61,18,17”,该程序段运行结束后,若nc的值为2,则Key的值是 ( ) A.76或67 B.91或61 C.87或61 D.94或91 7.有如下 VB 程序段: a(1) = 13: a(2) = 22: a(3) = 36: a(4) = 42: a(5) = 50: a(6) = 58: a(7) = 62: a(8) = 70 i = 1: j = 8: count = 0 R ... ...

~~ 您好,已阅读到文档的结尾了 ~~