#P1407. 【Day4】完善程序与结构不变量专项(12题)
【Day4】完善程序与结构不变量专项(12题)
第 1 题
在升序数组 a[0..n-1] 中二分查找,初始化 int l=0, r=____;。(填 C++ 表达式)
{{ input(1) }}
第 2 题
标准闭区间二分查找的循环条件是 while (____)。(填 C++ 表达式)
{{ input(2) }}
第 3 题
若 a[mid] < x,下一步应执行 ____;。(填完整赋值语句)
{{ input(3) }}
第 4 题
若 a[mid] > x,下一步应执行 ____;。(填完整赋值语句)
{{ input(4) }}
第 5 题
若找到 a[mid] == x,记录下标应写为 ans = ____;。
{{ input(5) }}
第 6 题
完善括号匹配程序时,读到左括号后应完成的“角色”是( )。
{{ select(6) }}
- 删除最近左括号
- 保存这个尚未匹配的左括号
- 清空整个栈
- 立即判定合法
第 7 题
读到右括号后,必须先判断容器是否为空,主要是为了( )。
{{ select(7) }}
- 提高排序速度
- 避免访问不存在的栈顶元素
- 保证队列有序
- 减少括号数量
第 8 题
括号串扫描完毕后,除了此前没有发生失配,还必须满足栈中剩余左括号的数量为多少?(只填数字)
{{ input(8) }}
第 9 题
长度为 N 的循环队列中,head 指向队首,tail 指向下一个插入位置。队列元素个数可写成 (tail - head + N) ____ N。填运算符。
{{ input(9) }}
第 10 题
采用“牺牲一个位置”的循环队列,当 (tail + 1) % N == ____ 时队列已满。
{{ input(10) }}
第 11 题
广度优先搜索的主循环通常持续到( )。
{{ select(11) }}
- 栈为空
- 待处理状态队列为空
- 数组有序
- 递归深度为 0
第 12 题
完善一个“每次处理最早到达任务”的程序时,最关键的不变量是( )。
{{ select(12) }}
- 新任务加入队首
- 处理顺序与进入队列顺序一致
- 每轮选择最大编号
- 所有任务必须同时删除