22 python字典 巩固练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)

文档属性

名称 22 python字典 巩固练习 浙教版(2019)高中信息技术选考(学考)一轮复习(含答案)
格式 docx
文件大小 60.1KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-09-21 17:45:08

图片预览

文档简介

算法与程序设计大单元
——python字典巩固练习
班级 姓名
1.已知字典dict1={1:2,2:(1,2),(1,2):'b','b':'b1','b1':'b2'},要得到字典中的值'b',下列方法可行的是( )
A.dict1[(1,2)] B.dict1{'b'} C.dict1[3] D.dict1['b1']
2.某班级学习小组成员的分组情况以及学员成绩分别用Python存储在students和scores中。若
students={"第一组":["小红","小明","小张"],"第二组":["小黄","小霞","小斌"],"第三组":["小蓝","小华","小诚"]},scores=[{"小红":90,"小明":80,"小张":75},{"小黄":86,"小霞":70,"小斌":89},{"小蓝":67,"小华":90,"小诚":77}],则要访问第一组第2位学员姓名以及小明学习成绩的表达式为( )
A.students["第一组"][1],scores[0]["小明"]
B.students["第一组"][1],scores[1]["小明"]
C.students["第一组"][2],scores[0]["小明"]
D.students["第一组"][2],scores[1]["小明"]
3.在Python中,向m={"a":1,"b":2,"d":4}中添加键值对""c":3"应该使用下列哪个语句( )
A.m(3)="c" B.m[2]=3 C.m["c"]=3 D.m["3"]=c
4.已知x="苹果,50",y=["苹果",50],z={"苹果":50},下列python表达式的值为True,正确的是( )
A.x[-4::-1]==y[0] B.x[3:5]==y[1] C.y[1] in z D.z[y[0]]==50
5.已知dic={"姓名":"王波","年龄":"19","语文":"112","数学":"125"},下列说法不正确的是( )
A.dic["语文"]+dic["数学"]的值为237
B.dic["数学"] in dic的值为True
C.int(dic["年龄"],16)的值为25
D.执行dic["姓名"]="李一贺",则dic为{"姓名":"李一贺","年龄":"19","语文":"112","数学":"125"}
6.将某次比赛最后得分用字典存储:dict={"第1名":50,"第2名":48,"第3名":"47,"第4名":"45,"第5名":44,"第6名":42}。现需要查询第3名成绩,下列表达式正确的是( )
A.dict{2} B.dict[2] C.dict{"第3名"} D.dict["第3名"]
7.有如下 Python 程序段:
a=[] ; b=[1,5,4,1,5] ; c={1:3,2:4,3:5,4:1,5:2}
for i in b:
if i not in a:
a.append(c[i])
print(a)
运行该程序段后,列表a的值是( )
A.[1,5,4] B.[3,2,1] C.[3,2,1,2] D.[3,2,1,3]
8.使用Python程序编程探究平面上圆与圆的位置关系,程序代码如下:
def judge(a,b):
dis=(cir[a][0]-cir[b][0])**2+(cir[a][1]-cir[b][1])**2
if dis==(cir[a][2]+cir[b][2])**2:
return 1
return 0
cir={'A':[1,1,1],'B':[4,5,4],'C':[0,2,1]}
#cir用于存储编号为'A'、'B'、'C'的三个圆的x,y坐标及半径信息
cnt=judge('A','B')+judge('A','C')+judge('B','C')运行程序后,变量 cnt 的值是( )
A.3 B.2 C.1 D.0
9.Python字典中update()方法用于更新字典中的键/值。有字典dic={"数学":89 ,"语文":78,"英语":96},d={"物理":97,"语文":90,"信息技术":91,"地理":78}执行语句dic.update(d)后,dic的值为( )
A.{"数学":89,"语文":78, "英语":96, "物理":97, "语文":90, "信息技术":91, "地理":78}
B.{"数学":89, "语文":78,"英语":96, "物理":97 ,"信息技术":91,"地理":78}
C.{"数学":89,'语文':90, "英语":96, "物理":97, "信息技术":91,"地理":78}
D.{"数学":89, "英语":96, "物理":97, "信息技术":91 ,"地理":78}
10.下列Python程序段的功能:输入一个由数字组成的字符串,统计各数字字符出现的次数,并输出按0~9顺序出现次数是偶数次的数字及次数。
s=input("请输入数字字符串:") ; b={}
for x in s:
if x in b:
(1)
else:
(2)
for i in "0123456789":
if (3) : print(i+"出现"+str(b[i])+"次")
上述程序段中划线处可选代码为:
①i in b and b[i]%2==0 ②b[i]%2==0 ③b[x]=1 ④b[x]+=1
则(1)(2)(3)处语句依次为( )
A.④③① B.③④① C.③④② D.④③②
11.文本文件“score.txt”中保存了某校高二年级学生某次测试成绩,王老师想按学生的成绩进行评级,其中分数和等级对应关系如下表:
现要求根据上表统计各等级学生人数占总人数的比例。小李编写了一个Python程序帮助老师实现该功能:程序运行时,读取文本文件“score.txt”的成绩存储到列表cj中,然后依次输出从A级至E级,各等级的人数占总人数的百分比(四舍五入保留一位小数)。程序运行界面如图所示,请阅读代码,在划线处填入合适的代码:
#将学生成绩保存到列表cj中,代码略
dj="ABCDE"
score={"A":0,"B":0,"C":0,"D":0,"E":0}

for i in range(n):
if cj[i]>=90:
k=0
elif cj[i]>=80:
k=1
elif cj[i]>=70:
k=2
elif cj[i]>=60:
k=3
else:

score[③ ]+=1
for i in score:
bfb=int(④ )/10
print(i+"级:占"+str(bfb)+"%")
12.脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。构成DNA的碱基共有4种,分别为腺嘌呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。在两条互补碱基链的对应位置上,A总是和T配对,G总是和C配对。编写python程序实现如下功能,随机产生一条单链上的碱基序列,输出其对应的互补链上的碱基序列。例如:生成链为GCTCTTACAT,互补链为CGAGAATGTA。
(1)实现该功能的程序段如下,请完善程序:
import random
DNA=['A','G','T','C']
s=''
for i in range(10):
r=random.choice(DNA)
s=①
print("生成链",s)
match={'A':'T','G':'C','T':'A','C':'G'}
t=''
for c in s:
t=②
print("互补链",t)
(2)将程序加框处语句改为DNA=”AGTC”,程序是否能正常运行 (选填:是/否)
13.小明编写Python程序,实现对某次评价报名序号的检测并输出该考生的评价类别+科类类别。报名序号的编写方法是:由10位数字组成,毕业年份(4位)+评价类别(1位)+科类代码(1位)+顺序代码(4位)。评价类别:1普通、2单项;
科类类别:3艺术类、4体育类、5综合类。
例如:输入报名序号“2022150001”,输出“普通综合类”
(1)与加框处代码功能相同的是
(单选,填字母:A.s=dic[ticket[-6:-4]]/ B.s=dic[ticket[-6:-5]])
(2)实现查询功能的Python程序如下,请在划线处填入合适的代码。
while True:
ticket=①
num=0
for i in ticket:
if i>="0" and i<="9":
num=num+1
if len(ticket)!=10:
print("输入长度不符合要求")
elif ② :
print("输入存在非数字字符")
else:
break
dic={"13":"普通艺术类","14":"普通体育类","15":"普通综合类","23":"单项艺术类","24":"单项体育类","25":"单项综合类"}
s=dic[ticket[4:6]]
print("该考生的考试科类为:",s)
14.在计算机进行加密或解密过程中,经常会对字符串进行移位等变换操作。某字符串的变换规则描述如下:
①输入的字符为十六进制数(英文字母大写,确保输入的个数为3的倍数),如4AC
②字符串中的每个字符转成四位二进制,按序拼接,如010010101100
③二进制字符串每4位进行前后倒置(即4位数左右倒置)操作,如001001010011
④将倒置后的字符串每3位转换成1位十进制,按序拼接后输出该十进制串。
运行结果如下图所示:
根据该规则编写的程序如下,请回答以下问题:
(1)程序中加框处代码有误,请改正。
(2)请在下划线处补充完整程序:
Hex={"0":"0000","1":"0001","2":"0010","3":"0011","4":"0100","5":"0101","6":"0110",
"7":"0111","8":"1000","9":"1001","A":"1010",
"B":"1011","C":"1100","D":"1101","E":"1110","F":"1111"}
sch=input("请输入一个十六进制数(字母大写):")
th=""
for k in sch:
if "0"<=k<="9" or "A"<=k<="F": #若k为数字字符或大写字母
① #每1位十六进制转成4位二进制
ts=""
for i in range(0,② ): #每4位进行前后倒置
ts+=th[i+3]+th[i+2]+th[i+1]+th[i]
tob=""
tmp=0
for i in range(len(ts)): #二进制串转十进制
tmp=tmp*2+int(ts[i]) #累乘相加转换成十进制
if i%3==0: #每3个字符为一组进行转换后的拼接
tob=tob+str(tmp)
tmp=0
print("变换后的字符串为:",tob)
答案
1——5:AACDB
6——10:DCBCA
11.① n = len(cj)
② k = 4 或 k = -1
③ dj[k]
④ score[i]/n*1000+0.5
12.(1)①s+r 或 r+s
②t+match[c]
(2)是
13.(1)A
(2)①input("请输入准考证号:") 没有提示信息也给分
② num!=10:
(1)(i+1)%3==0或i%3==2
(2)① th=th+Hex[k]
② len(th),4
同课章节目录