蓝桥等考Python组别
十八
级
第一部分:选择题
1、Python L
18
(15分)
运行下面程序,输入20,输出的结果是( )。
n = int(input())
if n % 2 == 0:
print(n // 2 * 10 + 5)
else:
print((n // 2 + 1) * 10)
105
110
100
95
正确答案:
A
2
、Python L
18
(15分)
运行下面程序,输入4,输出的结果是( )。
n = int(input())
a = 1
for i in range(2, n + 1):
a = a + i
print(a)
8
10
12
14
正确答案:B
3、Python L
18
(20分)
运行下面程序,输入11,输出的结果是( )。
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
正确答案:
C
第二部分:编程题
4
、Python L
18 环线
地铁
(
5
0分)
题目名称:
环线地铁
题目描述:
环线地铁的轨道首尾相连,共有
n
座车站,用数字
0到n-1进行编号。
已知任何相邻车站之间的距离,a[i]表示编号为i的车站和编号为(i+1)%n的车站之间的距离。
例如,下图
是
总共有5座车站的环线地铁的线路示意图:
地铁双向发车,你
可以选择按顺时针和逆时针的方向行驶。
请
计算从出发点x到目的地y之间的最短距离。
输入:
第一行一个正整数n(
2<=
n<=100),为
车站
数量;
第二行一个
正
整数
x
(
0<=x
<
=n-1
),为出发点车站编号;
第
三
行一个
正
整数
y
(
0<=y
<
=n-1
),为
目的地
车站编号;
第四行,由n个
不大于100
的整数组成,
a[i]表示编号为i的车站和编号为(i+1)%n的车站之间的距离,
相邻两个整数之间用一个空格隔开。
输出:
一个整数,
表示x到y的最小距离。
输入样例:
4
0
2
1 2 3 4
输出样例:
3
参考程序
1
:
n = int(input())
x = int(input())
y = int(input())
a = [int(i) for i in input().split(' ')]
if x > y: #保证x<y
x, y = y, x
sum1 = 0
for i in range(x, y):
sum1 += a[i]
print(min(sum1, sum(a) - sum1))
参考程序
2
:
n = int(input())
x = int(input())
y = int(input())
a = [int(i) for i in input().split(' ')]
t = sum(a[min(x, y) : max(x, y)])
print(min(sum(a) - t, t))
测试数据:
1.in
4
0
2
1 2 3 4
1.out
3
2.in
5
2
3
9 10 8 1 1
2.out
8
3.in
6
1
6
7 3 9 10 1 7
3.out
7
4.in
8
7
3
4 7 1 5 1 6 2 7
4.out
14
5.in
10
9
5
5 4 7 3 10 10 5 10 8 1
5.out
30
蓝桥杯青少组Python组别18级编程练习真题(第3套,共6套)