试卷总分:100分


选择题 10题 20分

01 02 03 04 05 06 07 08 09 10


判断题 10题 20分

11 12 13 14 15 16 17 18 19 20


编程题 2题 60分

21 22

E1144 电子学会青少年软件编程等级考试-C++ -CIE-202602-C++五级-真题-考试

选择题 共10道

01

以下代码的输出是?

set<int> s;
s.insert(5);
s.insert(2);
s.insert(8);
for (int x : s) cout << x <<"";
2分
登录后查看选项
02

以下代码的输出是?

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];
2分
登录后查看选项
03

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

2分
登录后查看选项
04

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

2分
登录后查看选项
05

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

for(int step=1; step<n; step=step*2){
	std::cout<<step<<"\n";
}
2分
登录后查看选项
06

以下代码的输出是?

int f(int n) {
  if(n == 0) return 2;
  return n*f(n-1);
}
int main(){
  cout << f(3);
}
2分
登录后查看选项
07

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

2分
登录后查看选项
08

以下代码的输出是?

map<string, int> m;
m[“apple”]= 5;
m[“banana”] = 3:
cout << m["apple"];
2分
登录后查看选项
09

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

2分
登录后查看选项
10

'set'的组织特点是?

2分
登录后查看选项

判断题 共10道

11

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

2分
登录后查看选项
12

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

2分
登录后查看选项
13

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

2分
登录后查看选项
14

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

2分
登录后查看选项
15

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

2分
登录后查看选项
16

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

2分
登录后查看选项
17

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

2分
登录后查看选项
18

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

2分
登录后查看选项
19

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

2分
登录后查看选项
20

'set'的'insert"操作不会插入重复元素。

2分
登录后查看选项

编程题 共2道

21

字符串的不同字串

题目描述

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

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

输入

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

输出

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

数据范围

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

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

输入样例1

aababc

输出样例1

17

输入样例2

abracadabra

输出样例2

54

30分

C0749
登录后作答
22

坐标选点

题目描述

修建了一条长度为 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

30分

C0750
登录后作答