信息技术来源:Z20+名校联盟2026届高三第三次学情诊断
第 7 题
答案与解析
本题解析
参考答案
B
程序分析
i←0,j←n-1,c←0 → i<=j?
N → 输出c
Y → m←(i+j)//2 → a[m]>key?
Y → j←m-1 → c←c+1 → 返回i<=j?
N → i←m+1 → 返回i<=j?i、j 初值为0、n-1,分别指向查找区间的左右端点,m=(i+j)//2 为对分点下标。若 a[m]>key,就将右端点更新为 m-1,向左查找,并使 c 加1;否则将左端点更新为 m+1,向右查找。因此,c 记录向左查找的次数。与找到相等元素就结束的常见写法不同,本题 a[m]=key 时仍走N分支向右查找,直到 i>j、查找区间为空时才输出 c。
解题思路
流程图每轮取查找区间的对分点,再根据比较结果向左或向右查找,采用了对分查找的结构。
初始区间为下标 [0,7],c=0。各轮变化如下:
| 当前区间 | m | a[m] | 比较与更新 | c |
|---|---|---|---|---|
| [0,7] | 3 | 4 | 4>4 不成立,i=4 | 0 |
| [4,7] | 5 | 7 | 7>4 成立,j=4 | 1 |
| [4,4] | 4 | 7 | 7>4 成立,j=3 | 2 |
此时 i=4、j=3,循环结束,输出 c=2。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_Z20_q007
