3月16日测试

已结束 IOI 开始于: 2026-3-28 7:30 200 小时 主持人: 18

一、选择题(每题 5 分,共 30 分)

1.下列关于 C++ 变量和数组的说法,正确的是() A. 变量名可以用数字开头 B. 数组下标默认从 1 开始 C. int a[10]; 可以存放 10 个整数 D. 一个变量可以同时存放两个不同数值

2.要存放班级 12 名同学的算法测试成绩,C++ 中最简洁高效的方式是() A. 定义 12 个独立整型变量 B. 用单个变量反复赋值 C. 定义一个整型数组 D. 用字符型变量存储

3.执行代码 for(int i=1;i<=5;i++){if(i==3)break;cout<<i;},最终输出结果是() A. 12 B. 123 C. 12345 D. 1245

4.逻辑表达式 5>3 && 2<4 || 1>6 的最终结果是() A. 真 B. 假 C. 6 D. 0

5.下列代码结构中,属于嵌套结构的是() A. 先输入,再判断,最后输出 B. for 循环里面包含一个 if 判断 C. 定义两个独立的数组 D. 顺序执行两条输出语句

6.广度优先搜索(BFS)"一层层向外查找" 的逻辑,最贴合的场景是() A. 走迷宫:一条路走到头再回头 B. 泼水:从中心点一圈圈向外扩散 C. 翻书:从第一页逐页读到最后一页 D. 排序:把大数往后交换

二、填空题(每题 6 分,共 36 分) 1.C++ 中定义字符数组,名为name,可存放 8 个字符,语句:__________

2.C++ 中定义一个整型数组,数组名为score,用于存放 5 个学生的算法成绩,语句为:__________。

3.用 for 循环实现 “打印数字 1-50000”,步长3,____。

4.逻辑判断:“输入整数 x,若 x%2==0 则输出 2,否则输出 1”,当 x=9 时输出____;当 x=14 时输出____。

5.递归函数 f(n)=f(n-1)+n,f(1)=1,则 f(4) = ____

6.执行 “反复做 4 次‘点头 + 摆手’”,总共完成____个动作,该逻辑对应 C++ 中的____结构。

三、逻辑推理与步骤模拟题(共 34 分)

1.简单递归模拟(10 分) 递归规则: f (1) = 2

f (n) = f (n-1) × 2

求 f (3)、f (5) 的值,并写出计算过程(12 分)

2.数组操作:数组存放 4 个数字:9、3、7、5,要求按从小到大排序,请写出排序后的数组,并简单描述三种排序思路。(12 分)

3.#include

using namespace std;

int g(int m, int n, int x)

{ int ans = 0;

int i;

if (n == 1)

    return 1;
    
for (i = x; i <= m / n; i++)

    ans += g(m - i, n - 1, i);
    
return ans;

}

int main()

{ int t, m, n;

cin >> m >> n;

cout << g(m, n, 0) << endl;

return 0;

} 输入7 3 输出_____(10分)

编程题:

Background

奶牛们开始了新的生意,它们的主人约翰想知道它们到底能做得多好。这笔生意已经做了 N(1N105)N(1\le N\le 10^5) 天,每天奶牛们都会记录下这一天的利润 Pi(Pi1,000)P _i(\vert Pi\vert ≤1,000)

约翰想要找到奶牛们在连续的时间期间所获得的最大的总利润。(注:连续时间的周期长度范围从第一天到第 NN 天)。

请你写一个计算最大利润的程序来帮助他。

Format

Input

第一行,一个单独的整数 NN

接下来 NN 行,第 i+1i+1 行包括一个单独的整数 PiP_i

Output

一行,一个整数,表示任意连续时间段利润最大和的数值。

Samples

7 
-3 
4 
9 
-2 
-5 
8 
-3 

14 

【样例解释】 取区间 [2,6][2,6] 的和可以得到最大值 1414

Limitation

1s, 1024KiB for each test case.

Background

奶牛 Bessie 正在完成她的写作课的一篇作文。由于她写字很难看,她决定用一个文字处理器来输入这篇作文。

这篇作文共有 NN 个单词(1N1001\le N\le 100),用空格分隔。每个单词的长度在 111515 之间,仅由大写和小写字母组成。根据作业的要求,这篇作文需要用一种特别的方式排版:每一行包含的字符不超过 KK 个(1K801\le K\le 80),空格不计。幸好 Bessie 的文字处理器能够处理这样的要求,它会按照如下的方式:

  • 如果 Bessie 输入了一个单词,这个单词能够放进当前行,就放在当前行。
  • 否则,将这个单词放到下一行,然后继续向下一行添加单词。

当然,同一行中的单词之间仍然用一个空格分隔。每一行的结尾都不应当有空格。

很不幸,Bessie 的文字处理器刚好坏了。请帮助她正确地排版她的作文!

Format

Input

输入的第一行包含两个空格分隔的整数 NNKK

下一行包含 NN 个单词,单词之间用单个空格分隔。所有单词的长度都不超过一行中的字符上限数 KK

Output

输出正确排版的 Bessie 的作文。

Samples

10 7
hello my name is Bessie and this is my essay
hello my
name is
Bessie
and this
is my
essay

样例解释 1

第一行包含 77 个非空格字符,包括 hello 以及 my。再加入 name 会使得第一行包含 11>711>7 个非空格字符,所以这个单词会被放到下一行。

Limitation

1s, 1024KiB for each test case.

状态
已结束
规则
IOI
题目
2
开始于
2026-3-28 7:30
结束于
2026-4-5 15:30
持续时间
200 小时
主持人
参赛人数
18