题目是 2024 年全国青少年信息素养大赛 C++ 算法创意实践挑战赛复赛真题。一共 6 道编程题,下面先放题目,后面附真题pdf,参考答案和逐题解析。
第 1 题:计算长方形面积
题目描述
在一个宁静的小镇上,有位园丁想为她的玫瑰花地建围栏。这片花地是个长方形,长度 10 米,宽度 5 米。但园丁不知道怎么计算玫瑰花地的面积,于是他向小兔子求助。聪明的小兔子告诉园丁:"要计算长方形的面积,只需将长度乘以宽度。"于是,园丁算出玫瑰花地的面积是 50 平方米。
现在园丁又开辟了一块玫瑰花地,形状也是规则的长方形,园丁通过上面的方法计算出玫瑰花地的面积。
输入描述
一行,两个正整数 a b,中间用空格隔开,分别代表长方形的长和宽。
输出描述
一行,一个正整数,代表玫瑰花地的面积。
样例 1 输入
1 1
样例 1 输出
1
样例 2 输入
10 5
样例 2 输出
50
数据范围
a 和 b 均为不超过 10000 的正整数
第 2 题:判断三角形类型
题目描述
在一个小镇上,有一位名叫艾米的小女孩,她非常喜欢观察各种形状。一天,她在公园里发现了一块奇特的三角形玻璃。这块玻璃不仅外形完美,还能反射出七彩的光芒。艾米觉得这块三角形玻璃一定有神秘的力量,于是她把它带回家仔细研究。几天后,艾米发现这块三角形玻璃可以用来聚焦阳光,点燃火柴。这个发现让她惊喜不已,也激发了她对数学的浓厚兴趣。
现在艾米想知道这块三角形玻璃的形状:
- 如果三角形的三条边都相等,那么这个三角形是等边三角形;
- 如果三角形中有两条边的长度相等,那么这个三角形是等腰三角形;
- 如果三角形的一条边长的平方等于另外两条边长的平方和,那么这个三角形是直角三角形。
输入三角形的三边长度,判断该三角形是等腰三角形、直角三角形还是等边三角形。
如果是等腰三角形,输出 Isosceles glass;
如果是等边三角形,输出 Equilateral glass;
如果是直角三角形,输出 Right angle glass;
如果三者都不是,输出 None。
输入描述
输入只有一行,三个正整数,代表三角形的三条边长,之间用空格隔开。
输出描述
输出只有一行,一个字符串。
样例 1 输入
1001 1001 1
样例 1 输出
Isosceles glass
样例 2 输入
3 4 5
样例 2 输出
Right angle glass
样例 3 输入
5 1 2
样例 3 输出
None
数据范围
输入的正整数不超过 10000
第 3 题:柜子操作
题目描述
小男孩汤姆在家里的旧柜子里发现了一本古老的日记。日记中记录了一个失落王国的秘密和一条通往宝藏的路径。好奇心驱使他按照日记的指引,找到了一扇隐藏在树林深处的石门。
打开石门后,他进入了一个神秘的地下世界,里面充满了奇珍异宝。回到家后,汤姆把日记放回柜子,从此期待每一次新的探索与发现。
小男孩汤姆家的柜子是一个长方体,由很多小柜子组成。汤姆一共有 n 次操作,分为两种类型:
第一种类型:M i j k:汤姆往第 i 行第 j 列的柜子里存入日记,并在日记上面写下编号 k。
第二种类型:N i j:汤姆取出第 i 行第 j 列柜子里的日记,输出日记的编号(保证取出的柜子里有日记)。
输入描述
输入一共 n+1 行:第一行只有一个整数 n,表示操作次数;
接下来 n 行,每行表示一次操作,M 代表第一种类型,N 代表第二种类型,具体操作如题目描述所示。
输出描述
对于每次查询操作,输出答案,以换行符隔开。
样例 1 输入
2M 2 3 0N 2 3样例 1 输出
0
样例 2 输入
4M 3 1000 1101M 1 1 1N 3 1000N 1 1样例 2 输出
11011数据范围
1 <= i <= 10001 <= j <= 10001 <= k <= 10000第 4 题:计算格子地板中的正方形数量
题目描述
在一个神奇的王国里,有一块 n 行 m 列的格子地板。每个格子都是一个正方形,里面藏着一个秘密。小男孩阿力得到了一张古老的地图,上面标注了这些格子的谜题和宝藏。
每天放学后,阿力都会来到这片地板上解开一个新的谜题。有时是数学问题,有时是历史故事,还有时是自然现象。随着他不断探索,他不仅找到了许多宝藏,还学到了无数知识。最终,阿力成为了村里最聪明的小孩,那片格子地板也成了他心中永远的冒险乐园。
阿力想知道格子地板里包含多少个正方形,他需要想出一个高效的办法。
输入描述
输入只有一行,两个整数 n m,中间用空格隔开,代表格子地板大小为 n 行 m 列。
输出描述
输出只有一行,一个整数,代表格子地板里包含多少个正方形。
样例 1 输入
2 4样例 1 输出
11补充样例 2 输入
1 1补充样例 2 输出
1数据范围
n 和 m 均为不超过 100 的正整数
第 5 题:字符串操作
题目描述
小 A 在旅途中遇到了很多字符串 str,随着小 A 不断地结交朋友,它的长度也逐渐变长,具体有两种变长操作:
F str:前插入。表示在字符串小 A 前面插入字符串 str。
B str:后插入。表示在字符串小 A 后面插入字符串 str。
R:表示反转整个字符串。
规定字符串小 A 的初始模样和每次操作的 str 都不含空格或换行。请你计算出字符串小 A 旅途结束后的模样。
输入描述
输入共 n+2 行:
第一行,输入一个正整数 n,表示操作次数;
第二行,输入一个字符串 str,表示文档最开始的字符串;
从第三行开始,往下 n 行,每行表示一个操作。
输出描述
输出只有一行,一个字符串。
样例 1 输入
3TomF htB utR样例 1 输出
tumoTth补充样例 2 输入
2abcF xB y补充样例 2 输出
xabcy数据范围
1 <= n <= 1000
字符串小 A 的初始长度和每次插入的字符串 str 的长度均不大于 100
第 6 题:判断水平相当的同学对数
题目描述
游泳是一项广受欢迎的运动和娱乐活动。期末考试项目包括自由泳、仰泳、蛙泳和蝶泳一共四门课程,每门成绩均为不超过 100 的整数。
John 和 Mary 这两位同学四门课总分的差值不超过 20 分,并且每门课成绩的差值都不超过 10 分,那么老师就可以把 John 和 Mary 认定为水平相当。班里一共有 n 名同学,现在老师想知道这 n 名同学中,有多少对同学水平相当。
输入描述
输入一共 n+1 行:
第一行只有一个正整数 n,代表 n 名同学。
接下来 n 行,每行四个不超过 100 的整数,分别代表每位同学的自由泳、仰泳、蛙泳和蝶泳成绩,之间用空格隔开。
输出描述
输出只有一行,一个数字,代表有几对同学水平相当。
样例 1 输入
425 25 25 2590 95 25 2156 100 91 2261 92 31 12样例 1 输出
1补充样例 2 输入
380 80 80 8085 82 78 83100 100 100 100补充样例 2 输出
1数据范围
1 <= n <= 1000
每门成绩均为不超过 100 的整数
整体评价
2024 年小学组复赛整体难度不高,6 道题梯度比较明显。
前两题是基础送分题:第一题考输入输出,第二题考 if-else 条件判断。
第三题考二维数组模拟,第四题需要一点数学思维推导公式。
第五题考字符串基本操作和读入细节,第六题考双重循环枚举 + 多条件组合判断。
信息素养复赛的定位本来也不是拼难题,而是看孩子能不能把题读懂、把代码写对、把边界条件想清楚。
还是提醒一下,复赛的时候不要把题目想得太难了。
真题的pdf和答案解析,私信我 “真题” , 自动发送。