版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023年5月第14届蓝桥杯Python编程青少组(国赛)真题(含答案)一、单选题。1.以下选项中,哪一个可以将字典dict1与字典dict2合并?()。A.dict1.add(dict2)B.dict1.extend(dict2)C.dict1.update(dict2)D.dict1.merge(dict2)标准答案:C。2.执行print("{1}{0}".format("Hello","Python","!"))语句后,输出的结果是()。A.HelloPython!B.PythonHello!C.HelloPythonD.PythonHello标准答案:D。3.关于Python中的全局变量和局部变量,以下选项描述错误的是()。A.全局变量不可以被函数内部的代码块修改B.全局变量在函数之外一般没有缩进,在程序执行全过程有效。C.全局变量是指在函数之外定义的变量,而局部变量是指在函数内部定义的变量。D.局部变量和全局变量可以共存,但如果局部变量和全局变量的名称相同,局部变量会覆盖全局变量。标准答案:C。4.下列函数中哪一个可以删除集合中指定的元素?()。A.clear()B.discard()C.union()D.issubset()标准答案:B。5.以下选项中,哪一个可以更好地描述Python中类方法和静态方法之间的区别?()。A.类方法只能由类调用,而静态方法只能由实例调用。B.类方法可以访问类和实例的属性和方法,而静态方法不能访问。C.类方法必须要有一个参数,而静态方法可以没有参数。D.类方法只能访问类的属性和方法,而静态方法只能访问实例的属性和方法。标准答案:C。二、编程题。6.题。题目描述,例如:S="1Abb",其中字母有A,b,b一共有3个。给定一个字符串S(S长度<100),统计字符串中字母一共有多少个。输入描述:输入一个字符串S(S长度<100)。输出描述:输出一个整数,表示字符串S中字母的个数。样例输入:1Abb样例输出:3参考程序:s=input()cnt=0foriins:ifi.isalpha():cnt+=1print(cnt)7.题。提示信息:有一个由多个小正六边形组成的蜂巢图案,蜂巢外缘各边的小正六边形数量一致,且左右对称。(上图蜂巢图案外缘各边小正六边形数量为2)。以下为竖直对称线上小正六边形个数为3、5、7的3个蜂巢图案。编程实现:有一只蜗牛要从竖直对称线顶端的小正六边形处移动到底端的小正六边形中,它每次只能向它所在位置的小正六边形的左下方、正下方、右下方相邻的小正六边形处移动。已知竖直对称线上有N个小正六边形,请计算出蜗牛从竖直对称线顶端移动到底端共有多少条不同的移动路线。例如:N=3,竖直对称线上有3个小正六边形,如下图:蜗牛从竖直对称线顶端的小正六边形处(1号处)移动到另一端的小正六边形中(7号处)共有11条不同的路线。11条不同的路线分别为:(1->2->5->7)、(1->2->4->7)、(1->2->4->5->7)、(1->2->4->6->7)、(1->4->5->7)、(1->4->7)、(1->4->6->7)、(1->3->4->5->7)、(1->3->4->7)、(1->3->4->6->7)、(1->3->6->7)。输入描述:输入一个正整数N(2<n<30,n为奇数),表示图案上竖直对称线上小正六边形的个数。输出描述:输出一个整数,表示蜗牛从竖直对称线顶端移动到底端共有多少条不同的移动路线。样例输入:3样例输出:11参考程序:n=int(input())f=[[0]*(n//2+2)for_inrange(n+2)]foriinrange(1,n//2+2):f[1][i]=1foriinrange(2,n+1):f[i][n//2+1]=f[i-1][n//2+1]+2*f[i-1][n//2]forjinrange(n//2,0,-1):f[i][j]=f[i-1][j]+f[i][j+1]+f[i-1][j-1]print(f[n][n//2+1])8.题。某公司有多间会议室,可使用时间为8点到22点,同一会议室同一时间段只能由一个部门使用。一天有N(1<=N<=50)个部门计划使用同一间会议室,且已知每个部门计划使用的开始时间S(8<=S<=21)和结束时间E(S<e<=22)。请计算出这间会议室最多可以安排多少个部门使用。例如:N=3,3个部门计划使用的开始及结束时间依次为(9,12),(10,15),(15,20)。10~12点的时间段,部门1和部门2都计划使用,所以只能由一个部门使用;15~20点的时间段,只有部门3计划使用,所以这间会议室最多可以安排2个部门使用(部门1和部门3或者部门2和部门3)。输入描述:第一行输入一个正整数N(1<=N<=50),表示计划使用同一间会议室的部门数量接下来输入N行,每行两个正整数S和E(8<=S<=21,S<=E<=22),分别表示某部门计划使用会议室的开始时间和结束时间,正整数之间以一个空格隔开。输出描述:输出一个整数,表示这间会议室最多可以安排多少个部门使用。样例输入:391210151520样例输出:2参考程序:n=int(input())ls=[]foriinrange(n):ls.append(list(map(int,input().split())))ls.sort(key=lambdax:x[1])lt=[]lt.append(ls[0])foriinrange(1,n):ifls[i][0]>=lt[-1][1]:lt.append(ls[i])print(len(lt))9.小贝要做一份黑暗料理,现有N(2≤N≤20)种不同的食材供她选择,食材编号从1到N。其中有些食材同时食用会产生副作用,所以产生副作用的食材只能选择其中一种食材或者都不选择。已知同时食用会产生副作用的食材有M对(0≤M≤N*(N-1)/2),请计算出这份黑暗料理中最多能有多少种食材。注意:会产生副作用的食材以两个编号表示,两个编号不等且编号小的在前,例如(1,2)和(2,3)。例如:N=5,M=3时,5种食材编号为1到5,其中有3对食材会产生副作用:(1,2)、(2,3)、(4,5)。可选择1、3、4号食材或1、3、5号食材做黑暗料理,最多可以有3种食材。输入描述:第一行输入两个正整数N(2≤N≤20)和M(0≤M≤N*(N-1)/2),分别表示食材数量及会产生副作用的食材对数,两个正整数之间以一个空格隔开接下来输入M行,每行两个正整数(1≤正整数≤N),表示会产生副作用的两种食材编号,两个正整数之间以一个空格隔开,两个编号不等且编号小的在前。输出描述:输出一个整数,表示这份黑暗料理中最多能有多少种食材。样例输入:53122345样例输出:3参考程序:n,m=map(int,input().split())a=[]foriinrange(m):a.append(list(map(int,input().split())))path=[]ans=0defchick(p):foriinpath:if[i,p]ina:returnFalsereturnTruedefdfs(p):globalansifp>n:returnifchick(p):path.append(p)ans=max(ans,len(path))dfs(p+1)path.pop()dfs(p+1)dfs(1)print(ans)10.小蓝从公司出发,要去拜访N(3≤N≤15)个客户,已知公司到每个客户的路程时间,及N个客户之间的路程时间。请计算出小蓝拜访完所有客户并返回到公司,最少需要多少时间。(道路双向通行,可重复走)。例如:N=3,有3个客户需要拜访,公司到1号、2号、3号客户的路程时间依次为9,7,5,客户1到客户2和客户3的路程时间依次是4,6,客户2到客户3的路程时间是3。从公司出发拜访完3名客户并返回公司最少需要的路程时间为21,行走路线为:公司-->3号-->2号-->1号-->公司(21=5+3+4+9)。输入描述:1)第一行输入一个正整数N(3≤N≤15),表示要拜访的客户数量。2)第二行输入N个正整数(1≤正整数≤1000),依次表示公司到1号~N号客户的路程时间,正整数之间以一个空格隔开。3)第三行输入N-1个正整数(1≤正整数≤1000),依次表示1号客户到2号~N号客户的路程时间,正整数之间以一个空格隔开。4)第四行输入N-2个正整数(1≤正整数≤1000),依次表示2号客户到3号~N号客户的路程时间,正整数之间以一个空格隔开。……等等。第N+1行输入一个正整数(1≤正整数≤1000),表示N-1号客户到N号客户的路程时间。输出描述:输出一个整数,表示小蓝拜访完N名客户并返回公司最少需要的路程时间。样例输入:3975463样例输出:21参考程序:fromitertoolsimportpermutationsn=int(input())ls=[]foriinrange(n):ls.append(list(map(int,input().split())))whilelen(ls[i])<n:ls[i].append(0)ans=16000sum=0arr=[iforiinrange(1,n+1)]forperminpermutations(arr):sum=ls[0][perm[0]-1]+ls[0][perm[-1]-1]forjinrange(1,n):ifperm[j-1]<perm[j]:sum+=ls[perm[j-1]-1][perm[j]-1]else:sum+=ls[perm[j]-1][perm[j-1]-1]ans=min(ans,sum)print(ans)11.题。有一组正整数数据,现对这组数据按照如下操作:1)从这组数中找出两个相邻且相同的数,删掉其中一个数,剩下的一个数加1(例如:两个相邻的6,变成一个7)。2)重复操作第1步,直到这组数据中没有相邻且相同的数时,操作结束。现给定N(1≤N≤2000)个正整数,表示这一组数,请问按照要求操作结束后,这组数据中最大的数是多少。注意:不同的操作方式得到的最后结果不同,要求最后的结果是所有操作方式中最大的。例如:当N=6,这组数为1、2、2、2、3、4时,可获得最大结果的操作如下:第一次操作:将这组数据中后两个相邻的2,变成3,此时这组数变为1,2,3,3,4。第二次操作:将这组数据中两个相邻的3,变成4,此时这组数变为1,2,4,4。第三次操作:将这组数据中两个相邻的4,变成5,此时这组数变为1,2,5。此时这组数据中没有相邻且相同的数,操作结束,最大的数是5。非最大结果的操作如下:第一次操作:将这组数据中前两个相邻的2,变成3,此时这组数变为1,3,2,3,4。此时这组数据中没有相邻且相同的数,操作结束,最大的数是4。所以按照要求操作结束后,这组数据中可获得的最大数是5。输入描述:第一行输入一个正整数N(1≤N≤2000)。第二行输入N个正整数(1≤正整数≤40),相邻两个数之间以一个空格隔开。输出描述:输出一个正整数,表示所有操作方式中最大的结果。样例输入:6122234样例输出:5参考程序:n=int(input())ls_a=list(map(int,inpu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年度工作总结撰写指导书
- 旅游娱乐产业发展趋势分析与预测报告
- 客服建议与改进建议函5篇
- 城市公共空间活力提升策略效果研究综述
- AI辅助交通管理专业培训考核大纲
- 硬件并行排序算法研究
- 城市复合型灾害风险评估与韧性规划研究意义
- 知识成果保护与应用规范保证承诺书(9篇)
- 网络安全漏洞挖掘-第5篇
- 2026广东警官学院招聘事业单位人员5人备考题库附答案详解(轻巧夺冠)
- 电影《白日梦想家》课件
- 小记者改稿培训
- 奴隶契约合同模板
- 2024年框架协议范本
- 水喷雾灭火系统施工组织设计方案
- AQ/T 2061-2018 金属非金属地下矿山防治水安全技术规范(正式版)
- 车工4级考试练习题及答案1-2023-背题版
- 放松解压培训课件
- 《田螺姑娘》儿童故事ppt课件(图文演讲)
- (大学课件)随机变量及其分布:离散型随机变量的概率分布
- 复旦大学国务学院743政治学原理真题(1996-2019)
评论
0/150
提交评论