第一部分:选择题
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))
测试数据:
1.in
1239721
1.out
5
2.in
1121212
2.out
8
3.in
4353252456
3.out
5
4.in
0123456789
4.out
0
5.in
98746900
5.out
4
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))
测试数据:
1.in
2
1 13
9 11
1.out
13
2.in
3
7 10
9 12
7 16
2.out
10
3.in
3
5 14
9 20
6 12
3.out
16
4.in
4
8 12
6 8
6 12
10 11
4.out
7
5.in
5
9 11
9 15
9 20
7 17
10 10
5.out
14