蓝桥等考Python组别
十八
级
第一部分:选择题
1、Python L
18
(15分)
运行下面程序,输入30,输出的结果是( )。
t = int(input())
if t < 30:
print(
15
)
else:
print(t // 15 * 2)
15
4
0
1
正确答案:
B
2
、Python L
18
(15分)
运行下面程序,输入4,输出的结果是( )。
n = int(input())
ans = 1
for i in range(2, n + 1):
ans *= i
print(ans)
12
24
60
120
正确答案:B
3、Python L
18
(20分)
运行下面程序,输入9,输出的结果是( )。
n = int(input())
i = 0
while n > 1:
n //= 2
i += 1
print(i)
1
2
3
4
正确答案:
C
第二部分:编程题
4
、Python L
1
8
大家来“找茬”
(
5
0分)
题目名称:
大家来“找茬”
题目描述:
某网站开发了一款“找错误”的小游戏。游戏提供两幅十分相似的图片,其中有许多细节部分不同。玩家各自在自己的屏幕上观察这两幅图,每发现一处“错误”,点击屏幕错误位置后,一条包含用户名和错误编号的信息会被系统记录下来。
如果一处错误只有一个玩家发现,网站会奖励发现错误的玩家100积分;如果有两个以上的玩家都发现了同一处错误,发现错误的玩家平分这100积分的奖励(如果不能平分则向下取整)。
已知所有玩家共点击了n次屏幕,以及系统收集到的n条信息(用户名,错误编号),输入一个用户名,输出他(她)在这场游戏中获得了多少积分。
例如:
n=3,系统收集到的3条信息是:
A 4(用户A发现了编号为4的错误)
B 6(用户B发现了编号为6的错误)
A 6(用户A发现了编号为6的错误)
用户A共获得150积分。其中,编号为4的错误是A自己发现的,获得100积分;编号为6的错误A和B都发现了,各获得50积分。
输入:
第
1
行一个正整数n,为所有玩家
点击
屏幕的数量(1<=n<=100);
第
2~第n+1
行
,每行
一个
字符串
,由
用户名和错误编号组成(用户名是一个大写字母,错误编号是一个整数,用户名的种类不超过26),之间
用一个空格分隔
;
第
n+2
行一个
字符串
,
为指定
的用户名
。
题目数据保证不会出现重复信息,并且指定的用户名存在于n条信息中。
输出:
一
个整数,
为这名指定用户在这轮游戏中获得的积分数
。
输入样例:
3
A 4
B 6
A 6
A
输出样例:
150
参考程序
1
:
n = int(input())
dic = {}
for i in range(n):
a = input().split(' ')
s = a[0]
x = int(a[1])
if x in dic:
dic[x] += s
else:
dic[x] = s
p = input()
ans = 0
for v in dic.values():
if p in v:
ans += 100 // len(v)
print(ans)
参考程序
2
:
n = int(input())
s = []
for i in range(n):
a = input().split(' ')
s.append(a[0])
s.append(a[1])
p = input()
ans = 0
for i in range(len(s)):
if s[i] == p:
ans += 100 // s.count(s[i + 1])
print(ans)
测试数据:
1.in
3
D 2
H 2
E 2
H
1.out
33
2.in
4
E 7
G 7
I 5
D 3
E
2.out
50
3.in
5
H 2
I 5
I 2
A 2
B 7
B
3.out
100
4.in
7
F 7
A 5
H 1
H 3
G 3
I 3
D 7
A
4.out
100
5.in
10
G 4
C 6
E 7
D 7
F 2
A 3
A 6
D 6
C 4
I 2
A
5.out
133
蓝桥杯青少组Python组别18级编程练习真题(第2套,共6套)