#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) }}

  • 新任务加入队首
  • 处理顺序与进入队列顺序一致
  • 每轮选择最大编号
  • 所有任务必须同时删除