文档内容
2025 年四年级竞赛数学试卷【“思维100”STEM 应用能力科教活动
(春季)初赛&决赛真题】-学生用卷
1、根据以下流程图,当输入数值T=567时,输出的结果是 .
2、根据以下流程图,当输入数值a=0,b=2024,u=1,v=2时,输出结果a=
,b= ,c= .
第1页, 共10页3、弟弟最近开始学习计算机编程.在周一和周二,他每天上机练习半小时; 在周三和周四,他每
天上机练习一小时; 在周五、周六和周日,他每天上机练习两小时.那么从2024年11月1日开始,
到11月30日,弟弟总共会上机练习 小时.
4、已知一个不超过777的正整数x,其二进制最后3位恰好是111.则x的最大值
是 .
5、四只不同颜色的变异章鱼,可能有六、七、八或九只脚.已知拥有七或九只脚的章鱼总是说
谎,而拥有六或八只脚的章鱼总是说真话.现在它们进行如下对话
绿色章鱼说:“我有八只脚,蓝色章鱼有六只脚”;
蓝色章鱼说:“我有八只脚,绿色章鱼有七只脚”;
红色章鱼说:“我有九只脚,蓝色章鱼有八只脚”;
黄色章鱼说:“我有八只脚,其他章鱼都没有八只脚”;
在这些章鱼中,有八只脚的是 色章鱼.
6、将1~7这七个不同整数填入如图所示树形结构中的圆圈内,每个圆圈填入不同的数,且每条有
向边的起点圆圈内的数必须大于终点圆圈内的数.共有 种可能性.
第2页, 共10页7、如图,ABCD是长方形,将△BCD沿着BD翻折至△BED,点M为AE中点.若△MBD的面积
为4,则ABCD的面积为 .
8、甲、乙、丙结伴去自驾游,甲先开车,开了一段时间后换乙来开,乙又开了一段时间后换丙开
完剩下的路程.已知整个行程一共要开车12小时,如果每个人开车的时间都是整数小时,并且开
车时间最多的人,和开车时间最小的人,两人开车时间之差不超过5小时,那么一共
有 种分配时间的方案.
9、有一串英文字母排列如图所示.从左往右依次选出5个字母,不改变相对顺序,恰好能组成
SIWEI的方法共有 种.
10、在一场100公里的城市拉力赛中,一位选手骑自行车,另一位选手驾驶汽车,两人同时出发.
汽车的速度是自行车的3倍,但在比赛途中,汽车出现了故障,需要停下来进行维修.当汽车维修
完毕重新上路时,自行车已经领先了33公里.尽管汽车不断追赶,但最终骑自行车的选手仍然率
先冲过终点线,此时汽车距离终点只相差0.1公里.在汽车维修期间,自行车选手骑
了 公里.
第3页, 共10页11、一个3×3的方格表内填入9个数,每个小方格内填一个数,每行、每列、每条对角线上的三个
数之积都相同.将每个小方格内的数加上0、2或4(不知道哪个数加0、哪个数加2、哪个数加4
),得到下表.则原表中加0的所有数之和为 .
12、有7个同学围成一个圈,依次编号1~7,分成A队和B队,如图所示.共有x颗巧
克力,按照顺时针方向每人轮流取走巧克力,每次选的数量必须是1颗或2颗.拿走最后1颗的队伍
判为输.
当x=4时,从3号开始选取, 队有必胜策略.
当x=5时,从1号开始选取, 队有必胜策略.
当x=6时,从5号开始选取, 队有必胜策略.
13、a、b、c是三个正整数,老师将这三个正整数之和告诉了小明,将这三个正整数之积告诉了小
红.
小明说:“如果小红的数比我的数大,那么我就知道这三个正整数了.”
小红说:“我的数一定比你的数小.”
则a+b+c= .
14、小明有一些2×1的多米诺骨牌,其中一个小方格是黑色的,另一个小方格是白色的.用这些
多米诺骨牌来完全覆盖2×2的棋盘,一共有8种不同的覆盖方法,如下图所示.注意: 第3种和第7
第4页, 共10页种,虽然完成后的图案一样,但第3种的2块多米诺骨牌是竖放的,第7种是横放的(注意图中的粗
线条),因此视为不同的覆盖方法.同理,第4种和第8种也是不同的.
用这些多米诺骨牌去完全覆盖2×8的棋盘,有 种不同的覆盖方法.
15、如下左图所示,9×9的方格表中被挖去了一小块,用右下图的8块不重不漏地覆盖方格表(不
要覆盖被挖去的小方格,每块能且只能使用一次),有 种不同的覆盖
方法.
16、链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域,一
个是指针域(存放下一个节点的指针),最后一个节点的指针域指向null(空指针的意思).链表
的入口节点称为链表的头节点,即为ℎead.链表的结构如图所示.
数组在计算机内存中是连续分布的,但是链表在内存中不是连续分布的.链表是通过指针域的指
针链接在内存中的各个节点.因此,链表中的节点在内存中是散乱地分布在内存的某个地址上,
而分配机制取决于操作系统的内存管理机制.链表的存储方式如图所示,这个链表起始节点为2,
终止节点为7,各个节点分布在内存的不同地址空间上,通过指针串联在一起.
第5页, 共10页(1) 下列关于链表的说法哪个是正确的?
A. 插入或删除时,无需移动其他元素
B. 数据在内存中一定是连续的
C. 需要事先估计存储空间
D. 可以随机访问表内的元素
(2) 在长度为n(n>1)的单链表上,设有头和尾两个指针,执行 操作
与链表的长度有关.
A. 在单链表第一个元素前插入一个新元素
B. 在单链表最后一个元素后插入一个新元素
C. 删除单链表中的第一个元素
D. 删除单链表中的最后一个元素
17、你已经了解了链表的基础知识,让我们一起来解决一个环形链表的问题.给定一个链表,返
回链表开始入环的第一个节点.如果链表无环,则返回null.为了表示给定链表中的环,使用整数
pos来表示链表尾连接到链表中的位置(索引从0开始).如果pos是−1,则在该链表中没有环.
下面是一个示例.
第6页, 共10页要找到环形链表中环的入口下标,需要进行两步: 判断链表是否有环; 如果有环,如何找到这个环
的入口.
首先,让我们进行第一步,判断链表是否有环,这就引入了一种经典的算法——快慢指针法,我
们分别定义fast指针和slow指针,如下图.
我们让fast指针每次移动两个节点,而slow指针每次移动一个节点,如果fast和slow在途中相遇,
则说明这个链表有环,如下图.
这样我们就解决了第一个问题.那么如果链表中有环,我们怎么找到这个环的入口呢? 我们假设从
头节点到环形入口节点的节点数为x.环形入口节点到fast指针与slow指针相遇节点的节点数为y
,从相遇节点再到环形入口的节点数为z,如下图.
第7页, 共10页下面请你用x、y、z和n(n=1,2,3⋯)组合成的式子完成如下选择.
(1) 相遇时,slow指针走过的节点数为 .
A. x+ y B. x+ y+z C. y+z D.
x+z
(2) fast指针走过的节点数为 .
A. x+ y
B. x+ y+n(y+z)
C. x+ y+z
D. x+ny+nz
(3) 一圈内节点的个数为 .
A. y B. x+ y C. x+z D. y+z
18、“无重复字符的最长子串”问题是滑动窗口思想的经典问题,即给你一个字符串s,请你找出
其中不含有重复字符的最长子串的长度.下面是一些例子:
示例 1: 输入: s="abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是"abc",所以其长度为3.
示例 2: 输入: s="bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是"b",所以其长度为1.
第8页, 共10页(1) 我们先以字符串“abcabcbb”为例,找出从每一个字符开始,不包含重复字符的最长子串,那
么其中最长的那个字符串即为答案.对于这个示例中的字符串,我们列举出这些结果:
以(a)bcabcbb开始的最长字符串为 ;
以a(b)cabcbb开始的最长字符串为 ;
以ab(c)abcbb开始的最长字符串为 ;
以abc(a)bcbb开始的最长字符串为 ;
以abca(b)cbb开始的最长字符串为 ;
以abcab(c)bb开始的最长字符串为 ;
以abcabc(b)b开始的最长字符串为 ;
以abcabcb(b)开始的最长字符串为 .
(2) 从上面的结果中不难发现,如果我们依次递增地枚举子串的起始位置,那么子串的结束位置也
是递增的!这里的原因在于,假设我们选择字符串中的第k个字符作为起始位置,并且得到了不包
含重复字符的最长子串的结束位置为r ,那么当我们选 择第k+1个字符作为起始位置时,首先从
k
k+1到r 的字符是绝对不重复的,并且由于少了原本的第k个字符,我们可以尝试继续增大r ,直
k k
到右侧出现了重复字符为止. 这样一来我们就可以使用“滑动窗口”来解决这个问题了.
我们使用两个指针表示字符串中的某个子串(或窗口)的左右边界,其中左指针代表 着上文
中“枚举子串的起始位置”,而右指针即为上文中的r (不包含重复字符的最长子串的结束位
k
置).在每一步的操作中,我们会将左指针向右移动一格,表示我们开始枚举下一个字符作为起
始位置,然后我们可以不断地向右移动右指针,但需要保证这两个指针对应的子串中没有重复的
字符.在移动结束后,这个子串就对应着以左指针开始的,不包含重复字符的最长子串.我们记
录下这个子串的长度.在枚举结束后,我们找到的最长的子串的长度即为答案.
当我们使用滑动窗口来解决寻找不含重复字符的最长子串的问题时,以下哪项是正确的?
A. 左指针和右指针都是固定不动的.
B. 左指针向右移动一格时,右指针也必须向右移动一格.
C. 左指针可以移动,而右指针可以在保证无重复字符的情况下向右无限移动.
D. 当遇到重复字符时,必须立即移动左指针至下一个位置.
(3) 在上面的流程中,我们还需要使用一种数据结构来判断是否有重复的字符,常用的数据结构为
哈希集合.在左指针向右移动的时候,我们从哈希集合中 (填“移
除”或“添加”)一个字符,在右指针向右移动的时候,我们往哈希集合中
(填“移除”或“添加”).
第9页, 共10页注:哈希集合是一种数据结构,用来存储不重复的元素.它可以快速判断一个元素是否已经存
在.每当你想把一个新元素放进去,哈希集合会检查这个元素是否已经存在,如果不存在,它就
会把这个元素添加进去;如果已经存在,它就不会添加.
1 、【答案】 0927; 2 、【答案】 703;618;37; 3 、【答案】 40;
4 、【答案】 775; 5 、【答案】 黄; 6 、【答案】 80;
7 、【答案】 8; 8 、【答案】 31; 9 、【答案】 101;
10 、【答案】 66.7; 11 、【答案】 49; 12 、【答案】 A;A;B;
13 、【答案】 6; 14 、【答案】 8704;
15 、【答案】 1568;
16 、【答案】 (1) A;
(2) D;
17 、【答案】 (1) A;
(2) B;
(3) D;
18 、【答案】 (1) abc;bca;cab;abc;bc;cb;b;b;
(2) C;
(3) 移除;添加;
第10页, 共10页