内容正文:
第十二届国赛真题(初级中级高级)
1、设 s="Hi LanQiao"运行一下哪个选项代码可以输出“LanQiao”子串()
A print(s[-7:])
B print(s[-6:-1])
C print(s[-7:0])
D print(s[-7:0])
2、已知 a=2021.0529,运行一下代码选项可以输出“2021.05”()
A print("{2f}".format(a))
B print("{:.2f}".format(a))
C print("{2}".format(a))
D print("{.2f}".format(a))
3、已知 pi = 3.1415924,运行 print(round(pi),round(pi,2)),输出结果是()
A 3 3.14
B 2 4
C 3 6.18
D 3.14 3
4、运行以下程序,输出的结果是()
d = {"beijing":"china","washington":"america","ottawa":"canadian"}
print(max(d),min(d))
A: Washington Ottawa
B: Canadian China
C: America China
D: Washington Beijing
5、如果 p= ord("b"),运行 print(p,chr((p+3)%26+p))语句,输出结果是()
A 66 D
B 66 S
C 98 y
D 98 e
选择题答案 ABADC
蓝桥杯第十二届国赛 python 操作题第一题
编程实现:
给定 N 个数字(包含整数和小数),找到 N 个数中最大的数字。
输入描述:
输入 N 个数字(N>2),且 N 个数字之间以英文逗号隔开
输出描述:
输出 N 个数字中最大的数字
输入示例:
4,3,8,10
输出示例:
10
蓝桥杯第十二届国赛 python 操作题第一题代码
ls = list(map(float,input().split(",")))
print(max(ls))
蓝桥杯第十二届国赛 python 操作题第二题
编程实现:质数:是一个大于 1 的自然数,且除了 1 和它本身外,不能被其他自然数整除的数。最小的质数是 2,1 不是质数。
合数:一个正整数,如果除 1 和它本身以外,还能被其他正整数整除,叫合数。如 6 是合数,除了 1 和 6 以外,还能被 2 和 3 整除。
分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出
来,叫做分解质因数(分解质因数只针对合数)。如合数 12=2×2×3 。分解质因数的方法是先用这个合数的最小质因数去除这个合数,
结果若是一个质数就不再除下去;若是一个合数就继续按原来的方法从最小质因数除起,直至最后除得的结果是一个质数 。
例如:合数 18 分解质因数,首先用最小质因数 2 去除,除后结果为合数 9,继续用最小质因数 3 去除,除后结果为质数 3,就不再
除下去。所以 18 的质因数为 2、3、3,故质因数的个数为 3
给定一个合数 N,将 N 分解质因数后,输出其质因数个数。
输入描述:
输入一个合数 N
输出描述:
将 N 分解质因数后,输出质因数个数
输入示例:
18
输出示例:
3
蓝桥杯第十二届国赛 python 操作题第二题代码
def zhishu(m):
for i in range(2,m):
if m%i ==0 :
return False
else:
return True
ls = []
N = int(input())
while True :
if zhishu(N):
ls.append(N)
break
else:
for i in range(2,N):
if N%i==0 and zhishu(i):
ls.append(i)
N = N//i
if N == 1:
break
print(ls)
蓝桥杯第十二届国赛 python 操作题第三题
编程实现:给定一个含有字母和数字的字符串,输出此字符串中最长的数字子串的长度。
如:字符串“a2a22d”,最长的数字子串为 22,长度为 2,故输出 2
字符串“lq12h567j765”,最长的数字子串为 567 和 765,长度都为 3,故输出 3
输入描述:
输入一个含有字母和数字的字符串(5<字符串长度<101)
输出描述:
输出此字符串中最长的数字子串的长度
输入示例:
a2a22d
输出示例:
2
蓝桥杯第十二届国赛 python 操作题第三题
s = input()
ls = []
for i in s:
if "a"<=i<="z" or "A"<=i<="Z":
ls.append(0)
else:
ls.append(ls[-1]+1)
print(max(ls))
蓝桥杯第十二届国赛 python 操作题第四题
提示信息:质数:是一个大于 1 的自然数,且除了 1 和它本身外,不能被其他自然数整除的数。最小的质数是 2,1 不是质数。
大于 2 的偶数有一个特点,任意一个大于 2 的偶数可以由一对质数相加得到,但有的偶数不止有一对这样的质数对。如偶数 6,有一
对质数相加得 6,为(3,3)如偶数 14,有两对质数相加得 14,分别是(3,11),(7,7)
编程实现:
给定一个大于 2 的偶数,在所有满足“任意一个大于 2 的偶数可以由两个质数相加得到”这个特点的质数对中,找出两个质数差值最
小的一对,并将差值输出(差值为大数减小数的值,两个质数相等时差值为 0)。
例如:偶数 16,满足特点的质数对有(5,11)和(3,13),差值最小的一对是(5,11),11 减 5,差值为 6。
输入描述:
输入一个大于 2 的偶数 N
输出描述:
输出满足“任意一个大于 2 的偶数可以由两个质数相加得到”这个特
点的所有质数对中,差值最小的那一对的差值
输入示例:
16
输出示例:
6
蓝桥杯第十二届国赛 python 操作题第四题
def zhishu(m):
for i in range(2,m):
if m%i==0:
return False
else:
return True
N = int(input())
min_value = N
for i in range(2,N//2+1):
if zhishu(i)and zhishu(N-i):
min_value = min(abs(N-i-i),min_value)
print(min_value)
蓝桥杯第十二届国赛 python 操作题第五题
提示信息:孙悟空的金箍棒可以变高也可以变矮还可以变出多个金箍棒。这天孙悟空无聊变出了 N 个长短不一的金箍棒,这些金箍棒
之间相互吵闹,攀比谁高。当孙悟空每次手指其中一个金箍棒时,这个金箍棒高度不变,其他的金箍棒高度都会增加 1。只有当所有
金箍棒高度都一样时,他们之间才不相互吵闹,也不会再增加高度,保持静止。分别给定 N 个金箍棒的初始高度,请你帮助孙悟空计
算一下至少手指几次可以让 N 个金箍棒高度都一样。
例如: 有 3 个金箍棒,初始高度分别为 2,3,4。
第一次手指第三个金箍棒,第三个金箍棒高度不变,第一和第二个金箍棒高度分别增加 1,变为 3,4,4;
第二次手指第二个金箍棒,第二个金箍棒高度不变,第一和第三个金箍棒高度分别增加 1,变为 4,4,5;
第三次手指第三个金箍棒,第三个金箍棒高度不变,第一和第二个金箍棒高度分别增加 1,变为 5,5,5;
这时 3 个金箍棒的高度都为 5,手指 3 次后金箍棒高度一样。所以至少手指 3 次才能使金箍棒高度都一样。
输入描述:
输入N个非全部相等的正整数(N个数不全部相等,2<N<31),
且之间以英文逗号隔开,分别表示 N 个金箍棒的初始高度
输出描述:
输出一个正整数,表示至少手指几次才能使金箍棒高度都一样
输入示例:
2,3,4
输出示例:
3
蓝桥杯第十二届国赛 python 操作题第五题
ls = list(map(int,input().split(",")))
cnt = 0
while True:
if min(ls)==max(ls):
break
else:
cnt += 1
n = ls.index(max(ls))
for i in range(len(ls)):
if i != n :
ls[i]+=1
print(cnt)
蓝桥杯第十二届国赛 python 操作题第六题
提示信息:六月一日是国际儿童节,小蓝的学校为迎接儿童节要在学校的一块正方形空地上使用不同颜色的花卉摆放图案。为了摆放
的更精准,图案更漂亮,小蓝把这块正方形空地同比例缩小将其画在纸上,并平分成 100*100 的方格,每个方格的坐标点为(1,1)......
(100,100),如下图:首先在指定坐标的方格内放置红色的花卉(每个方格放一盆),完成后,找出最多有多少盆红色花卉在同一条直
线上。(同一直线包含同一列、同一行、同一对角线,红色花卉可以连续也可以不连续)如:随机指定坐标(2,1)、(3,2)、(5,2)、(4,3)、
(3,4)、(6,5)的方格内放置红色的花卉,其中最多的红色花卉在同一条直线上的坐标点为(2,1)、(3,2)、(4,3)、(6,5),故最多有 4 盆
红色的花卉在同一条直线上。
输入描述:
输入 n 对正整数,每一对正整数之间以一个空格隔开,代表放
置红色花卉的方格位置。
每对正整数中的两个数字以英文逗号隔开
输出描述:
输出最多有多少盆红色花卉在同一条直线上
输入示例:
2,1 3,2 5,2 4,3 3,4 6,5
输出示例:
4
蓝桥杯第十二届国赛 python 操作题第六题
ls = [[0 for i in range(11)] for j in range(11)]
s = input().split(" ")
for t in s :
t = t.split(",")
a = int(t[0])
b = int(t[1])
ls[b][a] = 1
max_value = 0
def tongji1(x,y,res):
global max_value
tmp = 0
for i in range(1,11):
if res[x][i]==1:
tmp += 1
max_value = max(tmp,max_value)
def tongji2(x,y,res):
global max_value
tmp = 0
for i in range(1,11):
if res[i][y]==1:
tmp += 1
max_value = max(tmp,max_value)
def tongji3(x,y,res):
global max_value
tmp = 0
m = x
n = y
while True:
if m >= 10 or n >= 10 :
break
else :
if res[m][n] == 1:
tmp += 1
m += 1
n += 1
m = x
n = y
while True:
if m <= 1 or n <= 1 :
break
else :
if res[m][n] == 1:
tmp += 1
m -= 1
n -= 1
max_value = max(tmp,max_value)
def tongji4(x,y,res):
global max_value
if res[x][y] == 1:
tmp = 1
else:
tmp = 0
m = x
n = y
while True:
m += 1
n -= 1
if m >= 10 or n <=1 :
break
else :
if res[m][n] == 1:
tmp += 1
m = x
n = y
while True:
m -= 1
n += 1
if m <= 1 or n >= 10 :
break
else :
if res[m][n] == 1:
tmp += 1
max_value = max(tmp,max_value)
for i in range(1,11):
for j in range(1,11):
tongji1(i,j,ls)
tongji2(i,j,ls)
tongji3(i,j,ls)
tongji4(i,j,ls)
print(max_value)