蓝桥等考Python组别
十八
级
第一部分:选择题
1、Python L
18
(15分)
运行下面程序,输入10,输出的结果是( )。
n = int(input())
if n % 2 == 0:
print(n // 2 * 10 + 5)
else:
print((n // 2 + 1) * 10)
55
50
45
40
正确答案:
A
2
、Python L
18
(15分)
运行下面程序,输入5,输出的结果是( )。
n = int(input())
a = 1
for i in range(2, n + 1):
a = a + i
print(a)
12
15
18
21
正确答案:B
3、Python L
18
(20分)
运行下面程序,输入9,输出的结果是( )。
n = int(input())
i = 0
while n > 1:
if n % 3 == 0:
n = n // 3
else:
n = n // 3 + 1
i += 1
print(i)
1
2
3
4
正确答案:
B
第二部分:编程题
4
、Python L
18
买铅笔
(
5
0分)
题目名称:买铅笔
题目描述:
老师需要购买一些铅笔,作为礼品发给表现良好的小朋友们。
文具店有5种包装的铅笔,不同包装的铅笔数量
、
整包价格、库存数量如下表所示
。
一般来说,一种包装的铅笔数量越多,
优惠越多。
铅笔整包售卖,不能拆开。
老师要买n支铅笔,最少要花多少钱?
例如:
n=520,最优的选择是:
100支/包的,买5包;
10支/包的,买2包;
总费用448(元)。
输入:
一个整数n(1<=n<=1000),表示老师需要购买的铅笔数量。
输出:
一个整数,表示买
n支
铅笔
最少要花的钱数。
输入样例:
520
输出样例:
448
参考程序
1
:
size = (100, 50, 10, 5, 1)
price = (86, 44, 9, 5, 1)
num = (5, 3, 2, 2, 1000)
n = int(input())
ans = 0
for i in range(5):
c = min(n // size[i], num[i])
if c != 0:
ans += price[i] * c
n -= size[i] * c
print(ans)
参考程序
2
:
size = (100, 50, 10, 5, 1)
price = (86, 44, 9, 5, 1)
num = (5, 3, 2, 2, 1000)
n = int(input())
ans = 0
for i in range(5):
t = min(n // size[i], num[i])
ans += t * price[i]
n -= t * size[i]
print(ans)
测试数据:
1.in
520
1.out
448
2.in
33
2.out
31
3.in
91
3.out
83
4.in
167
4.out
146
5.in
997
5.out
907
蓝桥杯青少组Python组别18级编程练习真题(第1套,共6套)