万卷网> 电子学会考级 >C/C++等级考试 > 2026年3月电子学会青少年软件编程(C/C++五级)等级考试试卷

2026年3月电子学会青少年软件编程(C/C++五级)等级考试试卷
操作/编程 五级 2026 2026-04-29 11:37:59 125

一、单选题

1.

查找键 "key" 是否存在,正确的代码是?( )

A.

if (m.find("key")!= m.end())

B.

if (m["key"]!= 0)

C.

if (m.count("key")> 0)

D.

A和C

2.

以下代码的输出是?( )

int f(int n) {
    if(n == 0) return 2;
    return n*f(n-1);
}
int main() {
    cout << f(3);
}
A.

18

B.

24

C.

12

D.

6

3.

set 的组织特点是?( )

A.

元素有序、可重复

B.

元素无序、不重复

C.

元素有序、不重复

D.

元素无序、可重复

4.

以下代码的输出是?( )

map<string, int> m;
m["apple"]= 5;
m["banana"] = 3;
cout << m["apple"];
A.

0

B.

3

C.

5

D.

编译错误

5.

以下代码的输出是?( )

set<int> s;
s.insert(5);
s.insert(2);
s.insert(8);
for (int x : s) cout << x <<" ";
A.

5 2 8

B.

2 5 8

C.

8 5 2

D.

随机顺序

6.

在一个有序序列里,二分查找一个给定的键值,算法的时间复杂度是?( )

A.

O(n)

B.

O(1)

C.

O(log n)

D.

O(n log n)

7.

若 pre[i] = a[1] + … + a[i],则能表示 a[3] 到 a[9] 的和公式是?( )

A.

pre[9] - pre[3]

B.

pre[9] - pre[2]

C.

pre[9] + pre[2]

D.

pre[9] - pre[1]

8.

以下代码的时间复杂度为?( )

for(int step=1; step<n; step=step*2){
std::cout <<step<<"\n";
}
A.

O(n)

B.

O(1)

C.

O(log n)

D.

O(n log n)

9.

计算斐波那契序列应使用哪种算法?( )

A.

递归

B.

递推

C.

枚举

D.

贪心

10.

以下代码的输出是?( )

int f[10];
f[0] = 0; 
f[1] = 1;
for (int i = 2; i<10; i++){
    f[i] = f[i-1] + f[i-2];
}
cout << f[8];
A.

13

B.

21

C.

34

D.

55

二、判断题

1.

递归程序书写不当可能导致栈溢出。( )

A.正确 B.错误
2.

map 的查找单个键的时间复杂度是 O(log n)。( )

A.正确 B.错误
3.

前缀和可以用于解决任意区间求最大值的问题。( )

A.正确 B.错误
4.

set 的元素按大小降序排列。( )

A.正确 B.错误
5.

map 中的一个键不能对应两组数据。( )

A.正确 B.错误
6.

二分查找时,需要保证搜索序列是有序的,否则无法保证正确性。( )

A.正确 B.错误
7.

模运算中,(a-b) % m 必然等于(a % m) - (b % m)。( )

A.正确 B.错误
8.

如果一个数列满足递推关系  an = 2*a(n-1) - 3 ,那么该数列是等差数列。( )

A.正确 B.错误
9.

set 的 insert 操作不会插入重复元素。( )

A.正确 B.错误
10.

二分查找可以用于查找旋转数组中的元素。( )

A.正确 B.错误

三、编程题

1.

字符串的不同字串

题目描述

给定一个由小写英文字母组成的字符串 s。请问 s的不同非空子串有多少种?

子串是指字符串中连续的一段字符。例如,xxx 是 yxxxy 的子串,但不是 xxyxx 的子串。

输入

输入一行,包含一个字符串 s。

输出

输出一个整数,表示 s的不同非空子串的数量。

数据范围

s仅由小写英文字母组成。

1≤∣s∣≤100,其中 ∣s∣表示字符串的长度。

输入样例1

aababc

输出样例1

17

输入样例2

abracadabra

输出样例2

54
2.

坐标选点

题目描述

修建了一条长度为 m 公里的铁路,起点和终点已经建有火车站。铁路沿线有 n 座城市(城市不位于起点或终点),第 i 座城市到铁路起点的距离为 ai 公里。

现在计划在这 n 座城市中选择 c 座修建火车站,使得所有火车站(包括起点和终点的火车站)之间的最小相邻距离尽可能大。请你计算这个最小相邻距离的最大可能值。

输入

第一行包含三个正整数n、c、m,分别表示城市数量、计划修建的火车站数量以及铁路总长度。

第二行包含n个正整数a1,a2,...,an,表示每座城市到铁路起点的距离。

输出

输出一个整数,表示最小相邻距离的最大可能值。

数据范围

1≤c≤n≤10^6,1≤ai<m≤10^9,输入中的所有数值均为整数。

输入样例1

5 3 10
1 2 8 4 9

输出样例1

2
公众号
客服 反馈
顶部