文档内容
2025 年三年级竞赛数学试卷【“思维100”STEM 应用能力科教活动
(春季)初赛&决赛真题】-学生用卷(含参考答案)
1、根据以下流程图,当输入数值 时,输出是 .
2、根据以下流程图,当输入 时,输出 ,输出
.
3、在游戏中你遇到一个怪物,它拥有一定的生命值.你向它射击,每次攻击能减少它 点生命
值.当连续三次击中后,将额外减少它的 点生命值.以生命值为 的怪物为例,其生命值变化
为: 、 、 、 、 、 、 现在怪物的生命值有 ,要射
击 次才能使它的生命值降为 或负数.
4、有一家医院有 名员工,每人每周工作 天,休息 天,具体排班表如下.这家医院
周 (填“周一”~“周日”中的一天)的上班人数最多,共
第1页, 共8页人上班; 周 (填“周一”~“周日”中的一天)的上班人数最少,
共 人上班.
5、在以下网络中,有一些圆形节点和连边.如果两个节点之间恰好有一条连边,那么这两个节点
是相邻的.现在希望选出尽量多的节点,要求两两都不相邻,最多能选出
个.
6、有一堆箱子叠放在地面上,一眼望去形成如下图案,地面位置用线段 表示.该图案中
有 个长方形贴着地面.
第2页, 共8页7、将 、 、 、 、 、 这六个数字(每个数字只能使用一次)填入下面的六个方框内,使得
等式成立
8、如图, 、 都是边长为 的正方形,点 、 、 、 共线,直线 交
于点 ,若 ,则 .
9、如图,从 点出发,沿着最短路径走到 点,中间那些红色的大点处不能到达,一共
有 种不同的走法.
第3页, 共8页10、思思计划在新的一年中安排旅行,希望跑遍祖国的大好河山.然而,每次出行后,她都需要
回家休整几天,为下一次行程做准备.假设新的一年,思思的第一次旅行出去了 天,回来后休
整 天再出发; 第二次旅行去了 天,回来后休整 天再出发; 第三次旅行去了 天,回来后休整
天再出发 以此类推,每次旅行时间都比前一次多 天,休整时间多 天.只要出发了就
算一次新的旅行,即使一年结束的那天没有回到家也没有关系.思思在新的一年里最多可以安排
次旅行.
11、有一个车牌号码如图,其中四个问号对应四个不同的数字,每个数字的范围均为 ~ .已知
四个数字的总和为 的倍数,且从左往右数值依次递增,构成等差数列.这四个数字共
有 种可能性.
12、两个家庭计划安排周末出游,有 位大人和 位小孩,共有两辆车,一辆 座,一辆 座,每
辆车至少需有 位大人乘坐.一共有 种坐车方案.
13、在计算机领域, 、 、 代表三种颜色, 对应红色, 对应绿色, 对应蓝色.有一排
个格子,颜色依次为 .将格子打乱后重新排成一排,新排列中每个位置的颜色都不
允许和原排列相同.也就是说,第一第二格不能是 ,第三第四格不能是 ,第五第六格不能是
.符合要求的排列方案有 种.
14、 支队伍参加六轮的淘汰赛,最后得出一个冠军.每支队伍都有一个编号,从 号一直到
号.比赛的时候,编号小的队伍能战胜编号大的队伍.在第一轮的时候,将 支队伍分成 组,
每组 支队伍,胜者进入第 轮,败者被淘汰.所以第一轮中一共有 支获胜队伍,这 支获胜
队伍中编号最大的记为 .依次类推,第二轮中的 支获胜队伍中编号最大的记为 ,
,第六轮结束后的冠军队伍编号记为 .则 的最大值
为 .
15、下图中 个点可以构成一个五角星,从某一点出发(这个点是起点),沿着线段走遍所有的
点(每个点能且只能经过一次,终点和起点是不同的点),不同的路线有
种(下右图给出了一条路线,旋转或者翻折后相同的路线也算不同的路线).
第4页, 共8页16、东东和你正在一起探索数组中有关排序和双指针算法相关的问题.下面是一个经典的计算有
序数组平方的算法问题: 给你一个按非递减顺序排序(即后一个数不小于前一个数)的整数数组
,返回数组中每个数的平方组成的新数组,要求也按非递减顺序排序.
示例:
输入:
输出:
解释: 平方后,数组变为 ,排序后,新数组为 .
东东想到一种最直观的方法——暴力排序法: 先将每个数平方,再进行排序.例如
,先遍历数组的每个数字,并平方,得到的新的平方数组为:
, , ,
, .然后再对平方后的数组中的元素进行排序,得到的答案为:
, , ,
, .
17、东东觉得这种暴力算法时间复杂度较高,想请你和他一起探究更加高效的算法.你们想,初
始数组是有序的,只不过负数平方之后可能就成为最大的数了,那么数组平方的最大值就在数组
的两端,不是最左边就是最右边,而不可能是中间.那么这时候就可以考虑双指针法.如图,现
在有 ,我们使用两个指针 、 ,其中 初始指向起始位置(即初始
), 初始指向终止位置(即初始 ), 为 指针指向的数组数值, 为 指针指
向的数组数值, 是排序的结果数组, 为 数组中 位置的值,初始时
,每一次排序后, 往前移一个位置.
第5页, 共8页(1) 那我们可以得到: 如果 ,那么有
.
A.
B.
C.
(2) 反之, .
A.
B.
C.
(3) 下面为算法的部分执行过程:
最终停止的位置为 ,此时便得到了最终的结果,最终的结果为:
, , ,
, .经分析,这种双指针法相比于暴力排序法,大大提高了算法运
行效率.
18、双指针法可以解决很多算法问题,另一道很经典的可以用双指针法解决的问题如下:
给定一个已排序的数组(升序) 和一个目标值 ,请使用双指针法查找数组中两个不
同的元素,它们的和等于目标值 .如果找到这样的两个数,请返回它们的索引.如果不存
在这样的两个数,请返回 .请选出使用双指针法求解这道算法题时正确的解题思
路: .
A. 初始化两个指针 和 ,分别指向数组的开头和结尾.如果
的和等于 ,则返回这两个指针的索引; 如果和小于 ,将 向右移动一位; 如果和
大于 ,将 向左移动一位.
第6页, 共8页B. 初始化两个指针 和 ,分别指向数组的开头和结尾.如果
的和等于 ,则返回这两个指针的索引; 如果和小于 ,将 向右移动一位; 如果
和大于 ,将 向左移动一位.
C. 初始化两个指针 和 ,分别指向数组的开头和中间.如果
的和等于 ,则返回这两个指针的索引; 如果和小于 ,将 向右移动一位; 如果和
大于 ,将 向左移动一位.
D. 初始化两个指针 和 ,分别指向数组的中间和结尾.如果
的和等于 ,则返回这两个指针的索引; 如果和小于 ,将 向右移动一位; 如果和
大于 ,将 向左移动一位.
19、一个字符串的“右旋转”操作是指把字符串尾部的若干个字符转移到字符串的前面.给定一
个字符串 和一个正整数 ,我们要设计一个算法,将字符串后面 个字符移到字符串的前面,实
现字符串的右旋转操作.例如给出字符串“ ”和整数 ,通过操作将其转换为“ ”.
(1) 方法1: 切片
我们首先想到的方法就是把将字符串进行切片,变成前 个字符和后 个字符,然后再将后
个字符和前 个字符拼接起来.那么对于字符串“ ”和 ,右旋转的结果
是“ ”.
(2) 方法 2:负负得正
虽然切片方法简单,但在某些编程语言(如 Java)中,使用切片会额外占用内存空间.有没有一
种方法可以在不申请额外内存的情况下,只在原字符串上进行操作呢?
现在以 “abcdefg”, 为例,字符串相当于被分成了如图两个部分.通过将第一部分右移
位,实际上是把第二部分放到前面,第一部分放到后面.
① 为此,我们可以先对整个字符串进行一次倒序操作.这样,我们将得到字符串的整体倒
序:“ ”.
② 此时,虽然整体顺序已经改变,但第一段和第二段的位置已经交换.为了恢复每个部分内
部的字符顺序,我们需要分别再对这两段字符进行倒序操作.这样我们将得到最终的字符串:“
”.
第7页, 共8页③ 这种思路就是通过整体倒序,将两个部分的位置颠倒,然后再分别倒序每部分的字符,从
而达到正确的顺序.负负得正,这样可以避免影响子串内部字符的顺序.
以下哪种方法可以在不使用额外内存的情况下实现右旋转字符串?
A. 直接切片字符串
B. 整体倒序 分别倒序每个部分
C. 创建新字符串并拼接
D. 使用循环移动字符
参考答案
1 、【答案】 ; 2 、【答案】 ; ;
3 、【答案】 ; 4 、【答案】 周日; ;周二; ;
5 、【答案】 ; 6 、【答案】 ;
7 、【答案】
8 、【答案】 ; 9 、【答案】 ; 10 、【答案】 ;
11 、【答案】 ; 12 、【答案】 ; 13 、【答案】 ;
14 、【答案】 ; 15 、【答案】 ;
16 、【答案】 ; ; ; ; ; ; ; ; ; ;
17 、【答案】 (1) C;
(2) A;
(3) ; ; ; ; ; ;
18 、【答案】 A;
19 、【答案】 (1) ;
(2)
①
②
③ B
第8页, 共8页