#XXSYxzt05. 信DAY5模拟客观题

信DAY5模拟客观题

  1. 红军某小分队初始有 100 斤青稞面,每天全队固定消耗 8 斤,但侦察兵每天沿途能挖到 3 斤野菜补充。如果用 while 循环计算多少天后粮食会彻底耗尽(小于等于 0),以下条件判断最准确的是? {{ select(1) }}
  • while (food > 0)
  • while (food >= 0)
  • while (food == 0)
  • while (food < 0)
  1. 行军途中,红军队伍排成一字长蛇阵。由于道路崎岖,经常会有人员需要从队伍的中间撤出,或者有医疗兵需要紧急插入到队伍的中间某个特定位置。如果我们需要在计算机中模拟这个排队系统,且要求在已知插入 / 删除位置的前提下,该操作的时间复杂度必须是 O (1),应该选择哪种数据结构? {{ select(2) }}
  • 一维数组
  • 双向链表
  • 优先队列
  1. 关于 C++ 中的 while 和 do-while 循环,就好比红军执行巡逻任务的不同策略。以下说法错误的是? {{ select(3) }}
  • while 就像 “先请示再执行”,先判断条件,再决定是否执行循环体
  • do-while 就像 “先巡视一圈再汇报”,无论条件如何,它至少会执行一次循环体
  • 这两种循环任务都可以通过 break 语句被强制提前中止
  • while 循环和 do-while 循环在任何初始条件下,执行巡逻循环的次数都完全相同
  1. 小通讯员编写了一段基础的密电解密代码,它的作用是?

{{ select(4) }}

  • 计算密电 n 的各个数位之和
  • 将数字密电 n 倒序输出(翻转数字)
  • 统计密电 n 中有多少个 0
  • 求密电 n 的最高位数字
  1. 红军截获了一份敌军用八进制编写的物资清单,其中子弹的数量显示为 175。为了方便军需处统计,小通讯员需要将其转换为我们熟悉的十进制数。这个数量对应的十进制值是? {{ select(5) }}
  • 125
  • 157
  • 109
  • 141
  1. 当任务规模 n(如敌军数量或路径长度)变得非常大时,指挥部需要对比多种突围方案。假设方案一的时间复杂度为 O (n²),方案二的时间复杂度为 O (n * log (n))。以下描述正确的是? {{ select(6) }}
  • 方案二的执行效率通常会显著高于方案一。
  • O (n²) 属于多项式级时间复杂度。
  • 如果 n = 10⁵,方案一在 1 秒内(通常处理 10⁸ 次运算)很可能会超时。
  • 时间复杂度与代码逻辑和机器性能均有关。
  1. 红军司务长正在给排队的战士们分发干粮。我们用队列来模拟这个过程。阅读以下代码,请选出说法错误的选项?

{{ select(7) }}

  • 执行完上述代码后,队伍里一共有 4 名战士。
  • 此时排在队伍最前面准备领干粮的战士是 2 号。
  • 此时排在队伍最后面的战士是 3 号。
  • 队列这种数据结构严格遵循 “先进先出” 的原则。
  1. 先遣小队进入了一片被大雪覆盖的迷宫树林(可视为二维网格图),他们需要找到一条离开树林的最短安全路径。关于搜索算法的应用,以下说法错误的是? {{ select(8) }}
  • 广度优先搜索(BFS)依赖于队列结构,它像水波纹一样一层层扩散,因此在无权图中一旦找到出口,就绝对是步数最少的最短路径。
  • 深度优先搜索(DFS)依赖于栈或递归,它秉承 “不撞南墙不回头” 的原则。在寻找迷宫的最短路径时,DFS 的效率通常比 BFS 更高。
  • 在进行 BFS 搜索时,为了防止队列被撑爆导致内存溢出,必须在将节点 “加入队列” 的同时,立即将其标记为 “已访问”。
  • 在进行深度优先搜索时,需要标记路径上的结点。
  1. 红军营队附近有一列信号发射器,用 f (n) 表示第 n 个发射器的强度,等于前两个信号塔强度之和,即 f (n)=f (n−1)+f (n−2),且 f (1)=1,f (2)=1。在 C++ 中写递归函数求 f (n) 时,说法正确的是? {{ select(9) }}
  • f (4) 值为 2
  • 若递归函数没有递归出口,则函数只会返回 0.
  • 如果不用递归而是写 for 循环递推求 f (n),效率一定更低。
  • f (5) 值为 5
  1. 红军通讯班需要建立一个无线电发报阵地。侦察员测绘了所有备选山头的高度,并将其记录在一个从小到大排列的有序数组 A 中。为了保证电报能够顺利发回总指挥部,发报机要求阵地的海拔高度至少要达到 target。小通讯员编写了二分查找代码,试图在数组 A 中快速锁定合适的阵地。关于该程序的运行逻辑,说法错误的是?

{{ select(10) }}

  • 该程序寻找的是记录中最后一个海拔高度小于等于 target 的阵地编号。
  • 该程序寻找的是记录中第一个海拔高度大于等于 target 的阵地编号。
  • 如果整条山脊线上所有阵地的海拔都达不到目标高度 target,循环结束后 ans 的值依然为 -1。
  • mid 的计算方式 left + (right - left) / 2 可以有效防止当备选阵地数量极大时,直接相加产生的整数溢出问题。
  1. 延安兵工厂开展劳动竞赛,计划前10天每天生产的手榴弹数量与天数相同(第1天1枚,第2天2枚……第10天10枚)。以下C++程序用于计算10天的总产量,运行后输出结果是多少?

{{ select(11) }}

  • 45
  • 50
  • 55
  • 100
  1. 情报员截获一段密文 "VICTORY1945",需要用C++提取其中的部分信息。已知字符串下标从0开始,执行以下代码后,屏幕上显示的内容是?

{{ select(12) }}

  • T
  • O
  • OR
  • RY
  1. 后勤部用C++结构体管理战士信息。定义如下,程序运行后输出的子弹数量是?

{{ select(13) }}

  • 14
  • 20
  • 张嘎
  • 34
  1. 炮兵阵地需要根据炮弹落点与目标的距离平方值来推算实际距离。C++中可以使用数学库函数 sqrt 求平方根。执行以下代码,输出结果是?

{{ select(14) }}

  • 25
  • 125
  • 312.5
  • 625
  1. 为计算部队排列组合方案,需要编写递归函数求阶乘。定义如下代码,程序的输出结果是?

{{ select(15) }}

  • 24
  • 120
  • 60
  • 720