第十三届青少年蓝桥杯大赛python省赛题

| 15页
| 580人阅读
| 5人下载

内容正文:

第十三届第一次省赛(4 月)真题 一:下列二进制中最大数是() A 110 B 1010 C 1100 D 1001 二:以下方法中,不是对文件读操作的是() A readline() B readlines() C readtext() D read() 三:以下对 turtle 库中函数描述正确的是() A goto()函数设置当前画笔移动到原点位置 B pensize()函数设置画笔的移动速度 C setup()函数定义窗体的大小和相对位置 D hideturtle()函数是将海龟显示 四 以下选项中,对 random.uniform(a,b)语句表达正确的是() A 随机生成一个 a到 b之间的整数 B 随机生成一个 a到 b之间的浮点数 C 随机生成一个 a到 b之外的整数 D 随机生成一个 a到 b之外的浮点数 五 下列表达式在遍历字典 d时,变量 x代表字典值是() A for x in d : B for x in d.keys() : C for x in d.items() : D for x in d.values() : 答案:1C 2C 3C 4B 5D 第十三届省赛 4 月第一场操作题第一题(初中高级组均要考) 编写程序:统计 1到 N之间所有正整数中个位数为零的有几个。 例如:N=21,1到 21之间所有正整数中个位数为零的数有 2 个,分别为:10,20。 输入描述: 输入一个正整数 N 输出描述: 输出 1到 N 之间(包含 N)所有正整数中个位数为 零的有几个 输入示例: 21 输出示例: 2 第一题源代码 n = int(input()) cnt = 0 for i in range(1,n+1): if str(i)[-1] == "0": cnt += 1 print(cnt) 第十三届省赛 4 月第一场操作题第二题(初中高级组均要考) 编写程序:输入多个英文单词(单词都为小写字母),然后按字典顺序排序输出 。 注:单词首字母相同时就比较第二个字母,以此类推。 输入描述: 输入多个由小写字母组成的英文单词,单词之间以一 个英文逗号隔开 输出描述: 按字典顺序排序输出 ,且单词之间以一个英文逗号隔开 输入示例: python,hello,world 输出示例: hello,python,world 第二题源代码 ls = list(map(str,input().split(","))) ls.sort() print(",".join(ls)) 第十三届省赛 4 月第一场操作题第三题(初中高级组均要考) 编写程序:小蓝和小青在玩积木搭建游戏,具体玩法如下: 小蓝报一个数字 N,代表高楼的高度,小青则需要使用最少的积木搭建出高度大于 N的高楼。 给出小蓝所报出的数字 N,及已有积木块每一块的高度,请你帮助小青找出最少需要多少块积木可以搭建出高度大于 N的高楼。例如:N=12, 已有 4个积木块的高度分别为 4,7,8,4。则最少需要 2块积木,可以使搭建的高楼高度大于 12,2块积木为 7和 8。 输入描述: 第一行输入一个正整数 N,表示小蓝报出的数字 第二行输入多个正整数,表示已有积木块每一块的高 度,正整数之间以一个英文逗号隔开。(要求所有正整 数之和大于 N) 输出描述: 输出最少需要使用多少块积木,可以搭建出高度大于 N的高楼 输入示例: 12 4,7,8,4 输出示例: 2 第三题答案 n = int(input()) ls = list(map(int,input().split(","))) ls.sort(reverse = True) print(ls) s = 0 for i in range(len(ls)) : if sum(ls[:i]) > n : print(sum(ls[:i]) ) print(i) break 第十三届省赛 4 月第一场操作题第四题(初中高级组均要考) 题目描述:N 个小朋友围成一圈(N≤60),并按照顺序进行编号(编号 1 到 N),然后从编号为 1 的小朋友开始持续报数,当报到的数字中 含 3或者数字是 3的倍数的小朋友,不能报数字而是报“过”(例如 3,6,13,31这些数字都报“过”)。 一次游戏中,小朋友们玩的不亦乐乎,突然有小朋友发现前边报过的数字中已经有报错的,而后边小朋友还在继续报数。请你帮助小朋友 找出第一次报错的小朋友是编号几。 例如:有 3 个小朋友,编号为 1,2,3。编号 1的小朋友报 1、编号 2的小朋友报 2、编号 3的小朋友报“过”、编号 1的小朋友报 4、编号 2 的小朋友报 5、编号 3的小朋友报 6、编号 1的小朋友报 7;此时第一次报错的小朋友为编号 3。(因为编号 3的小朋友应该报“过”时, 报成了“6”,而“6”是 3的倍数) 输入描述: 第一行输入一个正整数 N,表示小朋友的人数 第二行输入一组有错的报数序列(使用“0”表示含 3 或者是 3的倍数的数字),序列元素之间以一个英文逗 号隔开 输出描述: 输出第一次报错的小朋友是编号几 输入示例: 3 1,2,0,4,5,6,7 输出示例: 3 第四题源代码 n = int(input()) ls = list(map(int,input().split(","))) cnt = 0 for i in range(1,len(ls)+1): if "3" in str(i) or i%3 ==0 : if ls[i-1] != 0: if i%n == 0: print(n) else: print(i%n) break else: if ls[i-1] != i : print(i%n) break 第十三届省赛 4 月第一场操作题第五题(初中高级组均要考) 题目描述:编程实现: 有 N 个正整数,现对 N 个正整数进行不同方式的排列,每次排列后都会按照以下规则进行一次计算,聪明的小蓝发现,排列方式不同,最 后计算出的结果也不相同。 计算规则: 第一次:第一个数乘以第二个数乘以第三个数,结果记录为 M(1);第二次:第二个数乘以第三个数乘以第四个数,结果记录为 M(2);第三 次:第三个数乘以第四个数乘以第五个数,结果记录为 M(3);…第 N-2 次:第 N-2个数乘以第 N-1个数乘以第 N个数,结果记录为 M(N-2)。 最后计算 M(1)+M(2)+M(3)......M(N-2)的数值。找出一种排列方式使这个数值最大。 例如:N=4,4个正整数分别为 1,2,3,4,那么排列方式就会有 24种:其中排列方式为 1,3,4,2时,按照规则计算 2次:1*3*4=12, 3*4*2=24;乘积相加:12+24=36这种排序方式是所有乘积相加的数值最大,为 36。 输入描述: 输入 N个正整数(3≤N),正整数之间一个英文逗号隔 开 输出描述: 找出所有乘积相加的数值最大的排列方式,并输出数值 输入示例: 1,2,3,4 输出示例: 36 第五题代码 ls = list(map(int,input().split(","))) def permute(nums,solution = []): if not nums: res.append(solution) return for i in range(len(nums)): newSolution = solution + [nums[i]] newList = nums[0:i]+nums[i+1:] permute(newList, newSolution) res = [] permute(ls) max_value = 0 for l in res: s = 0 for i in range(len(l)-2): s += l[i]*l[i+1]*l[i+2] max_value = max(s,max_value) print(max_value) 第十三届省赛 4 月第一场操作题第六题(中高级组考,初级不考) 题目描述:有一块农田被划分为 N*M 块,农作物和杂草分布生长在农田中,其中农作物使用大写字母“R”表示,杂草使用大写字母“X” 表示。请计算出农田中有几块独立的农作物区域(独立的农作物区域指该区域上下左右都被杂草围住,且 N*M以外的区域都是杂草)。 例如:N=4,M=4,4*4 的农田中农作物和杂草分布如右下图: 这块 4*4 的农田中有 3块独立的农作物区域(红色的 3部分)。 输入描述: 第一行输入两个整数 N 和 M(1≤N≤100,1≤M≤100), N 表示农田的行数,M表示农田的列数,且两个正整数 之间以一个英文逗号隔开 接下来的 N 行每行包括 M个字符(字符只能为 R或 X), R 表示农作物,X表示杂草,字符之间以一个英文逗号 隔开 输出描述: 输出一个整数,表示 N*M的农田中有几块独立的农作物区域 输入示例: 4,4 R,R,R,X R,X,R,X X,X,X,R R,X,X,X 输出示例: 3 第六题答案 n,m = eval(input()) ls = [] cnt = 0 ls.append(["X" for i in range(m+1)]) for i in range(n): l = list(map(str,input().split(","))) ls.append(["X"]+l) for i in range(1,n+1): for j in range(1,m+1): if ls[i][j] == "R" : ls[i][j] = -1 if ls[i-1][j] == -1 or ls[i][j-1] == -1 : continue else: cnt += 1 print(cnt)

资源预览图

第十三届青少年蓝桥杯大赛python省赛题-第1页
1
第十三届青少年蓝桥杯大赛python省赛题-第2页
2
第十三届青少年蓝桥杯大赛python省赛题-第3页
3
第十三届青少年蓝桥杯大赛python省赛题-第4页
4

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。