内容正文:
4.4查找同步练习人教版信息技术选修1
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.某对分查找算法的VB程序段如下:
key = Val(Text1.Text)
s= "" : i = 1: j = 10
Do While i <= j
m = (i+j) \2
If a(m) = key Then Exit Do ‘Exit Do 表示退出循环
If key < a(m) Then
j = m-1 : s = s+"L"
Else
i= m + 1 : s= s + "R"
End If
Loop
按非降序排序的整型数组a(1)到a(10)的值依次为“11,23,31,39,44,52,60,x,69,89”。在文本框Textl中输入66,执行该程序段后s值为“RRL”,则x的可能值的个数为( )
A.3 B.4 C.5 D.6
2.有如下 VB 程序段:
Key = Val(Text1.Text):s = 0: i = 1: j = 7
Do While i <= j
m = (i + j) \ 2
s = s + m
If a(m) > Key Then j = m - 1 Else i = m + 1
Loop
Text2.Text = Str(s)
数组元素 a(1)到 a(7)的值依次为“12,15,18,20,20,20,29”,在文本框 Text1 中输入待查数,执行该程序段后,则文本框 Text2 中显示的内容不可能的是( )
A.7 B.9 C.15 D.17
3.二分查找实际上就是( )的一种典型运用。
A.动态规划法 B.分治策略 C.回溯法 D.递推法
4.某对分查找算法的VB程序段如下:
key = Val(Text1.Text)
s = ""
i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
s = s + Str(m)
If a(m) = key Then Exit Do
If a(m) > key Then j = m - 1 Else i = m + 1
Loop
Label1.Caption = s
数组元素a(1)到a(10)依次存放10个升序的整数。在文本框Text1中输入一个任意整数执行该程序段,标签Label上中显示的内容可能的是( )
A.5 2 3 1 B.5 3 2 4 C.5 8 6 7 D.5 8 9 7
5.某对分查找的VB程序如下:
i = 1: j = 8 : n = 0
key = Val(Text1.Text)
Do While i <= j
m = (i + j- 1) \ 2
n=n+1
If a(m) >=key Then
i = m + 1
Else
j = m - 1
End If
Loop
Label1.Caption=Str(n)+Str(i)
数组元素a(1)到a(8)的值依次为“ 35,32,29,26,21,19,16,12”。在文本框Text1中输入17,执行该程序段后,标签Label1上显示的内容是( )
A.3 7 B.2 7 C.4 8 D.2 8
6.一物品的价格在 100−500 元整数之间,如果采用二分法策略猜此物品的价格,至多需要猜多少次? ( )
A.8 B.9 C.10 D.11
7.有如下 VB 程序段:
i = 1: j = 8: k = 4
Randomize
Key = (Int(Rnd * 4) + 20) * 4
Do While i <= j
m = (i + j) \ 2
If Key = a(m) Then
Exit Do
ElseIf Key < a(m) Then
j = m - 1: k = k / 2
Else
i = m + 1: k = k * 2
End If
Loop
数组元素 a(1)到 a(8)的值依次为 “80,82,84,86,88,90,92,94”,执行该程序段后, 变量 k 的值可能是( )
A.1,4,8 B.2,4,8 C.4,16,32 D.1,4,16
8.二分查找算法利用的算法思想是( )
A.分治策略 B.穷举法 C.回溯法 D.递归法
9.某对分查找的程序段如下:
a(1) = 92: a(2) = 84: a(3) = 81: a(4) = 76
a(5) = 69: a(6) = 53: a(7) = 24: a(8) = 5
Key = Int(Rnd * 50) + 50
L = 0: R = 0: n = 0
i = 1: j = 8
Do While i <=