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

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

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

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

适合人群:

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

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


单选题

第1题

已知x=3,执行语句x+=5后,x的值为( )

A.3

B.5

C.8

D.35

【答案】:C

【解析】

x+=5,即x = x+5,故3+5=8,选C

第2题

以下选项中,关于列表描述错误的是( )

A.列表是不可变的数据类型

B.列表中可以存放任意类型元素

C.列表元素可以使用负整数下标引用

D.列表是一个有序集合,没有固定大小

【答案】:A

【解析】

列表是可变的数据类型,而元组是不可变的数据类型

第3题

下列选项中,对turtle.circle(50,steps=6)语句,描述正确的是( )

A.绘制一个半径为50像素的圆

B.绘制一个半径为50像素的6个圆

C.绘制一个半径为50像素的圆内接正六边形

D.绘制一个半径为50像素的圆和一个正六边形

【答案】:C

【解析】

steps表示起点到终点由steps条线组成,即绘制steps条边的内切正多边形

第4题

下列关于Python函数的说法中,正确的是( )

A.函数的定义必须在程序开头

B.函数定义后需要调用才能执行

C.函数体与关键字def必须左对齐

D.函数必须有关键字return

【答案】:B

【解析】

函数的定义可以放在程序的任何地方,所以A错误。

函数体与关键字def必须遵循缩进原则,所以C错误。

函数可以没有return,如打印函数等,所以D错误。

第5题

执行以下代码,输出的结果是( )

info = {'小蓝': {'like': ['钢琴','吉他','射箭'],'score': 100},'小青': {'like': ['画画','爬山','滑雪'],'score': 99}
}
print(info["小青"]["like"][1])

A.画画

B.爬山

C.吉他

D.99

【答案】:B

【解析】

这是一个字典与列表的嵌套,info['小青']返回{'like': ['画画', '爬山', '滑雪'], 'score': 99},info['小青']['like']返回['画画', '爬山', '滑雪'],所以info['小青']['like'][1]返回'爬山'

编程题

第6题

【题目描述】

给定两个正整数N和M(1<N<1000,1<M<1000),请计算出N与M的乘积。

【输入】

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

第二行输入一个正整数M(1<M<1000)

【输出】

输出一个正整数,表示N与M的乘积

【输入样例】

2
3

【输出样例】

6

【代码详解】

在这里插入图片描述

n = int(input())
m = int(input())
print(n*m)

【运行结果】

2
3
6

第7题

【题目描述】

给定一个正整数N(100≤N≤999),交换N中任意两个数位上的数字获得一个新值,找到一种交换方式使得新值最大,并输出,如果交换后的新值都不大于N,则输出N。(只能交换一次)

例如:N=145,有三种交换方式,交换后的新值分别为415、541、154,其中交换后最大的新值为541,则输出541。

【输入】

输入一个正整数N(100≤N≤999)

【输出】

输出一个正整数,表示交换后的最大值

【输入样例】

145

【输出样例】

541

【代码详解】

在这里插入图片描述

n = input()
g = int(n[2])  # 取出三位数的每一位
s = int(n[1])
b = int(n[0])
ls = [g, s, b]  # 放到列表中
ls = sorted(ls, reverse=True)  # 按照从大到小排序
for i in range(3):  # 依次输出print(ls[i], end='')

【运行结果】

145
541

第8题

【题目描述】

有N(1≤N≤100)根绳子,已知每根绳子初始的长度(1≤长度≤1000)。每根绳子都可以在任意位置裁断。

请计算出小明最多可以剪成多少根长度为K(1≤K≤200)的绳子,如果不能剪成长度为K的绳子输出0。

例如:N=4,4根绳子初始长度为2,3,4,10,K=3,最多可以剪成5根长度为3的绳子。

第一根不能剪成;第二根可以剪成1根;第三根可以剪成1根;第四根可以剪成3根。

【输入】

第一行输入一个正整数N(1≤N≤100),表示原有绳子的根数

第二行输入N个正整数(1≤正整数≤1000),表示每根绳子的初始长度,正整数之间以一个空格隔开

第三方输入一个正整数K(1≤K≤200),表示需要剪出的绳子长度

【输出】

输出一个整数,表示N根绳子中最多可以剪成多少根长度为K的绳子,如果都不能剪成长度为K的绳子,则输出0

【输入样例】

4
2 3 4 10
3

【输出样例】

5

【代码详解】

在这里插入图片描述

n = int(input())
ans = 0
a = [int(i) for i in input().split()]
k = int(input())
for i in range(n):  # 遍历n根绳子ans += a[i]//k  # 计算每根整除k后的数量,并进行累加
print(ans)

【运行结果】

4
2 3 4 10
3
5

第9题

【题目描述】

将N(1<N<50)堆石子围成一个圆圈,已知每堆石子的数量,且石子的总数量能被N整除。请按照如下要求移动石子,使得N堆石子的数量变为相同。

要求:可以从每堆石子中拿取石子移动到它左右相邻的两堆石子堆中。

计算出要使得N堆石子的数量变为相同,至少需要移动多少颗石子。

例如:N=3,3堆石子顺时针方向的数量依次为2、6、7。最少需要移动3颗石子,N堆石子的数量变为相同,每堆5颗。

在这里插入图片描述

第1次从第二堆石子中拿1颗移动到第一堆的石子中,此时3堆石子的数量依次为3、5、7;

第2次从第三堆石子中拿2颗移动到第一堆的石子中,此时3堆石子的数量依次为5、5、5;

【输入】

第一行输入一个正整数N(1<N<50),表示石子的堆数

第二行输入N个正整数(1<正整数<100),表示顺时针方向每堆石子的原始数量,正整数之间以一个空格隔开

【输出】

输出一个整数,表示要使N堆石子的数量变为相同,最少移动的石子数量,如果原始N堆石子数量相同,则输出0

【输入样例】

3
2 6 7

【输出样例】

3

【代码详解】

在这里插入图片描述

n = int(input())
ls = [int(i) for i in input().split()]
avg = sum(ls) // n  # 求得平均值for i in range(n):if i == 0:  # 对于第一堆石子,直接计算其需要移动的石子数(如果为负数,说明从左右移过来)ls[i] -= avg  else:  # 对于其他石子ls[i] -= avg  # 除计算与平均值的差值ls[i] += ls[i-1]  # 再进行前缀和,表示当前石子堆,要移动的石头总数ls.sort()  # 按照从小到大排序
tot = 0  # 初始值设为0
for x in ls:  # 遍历前缀和列表tot += abs(x - ls[n // 2])  # 每个值都去减中间的值,并进行累加print(tot)

【运行结果】

3
2 6 7
3

第10题

【题目描述】

某公园有N(3≤N≤50)棵树排成一排,已知每棵树的高度。现要去掉一些树,使得剩下树的高度从左至右呈现先递增再递减的规律(即剩余的树中仅有一棵最高的树,且它左侧的所有树中后一棵树都要比前一棵树高,它右侧的所有树中后一棵树都要比前一棵树矮)

给出N棵树的高度(高度单位:m,1.0≤每棵树高度≤100.0,保留一位小数),请你计算出最少去掉几棵树才能使这排树呈现先递增再递减的规律,如果不能呈现则输出-1(只有递增或者只有递减都为不能呈现)。

例如:N=10,10棵树的高度从左到右依次为1.0、2.3、1.2、1.7、1.1、2.0、1.8、1.8、1.2、1.9。

在这里插入图片描述

要使这排树呈现先递增再递减的规律,最少去掉4棵树,去掉的编号分别为2、5、8、10。

在这里插入图片描述

剩余树的高度依次为1.0、1.2、1.7、2.0、1.8、1.2,最高树为2.0,其左侧树的高度依次为1.0、1.2、1.7、2.0,呈现递增趋势(从左至右且包含最高树);其右侧树的高度依次为2.0、1.8、1.2,呈现递减趋势(从左至右且包含最高树)。

【输入】

第一行输入一个正整数N(3≤N≤50),表示这排树的数量

第二行输入N个数(1.0≤每个数≤100.0,保留一位小数),表示每棵树的高度,每个树之间以一个空格隔开

【输出】

输出一个整数,表示最少去掉几棵树才能使这排树呈现先递增再递减的规律,如果不能呈现则输出-1

【输入样例】

10
1.0 2.3 1.2 1.7 1.1 2.0 1.8 1.8 1.2 1.9

【输出样例】

4

【代码详解】

在这里插入图片描述

n = int(input())
a = [0 for i in range(55)]
ls = [eval(i) for i in input().split()]
for i in range(1, n+1):  # 输入每棵树的高度a[i] = ls[i-1]
dp1 = [0 for i in range(55)]  # 初始化dp1数组
for i in range(1, n+1):  # 遍历n棵树maxn = 0for j in range(1, i):  # 从第1个遍历至第i-1棵if a[j]<a[i]:  # 记录递增的数量maxn = max(dp1[j], maxn)dp1[i] = maxn+1  # 最后加上第i棵本身
dp2 = [0 for i in range(55)]  # 初始化dp2数组
for i in range(n, 0, -1):  # 从后往前遍历n棵树maxn = 0for j in range(n, i-1, -1):  # 从第n个遍历至第i+1棵if a[j]<a[i]:  # 记录递增的数量maxn = max(dp2[j], maxn)dp2[i] = maxn+1  # 最后加上第i棵本身
ans = 0
for i in range(1, n+1):  # 遍历n棵树k = dp1[i]+dp2[i]-1  # 得到从左至右递增和从右至左递增的总数(重复计算i,所以需要减1)ans = max(ans, k)  # 计算最大值
if n-ans==0:  # n-ans就是要去掉的数量,如果为0输出-1print(-1)
else:  # 否则输出去掉的数量print(n-ans)

【运行结果】

10
1.0 2.3 1.2 1.7 1.1 2.0 1.8 1.8 1.2 1.9
4
http://www.jsqmd.com/news/355079/

相关文章:

  • 2026更新版!AI论文写作软件 千笔·专业论文写作工具 VS 笔捷Ai,本科生专属神器!
  • 七自由度整车模型:魔术公式与 Dugoff 轮胎模型的奇妙融合
  • OpenAI最强AI编程模型:GPT-5.3-Codex登场,是“编程模型”还是“数字员工”?
  • 2026年重庆装修公司排名,十二分装饰价格便宜吗?效果又如何? - mypinpai
  • 分析学西点机构,看唐山哪家有低糖甜品研发思路课程 - 工业推荐榜
  • RRT路径规划算法(MATLAB版):从入门到精通的模块化编程指南
  • 2026年曲轴连杆总成费用分析,售后完善的厂家价格对比 - 工业品牌热点
  • 逆合成孔径雷达相位补偿:牛顿法、固定点与同时更新的探索
  • 2026年纱布家居服优质厂家推荐,哪家品牌口碑好? - 工业推荐榜
  • 总结靠谱的婚纱摄影企业,北京三川摄影费用怎么算 - 工业品网
  • 历年蓝桥杯Python青少组中/高级选拔赛(STEMA)真题解析 | 2023年2月模拟赛
  • 了解淮南科贸学校对口升学培训,费用是怎么收费的呢 - 工业品网
  • 实用指南:【自然语言处理】WordNet与知网:支撑自然语言理解的词汇知识库双璧
  • 分析国际本科留学费用、教学模式和专业选择,哪家比较靠谱? - 工业设备
  • 2026年数码喷印设备年度Top10,浙江工正智能设备市场份额靠前揭晓 - myqiye
  • 深入解析:基于微信小程序的宠物走失信息管理系统【源码文末联系】
  • 2026男生救星!油皮专属控油素颜乳实测 - 品牌测评鉴赏家
  • 直男伪素颜秘籍!百元内男士素颜霜宝藏清单,手残党闭眼冲 - 品牌测评鉴赏家
  • 北京全城上门收酒!京城亚南酒业茅台五粮液回收,急用钱变现秒到账 - 品牌排行榜单
  • 【Coze 实战】从零搭建「照片转春节祝福图」自动化工作流(附详细教程)
  • 2026年大连有名的2+2国际本科院校盘点,选哪家好 - 工业设备
  • 【博硕救命贴】开题被怼、论文卡壳?如何用“降维打击”的工具拯救你的发际线 - 沁言学术
  • Docker 容器内部访问不了外部网络,一招搞定 MASQUERADE 配置
  • 猫眼电影数据可视化与智能分析平台 | Python Flask框架 Echarts 推荐算法 爬虫 大数据 毕业设计源码
  • CVE-2026-1700:房屋租赁系统XSS漏洞深度剖析与修复指南
  • 2026男士素颜霜天花板推荐!4大爆款实测,直男秒变伪素颜男神 - 品牌测评鉴赏家
  • 讲讲不错的麻辣烫加盟品牌企业,郑州石家庄糊涂婶麻辣烫选哪家 - myqiye
  • 数字基因(Digital Gene):通过解析概念认知物理世界
  • 2026油皮男士沐浴露选购指南:控油去味不踩雷,这5款实测封神! - 品牌测评鉴赏家
  • 2026男士素颜霜排行榜10强|直男伪素颜天花板,一抹帅出圈! - 品牌测评鉴赏家