2026年3月青少年软件编程(C/C++)等级考试试卷(五级)

2026年10月24日

一、单选题

1.快速幂算法的核心思想?( )

  • A、分治法,将幂运算分解为更小的子问题
  • B、枚举法,逐一相乘
  • C、递归法,无终止条件
  • D、动态规划,存储所有中间结果

2.斐波那契数列的递推公式为f(n)=f(n-1)+f(n-2),f(1)=1,f(2)=1,则f(6)的值?( )

  • A、5
  • B、8
  • C、13
  • D、21

3.以下哪个问题最适合用贪心算法求解?( )

  • A、01背包问题
  • B、 活动选择问题
  • C、最长公共子序列问题
  • D、斐波那契数列计算

4.已知数组arr[5] = {1,2,3,4,5},其前缀和数组preSum中,已知preSum[0]=0,则preSum[3]的值?( )

  • A、3
  • B、6
  • C、10
  • D、15

5.差分算法最适合解决以下哪类问题?( )

  • A、多次区间修改,单次查询
  • B、多次单点修改,单次查询
  • C、多次区间查询,无修改
  • D、排序问题

6.在有序数组中查找两个数的和等于目标值,最优的解法是双指针法,其时间复杂度为?( )

  • A、θ(n)
  • B、θ(n2)
  • C、 θ(logn)
  • D、 θ(nlogn)

7.二分查找算法的前提条件?( )

  • A、数组无序
  • B、数组有序
  • C、数组元素全为正数
  • D、数组长度为偶数

8.以下哪个STL容器是动态数组,支持随机访问?( )

  • A、vector
  • B、 list
  • C、set
  • D、map

9.STL中,用于对容器元素进行排序的函数?( )

  • A、find()
  • B、sort()
  • C、max()
  • D、swap()

10.以下关于string类的说法,错误的?( )

  • A、可以用+运算符拼接两个string对象
  • B、可以用length()函数获取字符串长度
  • C、不支持下标访问
  • D、可以用substr()函数获取子串

二、判断题

11.快速幂算法可以将求a^b的时间复杂度从θ(b) 优化到 θ(logb)。( )

12.递推算法是从已知的初始条件出发,逐步推导出后续结果。( )

13.贪心算法的核心思想是枚举所有可能的情况。( )

14.前缀和数组可以快速求出数组中任意区间的元素和。( )

15.对差分数组求前缀和,可以得到原数组。( )

16.二分查找的最坏时间复杂度是θ(n)。( )

17.双指针算法只能用于处理有序数组的问题,无法在无序数组或链表中使用。( )

18.vector容器的push_back()函数可以在序列头部插入元素。( )

19.set容器中的元素是内部有序且不重复的。( )

20.map容器存储的是键值对,键是唯一的。( )

三、编程题

21.三数之和

http://xiaopangoj.com/p/58958

22.爆破

http://xiaopangoj.com/p/58959