第一部分:选择题
1、Python L14 (15分)
运行下面程序,输出的结果是( )。
d = {'A': 1, 'B': 2, 'C': 3, 'D': 4}
print(d['B'])
- 1
- 2
- 3
- 4
正确答案:B
2、Python L14 (15分)
运行下面程序,输出的结果是( )。
d = {'Chinese': 23, 'Japanese': 24, 'American': 25}
if 23 in d.values():
print(d['American'])
- 25
- 24
- 23
- 不输出任何内容
正确答案:A
3、Python L14 (20分)
运行下面程序,输出的结果是( )。
d = {1: 'X', 2: 'Y', 3: 'Z'}
for i in d.keys():
print(i, end = ' ')
- 1: 'X', 2: 'Y', 3: 'Z'
- X Y Z
- 1 2 3
- (1, 'X') (2, 'Y') (3, 'Z')
正确答案:C
第二部分:编程题
4、Python L14 英语数字(20分)
题目名称:英语数字
题目描述:
数字1~5的英语单词如下表所示:
输入一个1~5的正整数,输出对应的英语单词。
输入:
一个正整数n(1<=n<=5)。
输出:
一个字符串,为输入正整数所对应的英语单词,所有字母用小写。
输入样例:
2
输出样例:
two
参考程序:
dic = {1 : 'one', 2 : 'two', 3 : 'three', 4 : 'four', 5 : 'five'}
n = int(input())
print(dic[n])
测试数据:
1.in
2
1.out
two
2.in
1
2.out
one
3.in
5
3.out
five
4.in
3
4.out
three
5.in
4
5.out
four
5、Python L14 智能存钱罐(30分)
题目名称:智能存钱罐
题目描述:
小蓝设计了一个智能存钱罐,可以通过内部的传感器,自动识别硬币的币值。还能计算存钱罐里硬币的余额,实时显示在外部的显示屏上。
假设硬币有3种,面值分别是1元、2元和5元。硬币通过传感器,会在系统中留下两个记录:
1.这枚硬币是“存入”还是“取出”,用一个大写字母A或B表示,A表示“存入”,B表示“取出”。
2.这枚硬币的币值是多少,用数字1,2,或5表示。
例如“A1”表示存入一个1元硬币,“B2”表示取出一个2元硬币。
存钱罐里的余额起初为0,根据硬币通过传感器的全部记录,请你帮小蓝实现计算余额的程序。
下面是一个例子:
一段时间内通过传感器的硬币记录是A1 A2 A5 B1 A2,对应的操作和存钱罐余额的变化如下表所示:
经过这番操作,存钱罐的余额为9元。
输入:
输入若干个字符串(每个字符串由一个大写字母A或B开头,后面是数字1,2或5,字符串的数量在1~100范围内),表示一段时间内通过传感器的硬币记录,相邻两个字符串用一个空格分隔。
数据保证取出时存钱罐内硬币数量足够。
提示:
s = input() #输入一个字符串,赋值给s
a = s.split(' ') #将字符串s按空格拆分,保存到列表a中
输出:
一个正整数,表示指定操作完成后,存钱罐当前的余额。
输入样例:
A1 A2 A5 B1 A2
输出样例:
9
参考程序1:
s = input()
lis = s.split(' ')
dic = {'1' : 0, '2' : 0, '5' : 0} #字典保存三种硬币
for x in lis:
if x[0] == 'A': #判断是存还是取
dic[x[1]] += 1
else:
dic[x[1]] -= 1
ans = 0
for k, v in dic.items(): #剩余硬币的币值求和
ans += int(k) * v
print(ans)
参考程序2:
s = input()
lis = s.split(' ')
a = [0, 0, 0, 0, 0, 0] #列表a[i]表示面值是i的硬币的数量
for x in lis:
if x[0] == 'A': #判断是存还是取
a[int(x[1])] += 1
else:
a[int(x[1])] -= 1
ans = 0
for i in range(6):
ans += i * a[i]
print(ans)
测试数据:
1.in
A1 A2 A5 B1 A2
1.out
9
2.in
A5 B5 A5 A1 B1
2.out
5
3.in
A2 A5 A1
3.out
8
4.in
A5 A1 A2 B1 B2 B5
4.out
0
5.in
A2 A5 A1 A2 A5 A1 A2 A5 A1 A2 B2 B5
5.out
19