蓝桥等考Python组别十六级007
第一部分:选择题
1、Python L16 (15分)
a和b是两个集合,a|b表示a和b的( )。
交集
并集
子集
差集
正确答案:B
2、Python L16 (15分)
运行下面程序,输出的结果是( )。
s = set([5, 1, 5, 5, 1, 2])
print(len(s))
3
4
5
6
正确答案:A
3、Python L16 (20分)
运行下面程序,输出的结果是( )。
s = set([2, 1, 3, 1, 1, 2])
print(sorted(s))
[1, 1, 1, 2, 2, 3]
[3, 2, 2, 1, 1, 1]
[1, 2, 3]
[3, 2, 1]
正确答案:C
第二部分:编程题
4、Python L16 没出现的数字个数(20分)
题目名称:没出现的数字个数
题目描述:
输入一个由数字0~9组成的字符串a,计算在a中没出现过的数字的个数。
例如:
a='1239721',a中出现了“1”,“2”,“3”,“7”,“9”,没出现过的数字还有“0”,“4”,“5”,“6”,“8”,共5个。
输入:
一个由数字0~9组成的字符串a,长度在100以内。
输出:
一个正整数,为在a中没出现过的数字的个数。
输入样例:
1239721
输出样例:
5
参考程序:
a = input()
s = set(a)
print(10 - len(s))
————————————————
5、Python L16 区间合并(30分)
题目名称:区间合并
题目描述:
由符合a<=x<=b的数所构成的集合,我们把它称为一个“区间”。它包含了a、b,还有a和b之间的所有正整数。
输入n个区间的起始位置和结束位置,输出这些区间包含的不同整数的个数。
输入:
第一行一个正整数n(1<=n<=100),表示区间的个数;
后面n行,每行两个正整数a,b(1<=a<=b<=100),a是每个区间的起始位置,b是结束位置。
输出:
一个整数,表示这些区间包含的不同整数的个数。
输入样例1:
2
1 4
4 5
输出样例1:
5
参考程序1:
n = int(input())
s = set()
for i in range(n):
a, b = [int(k) for k in input().split(' ')]
for j in range(a, b + 1):
s.add(j)
print(len(s))
参考程序2:
p = [0] * 100
n = int(input())
for i in range(n):
a, b = [int(k) for k in input().split(' ')]
for j in range(a, b + 1):
p[j] = 1
print(p.count(1))
————————————————