#1107. 初赛模拟卷 A(7)

初赛模拟卷 A(7)

初赛模拟卷 A(7)

第 1 题(单选)

以下关于链表与数组的描述,正确的是()。

{{ select(1) }}

  • 链表支持随机访问,数组不支持
  • 数组插入元素的时间复杂度总是O(1)
  • 链表在头部插入元素的时间复杂度为O(1)
  • 数组和链表都不需要预先分配连续内存

第 2 题(单选)

二分查找算法在有序数组中查找元素,最坏情况下的比较次数是()。

{{ select(2) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n log n)

第 3 题(单选)

下列关于递归算法的说法,错误的是()。

{{ select(3) }}

  • 递归必须有终止条件
  • 递归算法都可以用循环实现
  • 递归算法一定比循环效率高
  • 递归调用会消耗系统栈空间

第 4 题(单选)

用分治法求解最大子段和问题,合并步骤的时间复杂度为()。

{{ select(4) }}

  • O(1)
  • O(log n)
  • O(n)
  • O(n^2)

第 5 题(单选)

下面哪个是计算斐波那契数列第n项的递归式?

{{ select(5) }}

  • F(n)=n*F(n-1)
  • F(n)=F(n-1)+F(n-2)
  • F(n)=F(n-1)+1
  • F(n)=2*F(n/2)

第 6 题(单选)

一个算法的时间复杂度为O(2^n),当n=20时,执行次数大约为()。

{{ select(6) }}

  • 100万
  • 10亿
  • 100
  • 20

第 7 题(单选)

以下关于链表存储结构的描述,正确的有()。

{{ select(7) }}

  • 存储空间不一定是连续的
  • 插入和删除操作不需要移动其他元素
  • 可以随机存取任意元素
  • 需要额外的空间存储指针

第 8 题(单选)

贪心算法通常需要满足的条件有()。

{{ select(8) }}

  • 最优子结构
  • 贪心选择性质
  • 子问题重叠
  • 无后效性

第 9 题(单选)

以下哪些操作在单链表中时间复杂度为O(1)?

{{ select(9) }}

  • 在已知结点后插入新结点
  • 删除已知结点的后继结点
  • 查找第i个结点
  • 在表头插入结点

第 10 题(单选)

关于链表和数组,以下说法正确的有()。

{{ select(10) }}

  • 数组支持随机访问
  • 链表插入删除不需要移动元素
  • 数组在内存中连续存储
  • 链表每个结点内存连续

第 11 题(单选)

在单链表中,要删除结点p(已知p不是尾结点),以下哪些操作正确?

{{ select(11) }}

  • p.data = p.next.data; p.next = p.next.next
  • 找到p的前驱q,然后q.next = p.next
  • p = p.next; 然后删除原p
  • 直接让p.next = p.next.next

第 12 题(单选)

关于贪心算法的特点,正确的有()。

{{ select(12) }}

  • 每一步都选择当前最优
  • 可以得到全局最优解(某些问题)
  • 不能回退
  • 通常需要证明最优性

第 13 题(单选)

在双向链表中,下列哪些操作需要修改两个指针?

{{ select(13) }}

  • 在p结点前插入
  • 删除p结点
  • 在表头插入
  • 遍历链表

第 14 题(单选)

以下哪些操作在链表中的时间复杂度与位置有关?

{{ select(14) }}

  • 查找
  • 在指定位置插入
  • 在头结点插入
  • 删除尾结点(无尾指针)

第 15 题(单选)

以下哪些情况,使用二分查找比线性查找更优?

{{ select(15) }}

  • 有序静态数组
  • 无序链表
  • 频繁查找但很少修改的有序数组
  • 动态插入频繁的集合

第 16 题(单选)

关于贪心算法与动态规划的关系,正确的有()。

{{ select(16) }}

  • 贪心是动态规划的一种特例
  • 动态规划可以考虑所有选择
  • 贪心不需要保存子问题解
  • 两者都需要最优子结构

第 17 题(单选)

链表插入和删除操作的时间复杂度均为O(1)。()

{{ select(17) }}

  • 正确
  • 错误
  • 以上说法不成立

第 18 题(判断)

贪心算法每一步都选择当前最优,因此总能得到全局最优解。()

{{ select(18) }}

  • 正确
  • 错误

第 19 题(判断)

二分查找要求待查找序列有序。()

{{ select(19) }}

  • 正确
  • 错误

第 20 题(单选)

分治法解决问题的三个步骤是分解、解决、合并。()

{{ select(20) }}

  • 正确
  • 错误
  • 以上说法不成立

第 21 题(单选)

如果一个问题的子问题有重叠,则分治法效率较低,应考虑动态规划。()

{{ select(21) }}

  • 正确
  • 错误
  • 以上说法不成立

第 22 题(单选)

循环链表是一种特殊的链表,其最后一个结点的指针指向头结点。()

{{ select(22) }}

  • 正确
  • 错误
  • 以上说法不成立

第 23 题(单选)

链表中每个结点占用的内存空间大小是固定的。()

{{ select(23) }}

  • 正确
  • 错误
  • 以上说法不成立

第 24 题(判断)

递归深度过大会导致程序崩溃,因为栈空间有限。()

{{ select(24) }}

  • 正确
  • 错误

第 25 题(判断)

贪心算法不需要回退,因此它的实现通常很简单。()

{{ select(25) }}

  • 正确
  • 错误

第 26 题(判断)

删除双向链表中的头结点需要修改头指针。()

{{ select(26) }}

  • 正确
  • 错误