蓝桥等考Python组别
十二
级
第一部分:选择题
1、Python L
12
(15分)
运行
下面
程序,输出的结果是
( )。
lis
= [
4
,
2
,
1
,
6
,
8
]
print(
lis
[
0
:
2
])
[
4
,
2
]
[
4
,
2
,
1
]
[
2
,
1
]
[
4
]
正确答案:
A
2
、Python L
12
(
15
分)
运行
下面
程序,输出的结果是
( )。
lis
=
[
'A'
,
'A'
,
'A'
,
'B'
,
'B'
]
lis
.append(
'A'
)
print(
len(lis)
)
4
5
6
7
正确答案:
C
3、Python L
12
(20分)
运行
下面
程序,输出的结果是
( )。
lis
= [[
9
,
1
], [
6
,
4
]]
print(
lis
[
1
][
0
])
9
1
6
4
正确答案:
C
第二部分:编程题
4、Python L
12
最大值和最小值的差
(
2
0分)
题目名称:
最大值和最小值的差
题目描述:
在一行输入
几个正
整数,
用这几个正整数建立
一个列表,
输出
列表中
最大值和最小值的差
。
输入:
一行,按字符串形式输入若干个正整数(数量
大于3
),相邻两个正整数用一个空格分隔。
数据保证最大值和最小值分别只有一个。
提示:
s = input()
#输入一个字符串,赋值给s
a = s.split(' ') #
将字符串s按空格拆分,保存到列表
a中
lis = [int(i) for i in a]
#
将列表a的元素转换成整数,保存到列表lis
中
输出:
一个整数,表示建立的列表中,最大值和最小值的差。
输入样例:
1 2 3 4
输出样例:
3
参考程序:
s = input()
a = s.split(' ')
lis = [int(i) for i in a]
print(max(lis) - min(lis))
测试数据:
1.in
1 2 3 4
1.out
3
2.in
1 2 3 2 3 6 9
2.out
8
3.in
1 2 4 7 4
3.out
6
4.in
5 3 8 2
4.out
6
5.in
5 3 4 8 9 22 14 20
5.out
19
5
、Python L
1
2
和为k的连续子列表
(
3
0分)
题目名称:
和为k的连续子列表
题目描述:
对于一个给定的列表,我们可以用“切片”操作,截取列表中任何连续部分,获得子列表。特别地,原列表本身也是一个子列表。
给定一个包含n个正整数的列表和一个正整数k,请判断该列表中,是否存在和为k的连续子列表。
例如:
n=5,k=4,列表为[1, 3, 1, 3, 2],
存在和为k的连续子列表,是[1, 3]、[3, 1]和[1, 3]。
输入:
第一行一个正整数,为
原
列表的元素个数
n(1<=n<=100);
第二行一个正整数
k(1<=k<=20);
第三行
,以字符串形式输入
n
个正整数(大小在
1~10范围内
),相邻两个正整数用一个空格分隔。
提示:
s = input()
#输入一个字符串,赋值给s
a = s.split(' ') #
将字符串s按空格拆分,保存到列表
a中
lis = [int(i) for i in a]
#
将列表a的元素转换成整数,保存到列表lis
中
输出:
一个
字符串
,
如果原
列表中,
存在和为k的连续子列表,输出“yes”,不存在和为k的连续子列表,输出“no”。
输入样例:
5
4
1
3
1
3 2
输出样例:
yes
参考程序
1
:
n = int(input())
k = int(input())
s = input()
a = s.split(' ')
lis = [int(i) for i in a]
b = False
for i in range(n):
for j in range(i, n):
if (sum(lis[i: j + 1]) == k):
b = True
if b == True:
print('yes')
else:
print('no')
参考程序
2
:
n = int(input())
k = int(input())
s = input()
a = s.split(' ')
lis = [int(i) for i in a]
lis.insert(0, 0)
pre = [0] * (n + 1) #pre[i]表示lis的前i项和
for i in range(1, n + 1):
pre[i] = pre[i - 1] + lis[i]
b = False
for i in range(1, n + 1):
for j in range(i, n + 1):
if (pre[j] - pre[i - 1] == k): #前j项和-前i项和=第i+1项~第j项和
b = True
if b == True:
print('yes')
else:
print('no')
测试数据:
1.in
5
4
1 3 1 3 2
1.out
yes
2.in
5
1
3 8 10 9 3
2.out
no
3.in
8
1
8 1 1 7 9 9 8 8
3.out
yes
4.in
10
6
9 8 5 6 7 8 10 1 8 5
4.out
yes
5.in
12
5
3 10 2 2 2 10 7 4 6 3 6 6
5.out
no
蓝桥杯青少组Python组别12级编程练习真题(第8套,共8套)