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

下载本文档

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

文档简介

2025年5月第16届蓝桥杯Python编程青少组(省赛_中高级)真题(含答案)一、单选题。1.下列选项中,()是除法运算符?A.+B.-C.*D./标准答案:D。2.定义变量a如下,a的数据类型是?()。a=9999A.整数B.字符串C.列表D.元组标准答案:A。3.运行下面程序,输出的结果是?()。print("chick""eggs"=="chickeggs")A.报错B."chick"FalseC.TrueD.False标准答案:C。4.运行下面程序,输出的结果是?()。deffun(n):lis=[]m=2whilen>1:whilen%m==0:lis.append(m)n//=mm+=1returnlisprint(sum(fun(6300)))A.7B.20C.27D.34标准答案:C。5.以下关于Python的描述,【错误】的是?()。A.常量None和False在逻辑值中被定义为假值B.pow(0,0)和0**0的值都定义为1C.list、tuple和range对象是Python的三种序列类型。D.1、1.0、True可在同一个字典中作为不同的键。标准答案:D。二、编程题。6.编程实现:乐乐在今天h1点m1分进入图书馆,今天h2点m2分离开图书馆(时间均为24小时制),请计算乐乐在图书馆一共待了多少分钟。例如:h1=8,m1=30,h2=9,m2=40;乐乐8点30分进入图书馆,9点40分离开图书馆,乐乐在图书馆一共待了70分钟。输入描述:第一行输入一个整数h1(6≤h1≤21),表示乐乐h1点进入图书馆。第二行输入一个整数m1(0≤m1≤59),表示乐乐m1分进入图书馆。第三行输入一个整数h2(h1<h2≤22),表示乐乐h2点离开图书馆。第四行输入一个整数m2(0≤m2≤59),表示乐乐m2分离开图书馆。输出描述:输出一个整数,表示乐乐在图书馆一共待了多少分钟。样例输入:830940样例输出:70参考程序:h1=int(input())m1=int(input())h2=int(input())m2=int(input())print(h2*60+m2-(h1*60+m1))7.编程实现:将1~1000的整数从1开始,以每5个数为一组排列到200行6列的网格中,规律如下图所示。给定一个整数n,请计算n在多少行多少列。例如:n=16;16在第4行第6列。输入描述:输入一个整数n(1≤n≤1000)。输出描述:第一行输出一个整数,表示n所在行号。第二行输出一个整数,表示n所在列号。样例输入:16样例输出:46参考程序:n=int(input())r=(n-1)//5+1#行。ifr%2==1:c=n%10else:c=6-(n-1)%5print(r,c)8.编程实现:淘淘将一张长方形纸条均匀的划分成了n个大小一致的方格。有些方格为白色,有些方格为黑色。淘淘想让长方形纸条左右对折后,使得重合部分颜色相同。由于淘淘只有黑色的笔,请计算淘淘最少还需要将多少个方格涂成黑色。例如:n=7;长方形纸条被划分成了7个方格,各方格颜色如下:如果将该纸条沿着红线左右对折后,第1个方格会与第7个方格重合,第2个方格会与第6个方格重合,第3个方格会与第5个方格重合,第4个方格会与它自身重合。重合的部分中,第1个是黑色方格、第7个是白色方格,需要将第7个白色方格涂成黑色。第2个是白色方格、第6个是黑色方格,需要将第2个白色方格涂成黑色。淘淘最少还需要将2个方格涂成黑色。输入描述:第一行输入一个整数n(1≤n≤1000),表示长方形纸条被划分成的方格数量。第二行输入n个整数,整数为0或1,0表示白色方格,1表示黑色方格,整数从左到右分别表示方格的颜色情况,整数之间以一个空格隔开。输出描述:输出一个整数,表示淘淘最少还需要将多少个方格涂成黑色。样例输入:71001010样例输出:2参考程序:n=int(input())ls=list(map(int,input().split()))cnt=0foriinrange((n+1)//2):left=ls[i]right=ls[n-1-i]ifleft!=right:#需要涂其中一个为黑色,优先涂白色的那个。ifleft==0:cnt+=1elifright==0:cnt+=1print(cnt)9.编程实现。Adam和Bob在玩一种卡片接龙的游戏,他们各自有n张卡片,每张卡片写了一个号码,桌上还有一张写了号码m的卡片,他们会尽可能将手中的卡片进行接龙,游戏规则如下:(1)由Adam开始,双方轮流接龙。(2)接龙一方每次可以放置一张卡片到桌上,这张卡片必须比桌上的最小号码小1,或者比桌上的最大号码大1,重复这个过程直到没有可以放置的卡片,然后轮到另一方接龙。(3)胜负判定。(3.1)如果一方率先将手中的卡片全部放置(手中的卡片数量为0),则这一方获得胜利。(3.2)如果双方都还有卡片,且都不能再放置卡片,则手中卡片较少的一方获得胜利;如果卡片数量相等,则平局。给定Adam和Bob各自的卡片数量n,以及双方的卡片号码,桌上的卡片号码m。请计算出接龙游戏胜利方的名字和他手中剩余卡片的数量,如果平局,则输出Draw和-1。例如:n=4;Adam手中4张卡片的号码是5、7、9、2;Bob手中4张卡片的号码是3、6、10、4。m=8,桌上卡片的号码是8,初始由Adam开始,接龙情况如下:(1)Adam手中有比桌上最小号码8小1的卡片7,将卡片7放置到桌上,手中还有比桌上最大号码8大1的卡片9,将卡片9放置到桌上,此时手中还有卡片5、2,没有符合接龙的卡片,轮到Bob。(2)Bob手中有比桌上最小号码7小1的卡片6,将卡片6放置到桌上,手中还有比桌上最大号码9大1的卡片10,将卡片10放置到桌上,此时手中还有卡片3、4,没有符合接龙的卡片,轮到Adam。(3)Adam手中有比桌上最小号码6小1的卡片5,将卡片5放置到桌上,此时手中还有卡片2,没有符合接龙的卡片,轮到Bob。(4)Bob手中有比桌上最小号码5小1的卡片4,将卡片4放置到桌上,手中还有比桌上最小号码4小1的卡片3,将卡片3放置到桌上,此时手中卡片数量为0,Bob胜利。输出Bob和0。输入描述:第一行输入一个整数n(2≤n≤1000),表示Adam和Bob的卡片数量。第二行输入n个整数(1≤整数≤2000),表示Adam手中卡片的号码,整数之间以一个空格隔开。第三行输入n个整数(1≤整数≤2000),表示Bob手中卡片的号码,整数之间以一个空格隔开。第四行输入一个整数m(1≤m≤2000),表示初始桌上的卡片号码。输出描述:第一行输出一个字符串,表示胜利方的名字,如果平局,则输出Draw。第二行输出一个整数,表示胜利方手中剩余卡片的数量,如果平局,则输出-1。样例输入:45792361048样例输出:Bob0参考程序:defmain():n=int(input().strip())adam_list=list(map(int,input().split()))bob_list=list(map(int,input().split()))m=int(input().strip())#InitializedictionariesandcountsforAdamandBob.adam_dict={}forainadam_list:adam_dict[a]=adam_dict.get(a,0)+1count_adam=nbob_dict={}forbinbob_list:bob_dict[b]=bob_dict.get(b,0)+1count_bob=n#Initializetablestate.left=mright=mturn=0#0:Adam'sturn,1:Bob'sturn.last_pass=False#Trackifthelastturnpassedwithoutplaying.whileTrue:#Selectcurrentplayerifturn==0:player_dict=adam_dictplayer_count=count_adamelse:player_dict=bob_dictplayer_count=count_bobhas_played=Falsechanged=True#Continueplayingcardsuntilnomoremoves.whilechanged:changed=False#Checkforleftexpansion.card_left=left-1ifcard_leftinplayer_dictandplayer_dict[card_left]>0:player_dict[card_left]-=1ifplayer_dict[card_left]==0:delplayer_dict[card_left]left=card_lefthas_played=Truechanged=Trueifturn==0:count_adam-=1else:count_bob-=1#Checkforrightexpansion.card_right=right+1ifcard_rightinplayer_dictandplayer_dict[card_right]>0:player_dict[card_right]-=1ifplayer_dict[card_right]==0:delplayer_dict[card_right]right=card_righthas_played=Truechanged=Trueifturn==0:count_adam-=1else:count_bob-=1#Checkifcurrentplayerhasnocardsleft.if(turn==0andcount_adam==0)or(turn==1andcount_bob==0):winner="Adam"ifturn==0else"Bob"print(winner)print(0)return#Updatepassstatusifnothas_played:iflast_pass:breakelse:last_pass=Trueelse:last_pass=False#Switchturnturn=1-turn#Determinethewinnerbasedonremainingcards.ifcount_adam<count_bob:print("Adam")print(count_adam)elifcount_bob<count_adam:print("Bob")print(count_bob)else:print("Draw")print(-1)if__name__=='__main__':main()10.编程实现:有无限个格子从左到右依次排开,编号依次是0、1、2、3、4、5、6、7、8、9、10…。金钱鼠初始在0号格子,除0号格子外,其余每个格子都有金瓜子,从1号格子开始,每个格子的金瓜子数量分别是1、2、3、4、5、1、2、3、4、5…,以此类推。给定一个整数n,以及n个不同的整数,金钱鼠只能向右跳跃n次,每次从n个不同整数中选一个作为此次向右跳的格子数,每个整数只能选一次。金钱鼠会收集跳跃到的格子中的金瓜子,请合理选择整数的顺序并

温馨提示

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

评论

0/150

提交评论