import random
key=random.randint(10,30)
a=[29,25,22,18,15,10]
i=0
j=len(a)-1
n=0
while i<=j:
n=n+1
m=(i+j+1)//2
if key < a[m]:
i=m+1
else:
j=m-1
print(n)
执行该程序段,下列说法正确的是( )
A.若key值为18,变量i的值为2 |
B.若key值为25,则语句m=(i+j+1)//2需要执行2次 |
C.对于任意key值,输出的值都不可能为2 |
D.对于任意key值,程序运行后,变量j的值可能为5 |

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

