当前位置: 首页 > news >正文

历年蓝桥杯Python青少组中/高级选拔赛(STEMA)真题解析 | 2022年10月

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:历年蓝桥杯青少组Python中/高级选拔赛(STEMA)真题解析 | 汇总


单选题

第1题

执行print(5%3)语句后,输出的结果是( )

A.0

B.1

C.2

D.3

【答案】:C

【解析】

%表示取余,5%3为2,故选C

第2题

以下选项中,哪一个是乘法运算符?( )

A.%

B.//

C.*

D.**

【答案】:C

【解析】

%为取余运算符,//为整除运算符,*为乘法运算符,**为幂运算符

第3题

已知x=3,求x//2+x**2的运算结果?( )

A.7.5

B.10

C.8

D.10.5

【答案】:B

【解析】

x//2为1,x**2为9,故结果为10,选B

第4题

关于字符串的strip方法的作用是( )

A.只能删除字符串头部指定的字符

B.只能删除字符串尾部指定的字符

C.删除字符串头尾指定的字符

D.指定分隔符对字符串切片

【答案】:C

strip用来去除头尾字符,lstrip用来去除开头字符,rstrip用来去除结尾字符。split用来指定分隔符对字符串切片

第5题

以下选项中,对下面程序的打印结果描述正确的是( )

a=[1,2,3,4]
i=len(a)-1
while i>=0:print(a[i])i-=1

A.把列表a倒序打印出来

B.把列表a顺序打印出来

C.去除列表a的第一项后并依次打印出每一项

D.去除列表a的最后一项后并依次出每一项

【答案】:A

【解析】

i依次为3、2、1、0,故为倒序打印列表a,选A

编程题

第6题

【题目描述】

给定一个三位数,输出其百位上的数字。

【输入】

输入一个三位数

【输出】

输出三位数百位上的数字

【输入样例】

123

【输出样例】

1

【代码详解】

在这里插入图片描述

n = input()
print(n[0])

【运行结果】

123
1

第7题

【题目描述】

一盏台灯的开关可以控制三种灯光状态。初始状态为关闭状态,第一次按下开关为冷光状态,第二次按下开关为暖光状态,第三次按下开关为关闭状态,第四次按下开关继续为冷光状态,以此类推。请计算出按下N次开关后,台灯为何种状态。

【输入】

输入一个正整数N(1<N<1000),表示按下台灯开关的次数(初始状态为关闭状态)

【输出】

输出一个大写字母,当按下台灯开关N次后,灯光为冷光状态则输出大写字母“L”,为暖光状态则输出大写字母“N”,为关闭状态则输出大写字母“G”

【输入样例】

5

【输出样例】

5

【代码详解】

在这里插入图片描述

n = int(input())
n = n%3
if n==0:  # 回到原点,即关闭状态print("G")
elif n==1:  # 按一下为冷光状态print("L")
else:  # 按两下为暖光状态print("N")

【运行结果】

5
N

第8题

【题目描述】

现要对一张纸进行反复对着,纸张的单页厚度为0.2毫米,请问最少对折几次后,纸的厚度超过N毫米(N为正整数,1<N<1000)。

【输入】

输入一个正整数N(1<N<1000)

【输出】

输出一个整数,表示纸张最少对折几次后,纸的厚度超过N毫米(大于N毫米)

【输入样例】

2

【输出样例】

4

【代码详解】

在这里插入图片描述

n = int(input())
hd = 0.2
ans = 0
while hd<=n:  # 未超过n就一直对折hd *= 2ans += 1
print(ans)

【运行结果】

2
4

第9题

【题目描述】

现有N罐糖果,且已知每罐糖果的初始数量。现给出两个数值L和R(L≤R),需要把每罐糖果的数量调整为:L≤任意一罐糖果的数量≤R。调整的方式是每次从其中一罐糖果中拿出1块放到其他糖果罐中。请你计算出最少调整几次才能使每罐糖果的数量都在L和R范围之间,如果不能将每罐糖果都调整到L和R范围之间则输出-1。

例如:N=2,2罐糖果的初始数量为3和8,L=3,R=6,通过调整使得:3≤任意一罐糖果的数量≤6,调整方式如下:

第一次从初始数量为8的罐中拿1块放到初始数量为3的罐中,调整后为(4,7);

第二次从数量7的罐中拿1块放到数量为4的罐中,调整后为(5,6);

故最少调整2次。

【输入】

第一行输入一个正整数N(N<30),表示糖果的罐数

第二行输入N个正整数(1≤正整数≤100),表示每罐糖果的初始数量,每个正整数之间以一个空格隔开

第三方输入两个正整数L,R(1≤L≤R≤100),表示每罐糖果的数量所要调整的范围,两个正整数之间以一个空格隔开

【输出】

输出一个整数,表示最少调整几次才可以使N罐糖果数量都在L和R范围之间,如果不能将N罐糖果调整到L和R范围之间则输出-1

【输入样例】

2
3 8
3 6

【输出样例】

2

【代码详解】

在这里插入图片描述

import sysn = int(input())
a = [0 for i in range(105)]
ls = [int(i) for i in input().split()]
sum = 0
for i in range(1, n+1):  # 输入n罐糖果a[i] = ls[i-1]sum += a[i]  # 并计算总和
l, r = [int(i) for i in input().split()]  # 记录L和R
if sum//n<l or sum//n>r:  # 如果平均数小于L或大于Rprint(-1)  # 则无法调整sys.exit()
less = 0
more = 0
for i in range(1, n+1):  # 遍历n个罐if a[i]<l:  # 记录要增加的数量less += (l-a[i])elif a[i]>r:  # 记录要减少的数量more += (a[i]-r)
print(max(less, more))  # 输出最大值

【运行结果】

4
1 3 5 8
2 6
2

第10题

【题目描述】

有一个N*M的矩阵,且矩阵中每个方格中都有一个整数(0≤整数≤100),小蓝需要按照以下要求从矩阵中找出一条最长的移动路线,且输出最长路线的长度(1个方格为1个长度)。

要求:

  1. 小蓝可以从矩阵中任意一个方格开始向它的上、下、左、右相邻的任意一个方格移动,且移动的路线不能有交叉。
  2. 小蓝每次所要移动到的方格中整数都要小于当前所在方格中的整数(如当前所在的方格中整数为3,那么可以移动到数字为0,1,2的格子里,不可以移动到数字为3,4,5...的格子里);

例如:N=3,M=3,矩阵方格如下:

在这里插入图片描述

最长路线为4->3->2->1,故路线长度为4。

【输入】

第一行输入两个正整数N,M(1<N≤1000,1<M≤1000),N表示矩阵的行数,M表示矩阵的列数,两个正整数之间以一个空格隔开

第二行开始输入N行,每行包含M个整数(0≤每个整数≤100),表示每个方格中的整数,每个整数之间以一个空格隔开

【输出】

输出一个整数,表示最长路线的长度

【输入样例】

3 3
1 1 3
2 3 4
1 1 1

【输出样例】

4

【代码详解】

在这里插入图片描述

n, m = [int(i) for i in input().split()]
a = [[0 for i in range(10)] for i in range(10)]
vis = [[0 for i in range(10)] for i in range(10)]
ans = 0
for i in range(1, n+1):  # 输入矩阵ls = [int(i) for i in input().split()]for j in range(1, m+1):a[i][j] = ls[j-1]dx = [-1, 1, 0, 0]  # 定义坐标偏移
dy = [0, 0, -1, 1]def bfs(x, y, cnt):  # 使用广搜q = []q.append([x, y, cnt])while len(q)!=0:tmp = q.pop(0)x = tmp[0]y = tmp[1]cnt = tmp[2]for i in range(4):  # 4个方向遍历搜索xx = x+dx[i]yy = y+dy[i]if 1<=xx<=n and 1<=yy<=m and a[xx][yy]<a[x][y]:  # 判断新的单元格小于现在单元格的q.append([xx,yy, cnt+1])  # 加入队列中return cnt  # 返回最后一个单元格的cnt(即最大值)for i in range(1, n+1):  # 遍历矩阵for j in range(1, m+1):ans = max(ans, bfs(i, j, 0))  # 得到最大的cnt(即步数)
print(ans+1)  # 路线的长度等于步数+1

【运行结果】

3 3
1 1 3
2 3 4
1 1 1
4
http://www.jsqmd.com/news/355166/

相关文章:

  • 2026年淮南靠谱的中等职业学校排名,专业服务不错的中职学校大揭秘 - 工业推荐榜
  • 婴幼儿疝气固定带推荐 舒适无痕适配凸脐患儿 - 真知灼见33
  • WPF Window的所有重要生命周期事件
  • 聊聊金蝙蝠工艺家具的舒适度,广东地区红木家具品牌推荐哪家 - myqiye
  • 2026年2月幼儿混油皮面霜产品推荐,水油平衡测评与清爽控油护肤指南 - 品牌鉴赏师
  • 2026细软发质救星!这些发泥好用到哭 - 品牌测评鉴赏家
  • 2026年2月阳朔民宿权威推荐,硬件设施与游客口碑深度解析 - 品牌鉴赏师
  • C#中的事件订阅运算符
  • 这大概是我读过关于AI大模型最全面、好读又易懂的文章了
  • 化工产品配送能提供全程跟踪的公司费用多少,怎么选择 - mypinpai
  • 历年蓝桥杯Python青少组中/高级选拔赛(STEMA)真题解析 | 2022年8月
  • 2026年靠谱的工业厂房通风气楼,薄型通风气楼厂家选型参考指南 - 品牌鉴赏师
  • Flutter 列表优化:ListView 性能调优与复杂列表构建
  • AI 编辑器Qoder
  • 上海专业医疗空间装修团队价格多少,技良行费用高吗? - 工业设备
  • 学区房居住体验与教育价值怎么权衡,重庆知房来分享经验 - 工业品网
  • 2026年纺织工厂设计机构最新推荐,纺织工程设计 - 品牌策略师
  • 2026年磨刀机厂家选购推荐,铣刀磨床/五轴数控刀具磨床 - 品牌策略师
  • 2026年内蒙古口碑不错的牧草膜公司排名推荐,看哪家性价比高? - 工业推荐榜
  • 某单位僵尸木马病毒攻击链全景分析
  • 基于熵权法和灰色关联分析的综合评价算法MATLAB代码
  • 2026年五轴数控刀具磨床公司推荐top榜单,磨刀机/铣刀磨床 - 品牌策略师
  • 聊聊包装定制彩盒包装性价比高的厂家有哪些 - 工业品牌热点
  • 2026年2月婴儿婴儿便携装唇膏产品推荐,随身补涂测评与出行护唇优选 - 品牌鉴赏师
  • 2026年五轴数控刀具磨床厂家最新推荐/磨刀机,铣刀磨床 - 品牌策略师
  • 2026年仿竹护栏优质厂家推荐榜契合自然场景 - 真知灼见33
  • 大润发购物卡回收哪里靠谱?避坑指南+正规渠道推荐 - 可可收
  • WPF常用 NuGet 包的作用和用途
  • 选择央国企就业职业规划服务,国育甄选怎么样 - 工业品牌热点
  • 2026凤凰职教学培课堂怎么样?课程体系与口碑测评 - 品牌排行榜