刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

有如下代码: a=[25,37,49,64,73,75,85,91] t=i=0 j=len(a)-1 key=int(input()) while i<=j: m=(i+j)//2 if a[m]==key: break elif a[m]>key: j=m-1 else: i=m+1 ​ t+=1 print(t) 若输入的key值是73,则程序输出的结果是?( )

A
5
B
1
C
2
D
3
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

【喵呜刷题小喵解析】题目中的代码实现的是二分查找算法,用于在有序列表a中查找指定的key值。代码首先初始化索引i和j,然后进入一个while循环,在循环中,计算中间索引m,然后比较中间元素a[m]和key值。如果a[m]等于key,则退出循环;如果a[m]大于key,则将j更新为m-1;如果a[m]小于key,则将i更新为m+1。同时,每次循环都会使t加1。

对于输入的key值为73,代码的执行过程如下:

1. 初始化i=0,j=7,t=0
2. 第一次循环,计算m=(0+7)//2=3,比较a[3]=49<73,更新i=4
3. 第二次循环,计算m=(4+7)//2=5,比较a[5]=73=73,退出循环

因此,程序输出的结果是t=2。所以正确答案是C。
创作类型:
原创

本文链接:有如下代码: a=[25,37,49,64,73,75,85,91] t=i=0 j=len(a)-

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share