2024年10月第16届蓝桥杯Python编程青少组(选拔赛-中高级)真题(含答案)_第1页
2024年10月第16届蓝桥杯Python编程青少组(选拔赛-中高级)真题(含答案)_第2页
2024年10月第16届蓝桥杯Python编程青少组(选拔赛-中高级)真题(含答案)_第3页
2024年10月第16届蓝桥杯Python编程青少组(选拔赛-中高级)真题(含答案)_第4页
2024年10月第16届蓝桥杯Python编程青少组(选拔赛-中高级)真题(含答案)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年10月第16届蓝桥杯Python编程青少组(选拔赛_中高级)真题(含答案)一、单选题。1.下列选项中,()是减法运算符。A.-B./C.*D.%标准答案:A。2.下列选项中,()属于条件语句的关键字。A.defB.ifC.forD.while标准答案:B。3.运行下面程序,输出的结果是()。S='Python'print(S[1])A.PB.yC.oD.n标准答案:B。4.运行下面程序,输出的结果是()。lis=[1,2,3,4,5,6]lis.insert(2,7)print(lis)A.[1,2,3,4,5,6,7]B.[1,2,7,3,4,5,6]C.[1,2,3,4,5,6,2,7]D.[1,7,2,3,4,5,6]标准答案:B。5.定义fun函数如下,下列选项中,能正确调用fun函数的是()。deffun(p1,p2,p3='B',*p4):print(p1)print(p2)print(p3)print(p4)A.fun(1,p3='C',p5=1)B.fun(1,p3='C',2,3)C.fun('p1','p3'='C')D.fun(1,2,3,p2='C','A'=1)标准答案:A。二、编程题。6.编程实现。给定一个整数N,输出比N大1的整数。例如:N=4;比4大1的整数是5。输入描述:输入一个整数N(1≤N≤100)。输出描述:输出一个整数,表示比N大1的整数。样例输入:4样例输出:5参考程序:n=int(input())print(n+1)7.编程实现。给定一个字符串S,输出S的最后一个字符。例如:S='abcd';'abcd'的最后一个字符是'd'。输入描述:输入一个字符串S(2≤S的长度≤100)。输出描述:输出一个字符,表示S的最后一个字符。样例输入:abcd样例输出:d参考程序:s=input().strip()print(s[-1])8.编程实现。小明将黄色和蓝色的正方形卡片按如下规律摆放:给定一个整数N,按照规律计算第N行有多少张黄色卡片。例如:N=5;第5行有3张黄色卡片。输入描述:输入一个整数N(5≤N≤1000)。输出描述:输出一个整数,表示第N行有多少张黄色卡片。样例输入:5样例输出:3参考程序:n=int(input())ifn<=4:res=[0,1,1,2,3]print(res[n])else:dp=[0]*(n+1)dp[1]=1dp[2]=1dp[3]=2dp[4]=3foriinrange(5,n+1):dp[i]=dp[i-2]+dp[i-4]print(dp[n])9.编程实现。有n块长度不同的积木从左到右排成一排,现需要将所有积木按照以下要求堆放在A、B位置,A、B位置初始没有积木。堆放要求:1)从左到右依次拿取积木堆放在A位置或B位置的顶部,且堆放后不能再改变该积木位置。2)堆放过程中,如果该位置没有积木,那么可以直接堆放拿取的积木;如果该位置有积木,只有拿取的积木长度小于该位置顶部的积木时,才可以堆放。提示:所有积木堆放完后A位置或B位置可以没有积木。例如:n=2;从左到右2块积木的长度依次为2、1,如下图所示:按要求,从左到右先堆放长度为2的积木,再堆放长度为1的积木,有如下4种不同的堆放方法:第一种:先将长度为2的积木堆放在A位置,因为1小于2,再将长度为1的积木堆放在A位置顶部。第二种:先将长度为2的积木堆放在A位置,再将长度为1的积木堆放在B位置。第三种:先将长度为2的积木堆放在B位置,再将长度为1的积木堆放在A位置。第四种:先将长度为2的积木堆放在B位置,因为1小于2,再将长度为1的积木堆放在B位置顶部。给定一个整数n,以及从左到右n块积木的长度,请计算堆放完所有积木,一共有多少种不同的堆放方法。如果按要求没有一种方法能堆放完所有积木,则输出0。输入描述:第一行输入一个整数n(1≤n≤20),表示积木数量。第二行输入n个不同的整数(1≤整数≤30),分别表示从左到右每块积木的长度,整数之间以一个空格隔开。输出描述:输出一个整数,表示一共有多少种不同的堆放方法;如果按要求没有一种方法能堆放完所有积木,则输出0。样例输入:221样例输出:4参考程序:n=int(input())blocks=list(map(int,input().split()))dp=[[[0]*31for_inrange(31)]for_inrange(n+1)]dp[0][0][0]=1foriinrange(n):x=blocks[i]forainrange(31):forbinrange(31):ifdp[i][a][b]==0:continueifa==0orx<a:dp[i+1][x][b]+=dp[i][a][b]ifb==0orx<b:dp[i+1][a][x]+=dp[i][a][b]ans=0forainrange(31):forbinrange(31):ans+=dp[n][a][b]print(ans)10.编程实现。有一块矩形土地被划分成n行m列的网格,每个网格生长一种植物。如果相邻(上、下、左、右)网格生长的植物相同,那么这些网格的植物归为同一片植物林;如果一个网格与相邻网格生长的植物都不同,那么该网格的植物单独为一片植物林。例如:n=3,m=4;3行4列的网格生长的植物如下:一共有5片植物林(已用不同颜色的线条圈出),如下图所示:给定n行m列的网格中生长的植物,请找出一共有多少片植物林。输入描述:第一行输入两个整数n、m(1≤n、m≤100),表示这块矩形土地被划分成的网格行数和列数,整数之间以一个空格隔开。接下来输入n行,每行m个整数(1≤整数≤10000),表示每个网格的植物,不同的整数表示不同的植物,相同的整数表示相同的植物,整数之间以一个空格隔开。输出描述:输出一个整数,表示这块矩形土地一共有多少片植物林。样例输入:34122111213332样例输出:5参考程序:fromcollectionsimportdequen,m=map(int,input().split())grid=[list(map(int,input().split()))for_inrange(n)]visited=[[False]*mfor_inrange(n)]count=0directions=[(-1,0),(0,1),(1,0),(0,-1)]foriinrange(n):forjinrange(m):ifnotvisited[i][j]:count+=1queue=deque([(i,j)])visited[i][j]=Trueplant=grid[i][j]whilequeue:x,y=queue.popleft()fordx,dyindirections:nx,ny=x+dx,y+dyif0<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论