试题 试卷
题型:单选题 题类:常考题 难易度:普通
浙江省高中信息技术 算法及其程序实现单元检测
i=1: j=n
Do While i <=j
m=(i+j) \ 2
If a(m) < key Then i=m+1
Else
j=m-1
End If
Loop
那么执行该程序后,下列说法正确的是( )
P=false
I=0
Do while I<5 and P=flase
I=I+1
If key=a(i) then P=true
已知数组a(1)至a(6)存放的值分别是“10,9,13,25,7,11”, 若变量key的值为25,循环结束时变量I的值是( )
程序界面如图所示:
参选地区用数字1,2,3……N表示,每个地区所属的省份依次存入数组a(1)到a(N),若1号地区的省份编号是3,即a(1)=3。分析可知,所求区间的长度至少为K(省份的数量),最大为N(地区的数量)。我们可以通过二分K到N之间的数求得最小区间长度。例如有10个参选地区,分别来自于5个不同的省份,从左到右排列,地区编号依次为2,1,2,4,3,3,5,5,3,5,则最小的一段包含所有5个地区的区间是从第2个到第7个地区,区间长度为6。
import random
a = [1,3,4,6,6,6,9,9,11,12]
key = random.randint(2,5) * 2
i,j = 0,9
while i <= j :
m = (i + j) // 2
if key < a[m]:
j = m - 1
else:
i = m + 1
print(j)
执行该程序段后,输出的结果不可能是( )
A .2 B .3 C . 5 D . 7
试题篮