一、程序填空
1.为保护环境,很多城市开始对垃圾实行分类,便于更好的进行处理,为了让大家了解垃圾的分类情况,建立了以下四类列表,list1(可回收垃圾)、list2(有害垃圾)、list3(易腐垃圾),剩下的为其他垃圾,目前,列表中已经存储了以下数据。 list1=[\"玻璃瓶\旧书\金属\纸板箱\旧衣服\易拉罐\"]
list2=[\"胶片\消毒水\纽扣电池\水银温度计\过期药水\泡沫塑料\"] list3=[\"动物内脏\菜叶菜梗\过期食品\香蕉皮\果壳\"] 根据现有列表,完成以下问题:
(1)写出从列表list3中取出“过期食品”的表达式:
___________________________________________________________________________ (2)写出从list1中截取[\"旧书\金属\纸板箱\"]这一段的表达式:
___________________________________________________________________________ (3)现又发现一个新的列表如下:list4=[\"过期化妆品\过期药品\杀虫剂\"],经 过判断,里面存放的为有害垃圾,如何将该列表中的元素添加到list2中,请写出相关的表达式: __________________________________________________________________________ (4)小明在路上捡到了一个塑料瓶,判断为可回收垃圾,写出相关表达式,将塑料瓶添加到列表list1中:
__________________________________________________________________________ 2.请在空格处填写正确的代码,使程序完善。 实现功能:用辗转相除法求解两个正整数的最大公约数。 x = int(input('请输入第一个正整数:')) y = int(input('请输入第二个正整数:')) m = max(x,y) #找出x,y中的最大值 n = min(x,y) #找出x,y中的最小值
r = m%n #求得最大值除以最小值后的余数 while r!=0: #如果余数不等0,则进行以下循环 m =________ #把最小值赋给m n =_________ #把余数赋给n
r = m%n #求得最大值除以最小值后的余数 print('这两个数的最大公约数为:',______) input(\"运行完毕,请按任意键退出....\") 3.程序补充:
(1)有5万元资金存入银行,选择“1年定期.自动转存”的存款方式,由于银行利率是不断变化的,这5年利率分别是3.25%.3%.3%.2%.1.75%,5年后会有多少收益呢?调用round()函数,保留结果两位小数。
money =_______________________________ rate=_________________________________ for___________________________________
____________________________________ print(“5年以后存款总额:”,money,“元”)
(2) 某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后本金被全部取出?
money= ________________________________ year= __________________________________ while _________________________________ _________________________________ ________________________________ print(year,“年后资金被全部取出”) 4.将下列程序代码补充完整:
某同学参加了学校体检,体检的医生告诉他体重超重,需要加强运动。该同学了解到运动时,心率如能控制在一定范围内,对增强心血管系统和呼吸系统的功能都有很好的效果;超出范围,对身体反而会有损伤。男最适宜运动心率=(220-年龄数-安静心率)×(60%~80%)+安静心率,女最适宜运动心率=(210-年龄数-安静心率)×(60%~80%)+安静心率,补充程序帮他(她)计算最适宜的运动心率。 age=float(input('请输入age=')) HRrest=float(input('请输入HRrest=')) gender=input(“请输入male or female :”) if ____________________: ____________________ else:
_____________________ low=(n-age-HRrest)*0.6+HRrest high=(n-age-HRrest)*0.8+HRrest
print('最适宜的心率是:',low,'~',high) input(“运行完毕,请按回车键退出...”) 5.阅读程序。阅读求水仙花数的代码并回答问题。
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。 for n in range(100,1000): i=n//100 j=n//100%10 k=n%10
if n==i*i*i+j*j*j+k*k*k: print(n)
(1)//的符号作用是 _____ 。 (2)%的符号作用是 _____ 。 (3)==的符号作用是 _____ 。
(4)在代码中,变量i表示的是三位数中的 ______ 位。 (5)在代码中,变量j 表示的是三位数中的 ______ 位。 (6)在代码中,变量k表示的是三位数中的 ______ 位。
(7)在range(100,1000)这个区域内,变量n无法取到的数值是________。 6.阅读程序。分析条件语句的代码并回答问题。
(1)如果不能使用int()函数,那么变量s的类型将会变成 ______ 。 (2)如果你的期末成绩是85,你得到的评价将会是____________ 。 (3)如果你的期末成绩是55,你得到的评价将会是____________ 。
(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。 (5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
7.阅读程序。分析有关多项式的代码并回答问题。 求1!+2!+3!+……+20!的和。 n=0 s=0 t=1
for n in range(1,21): t*=n s+=t print(s)
(1)n的作用是________________。 (2)s的作用是 ______________。
(3)t的初值必须赋值为1,这是因为_________。 (4)t*=n的等价语句是 __________ (5)s+=t的等价语句是 ______。
8.调试程序。请阅读以下程序并写出运行结果。
fruites=['banana','apple','mango'] for fruit in fruites: print(fruit) a=len(fruites) print('a=',a) _________________ 9.分析完善程序
已知包含25项的数列: 1,2/3,3/5,....,24/47,25/49。 问题1 :写出该数列的通项公式f(n)= _①
问题2 :以下是计算S=1+ 2/3+3/5+ ... + 24/47+ 25/49的程序,请补全代码: s=0
for i in range(1,26): s=s+ ② print(“s=”,s)
补充完成上述通项公式和程序: ①f(n)=_________ ②___________
10.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
11.操作说明:打开文件“Y:/1/1.py”,将程序补充完整,不得增加,删除语句、或改变程序原有结构,操作结束后保存。
以下程序段的功能是:根据从键盘上输入的表示星期几的数字,若输入的数字不是在范围(1至7)输出“输入错误!”,否则输出对应的英文星期的简称如“Mon、Tue、Wed、Thu、Fri、Sta、Sun”。 n=int(input(“请输入一个数:”))
list=[ “Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sta”,”Sun”] if ________: print(“输入错误!”) else:
print(________)
12.程序设计:在舞会上,男生、女生各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。跳完后的两人重新回到队尾。 例如:boy=['Alex','Steven','Jack'],girl=['Ada*,'Babs'.,'Danla','Jane'] 输出: Turn1:(Alex,Ada) Turn2:(Steven,Babs) Turn3:(Jack,Danla) Turn4:(Alex,jane) ……
Turn12:(Jack,jane) 代码如下:
boy=['Alex','Steven',‘Jack'] girl=['Ada','Babs','Danla','Jane'] for i in range(12): x,y= ① #出队
print(“Turn{:2}):({},{})\".format(i+1,x,y)) boy.append( ② ) #再进队 girl.append( ③ ) #再进队
(1)程序代码中①处正确的代码是(_______)。 A.boy.pop(l).girl.pop(l) B.girl.pop(l),boy.pop(l) C.boy.pop(0),girl.pop(0) D.girl.pop(0),boy.pop(0) (2)程序代码中②处正确的代码是(_______)。 A.x B.y C.i D.i+1
(3)程序代码中③处正确的代码是(_______)。 A.x B.y C.i D.i+1
13.小王编写了“字符串缩写”程序,实现如下功能: 1.输入一串由英文字母和数字组成的字符串,
2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“ — ”和最后一个字符组成的新字符段, 3.例如:字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。 程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:
实现上述功能的程序如下,请在程序划线处填入合适的代码。 s=input(\"请输入字符串s:\") _______ flag = False result=\" \"
for i in range( 0 , k-1): if ___________________ : result=result+s[i]+\"-\" flag = True
elif ord(s[i]) ! = ord(s[i+1])-1: result=result+s[i] _____ result=result + s[i+1]
print(\"缩写后的字符串为:\
划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。
14.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
(1)请在空格处填写正确的代码,使程序完善实现以下功能。 money=100 #一共100文钱 num=100 #一共100只鸡 cock_price=5 #公鸡价格5文 hen_price=3 #母鸡价格3文 threechick_price=1 #3只小鸡1文
for cock_num in range(1,_______): #公鸡只数可能为1-20 for hen_num in range(1,_________): #母鸡只数可能为1-33 for chick_num in range(1,101): #(3小鸡)只数可能为1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num/threechick_price num1=cock_num+hen_num+chick_num if money1==money and num1==num: print (cock_num,hen_num,__________) input(\"运行完毕,请按回车键退出...\") (2)运行程序,运行结果如图所示。
15.在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。即一个数除以3余2,除以5余3,除以7余2,求这个数。 i=①________
while (i%3!=2 ②________ i%5!=3 or i%7!=2): i=③________ print(i)
16.(项目情境)一元二次方程ax2+bx+c=0(a≠0),当b2-4ac≥0,方程有两个不同的实数根,当b2-4ac<0时,方程无实数根。
(问题求解)下面的python程序实现的功能是判断方程是否有实数根。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
import math
a=int(input(\"请输入a的值:\")) b=int(input(\"请输入b的值:\")) c=int(input(\"请输入c的值:\"))
d=_____ #将表达式b2-4ac的值赋给变量d if ____
print(\"x1=\输出方程的其中一个实数根 print(\"x2=\(_________) #输出方程的另一个实数根 else:
_________ #输出“方程无实数根” 17.已知6月份10位技术考试成绩: 1 78 2 88 3 89 4 90 5 83 6 76 7 75 8 98 9 100 10 65 技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下: a=[78,88,89,90,83,76,75,98,100,65] ______ sum=0 for i in range(n): if a[i]>=80: ________ print(sum)
执行上述程序段后,输出的内容是______
18.某种数据加密方法描述如下(加密前数据是ASCII字符):
●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。
●数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。
位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下: 加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。 数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算(⊕)规则:如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。
●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是 数组c 3 6 1 5 2 8 4 7 则数据位置变换如下:
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下: 变换前 密钥m 变换后 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 (1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。
(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。 Const n = 1024 Dim c(1 To 8) As Integer Private Sub Form _ Load()
‘产生位置变换密钥数组c,代码略 End Sub
Function convert(c As Integer)As String
‘程序功能:把整数c转成8位二进制数,代码略 End Function
Private Sub Command1_Click()
Dim s As String,st As String,ss As String,res As String Dim i As Integer,j As Integer start As Integer Dim a(1 To n) As String,b(1 To n) As String s = Text1. Text
st = convert(Val(Text2. Text)) For i = 1 To Len(s) a(i) = Mid(s,i,1) Next i i = 1:start = -8 Do While①________
If i Mod 8 = 1 Then start = start + 8 b(i)=②_______ i = i + 1 Loop
For j = i To Len(s)
b(j) = a(j) Next j
For i = 1 To Len(s) ③________ For j = 1 To 8
If Mid(ss,j,1)= Mid(st,j,1)Then res = res + \"0\" Else res = res + \"1\" '按位异或 Next j Next i Text3. Text = res End Sub
19.小强开展网上直播售货,为此购买了以下直播硬件设备:①手机②耳机③自拍杆④数码照相机⑤背景画⑥无线路由器 请回答下列问题:
(1)在购买的直播硬件设备中,属于模数转换的设备是__________(多选,填序号) (2)小强选择借助某著名直播平台售货,根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,问小强家目前10Mbps的宽带__________(选填:能/不能)满足直播要求。请列式证明__________。
(3)小强将某一天的售货情况从平台导出,保存为文件shqk.xlsx.数据已按“流水号”升序排序,如图a所示。流水号为2019030602的售货记录中,已成交的商品类别数是__________(填写数字),该流水号的总利润是__________元(填写数字,保留1位小数)
图a
(4)为了快速了解各类别商品的利润,小强用python编程处理。处理的结果界面如图b所示。部分代码如下,请在①②划线处填写合适的代码。
图b
import pandas as pd import numpy as np import matplotlib. pyplot as plt detail=pD.read_excel (___) print(detail)
for i in range(len(detail[:])): if detail[‘成交与否’][i]==1: detail[‘lirun’]=___
dg=detai1[[‘类别’, ‘lirun’]]. groupby(by=‘类别’) print(“总利润”,detail[‘lirun’].sum()) ’数据可视化代码略
20.学习了Python绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。 代码如下: import turtle
turtle. bgcolor(\"black\")
colors=[\"red\ for x ① range(100): turtle. pencolor(colors[x%4]) turtle. circle(x) turtle. left(90)
请分析任务,完成下列题目。
(1)程序中①处应填写(________) 。
A.print B.input C.in D.colors
(2)程序中x%4的作用是(________)。 A.计算x乘以4的结果 B.计算x除以4的整数部分 C.计算x除以4的小数部分 D.计算x除以4的余数
(3)执行此程序,绘制出圆形的总颜色数是(________)。 A.1 B.4 C.5 D.100 (4)执行此程序,绘制出圆形的总个数是(________)。 A.1 B.4 C.99 D.100 (5)此程序属于程序设计结构中的(________)。 A.顺序结构 B.分支结构 C.循环结构 D.跳转结构
21.若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5 就是一对双胞胎数。编写 python 程序,实现如下功能:输入 n 的值,统计显示 n 以内的所有双胞胎数。程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。 import math def isprime(x): ______
for i in range(2,int(math.sqrt(x))+1): if x % i = = 0 : f=False return f
n=int(input(\"请输入一个正整数 n:\")) c=0 k=3 while k < = n-2:
if isprime( k ) and______________ : c + = 1
print(\"第\"+ str( c ) +\"对双胞胎数:\和',k+2)
_______
print(\"共有\"+str(c)+\"对双胞胎数\")
划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。
22.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用python程序来完成这些作业呢?请帮小金完成代码编程. def convert(s): m=0 le=len(s) key=s[le-1] if key==\"B\": n=2 elif key==\"D\": _______ else: n=16 i=0 while i<=le-2: c=s[le-1-i] if c>=\"0\"and c<=\"9\": a=ord(c)-ord(\"0\") elif c>=\"A\"and c<=\"F\": a=ord(c)-ord(\"A\")+10 _____________ i+=1 return m
s=input(\"请输入算式\")
result=0;suanfu1=\"\";suanfu2=\"\";s1=\"\" for i in range(len(s)): c=s[i]
if c==\"+\" or c==\"-\" or c==\"=\": __________ suanfu1=suanfu2 suanfu2=c if suanfu1==\"\": result=t if suanfu1==\"+\": result=result+t if suanfu1==\"-\": result=result-t
s1=\"\" else: s1=s1+c
print(\"计算结果为\"+str(result)+\"D\") (1)将程序横线处补充完整
(2)如输入“1110B+10D-30H=”则输出结果为___________。
23.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”的原理:在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。例如: 接收到的每个字节及校验码 100101001 011010101 101011010 1的个数 4 5 5 传输正误 错误 正确 正确 根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。 请回答下列问题:
(1)若接收到的二进制码为“101011011”,传输过程__________(选填:是/否)存在差错。
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。 s=input(\"请输入9位二进制编码:\")
code={10:\"A\ k=0;p=0;ans=“”
for i in s:#统计9位二进制编码中“1”的个数 k=k+int(i) if ____:
print(\"传输错误!\") else:
print(\"传输正确!\") for j in range(0,8,4): p=int(s[j:j+4],2)
# int(x,[base]):将x(字符串或者数字)按照base进制转换成整数 if 0<=p<=9: ans=ans+str(p) else: ans=___
print(\"字节编码用十六进制表示:\",___
24.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。使用 Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2
图1
图2
实现上述功能的 Python程序如下: import pandas as pd import itertools
#读数据到pandas的 DataFrame结构中
df=________ (”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’) km=[‘物理’ ,‘化学’ ,‘生物’ ,‘政治’ ,‘历史’ ,‘地理’ ,‘技术’ ]
#按学校分组计数
sc=df.groupby(‘___________ ’ ,as_index=False).count() #对分组计数结果进行合计,合计结果转换为 DF结构并转置为行 df_sum=pd.DataFrame(data=sc.sum()).T
df_sum[‘学校代码’]=‘合计’ #增加"合计"行 result=sc.append(df_sum) #百分比计算 df_percent=df_sum
df_percent[‘学校代码’]=‘比例’ for k in km:
per=df_percent.at[0,k]/zrs df_percent[k]=per #增加"百分比"行
result=result.append(df_percent) #删除"姓名"列 result=______________
#修改"学生编号"为"总人数"
result=result.rename(columns={‘学生编号’:‘总人数’}) #保存结果,创建 Excel文件.生成的 Excel文件 result.to_excel("学校人数统计.xlsx") (1)请在划线处填入合适的代码:
(2)加框处语句的作用是__________________
25.阅读程序。分析以下关于字符拼接与转换的Python程序并回答问题。 students=[ '小明','小红','小刚'] scores={ '小明':95,'小红':90,'小刚':90} print(len(students)) print(len(scores))
(1)students的数据类型是______________。 (2)scores的数据类型是_____________。
(3)在scores中,每个字符与后面的数值共同构成了一个____________。 (4)len(students)的返回值是____________。 (5)print(len(scores))的输出结果是__________。 26.阅读程序。分析以下Python程序并回答问题。 who='我的' action='是' destination='镜像世界' number='153' code='通行密码'
print( who+destination+code+action+str(number))
(1)变量who的数据类型_______________。 (2)类似number的数据类型______________ 。 (3)print语句输出的结果是______________。 (4)str(number)的作用是_________。 (5)“+”在程序中的作用是____________。
27.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。 请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。现填写C、E、F、G对应的程序段编号.C:__________E:__________F:__________G:__________ 图a
图b
图c
图d
28.某仓库物品代码格式为“X-XXXXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数
字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。用Python设计一个程序,输入物品代码,判断输入的代码中校验码是否正确,如果正确输出“正确”,否则输出“错误\"。运行样例如下所示: 样例1:
输入:2-163-91475-4 输出:正确 样例2:
输入:2-163-91475-5 输出:错误
(1)Python程序实现如下,请在划线处填入正确的代码: s=input(\"输入物品代码: \") a=[]
for i in range (0, 13): if ___
a. append(int (s[i])) #append( )函数用于在列表末尾添加新的对象 sum=0
for i in range(0, 9) : ____ sdm=sum%10 ___ if sdm==ydm : print(\"正确\") else: print(\"错误\")
29.使用Python自身提供的IDLE集成开发环境录入以下代码及调试 运行,检测结果。 # 鸡兔同笼 for x in range(1,23): y=35-x if 4*x+2*y==94:
print(\"兔子有%s只,鸡有%s只\"%(x,y))
特别提示:代码录入完毕,调试运行,检测错误,讨论错误原因,上网查找错误格式的处置办法,直至能正确输出结果。
30.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
打开文件“考生文件夹\\644\\百鸡百钱.py”,完善程序实现以下功能并保存。
(1)请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善。 (2)运行程序,运行结果如图所示。
# 请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善 money=100 #一共100文钱 num=100 #一共100只鸡 cock_price=5 #公鸡价格5文 hen_price=3 #母鸡价格3文 threechick_price=1 #3只小鸡1文
for cock_num in range(1,money//cock_price+1): #公鸡只数可能为1-20 for hen_num in range(1,①________): #母鸡只数可能为1-33
for chick_num in range(1,②________): #(3小鸡)只数可能为1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num*threechick_price num1=cock_num+hen_num+chick_num*3 if money1==money and num1==num:
print (cock_num,hen_num,③________) #(③小鸡数) input(\"运行完毕,请按回车键退出...\")
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.list3[2] list1[1:4] list2=list2+list4 或 list2.extend(list4) list1=list1+[“塑料瓶”] 或者 list1.append(“塑料瓶”) 【详解】
本题主要考查Python列表数据类型。①“过期食品”在列表list3索引2,故从列表list3中取出“过期食品”的表达式:list3[2]。②\"旧书\金属\纸板箱\"在列表list1索引1~3,从list1中截取[\"旧书\金属\纸板箱\"]这一段的表达式:list1[1:4](不包括4)。③将该列表中的元素添加到list2中,表达式是list2=list2+list4 或 list2.extend(list4)。(extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表))。④将塑料瓶添加到列表list1中:list1=list1+[“塑料瓶”] 或者 list1.append(“塑料瓶”)(append字符追加函数)。 2.n r n 【详解】
本题考查的是Python循环语句。辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。 由n = min(x,y) 可知最小值为n,故①处为n,由r = m%n 可知余数为r,故②处为r,最后的除数是n(即最大公约数为n),故③处为n。
3.[0.0325,0.03,0.03,0.02,0.0175] i in rate:(没有冒号算错误) money=round(money*(1+i),2) 100000 0 money>0 或 money>=0 money=round(money*1.037-20000,2) year=year+1 【详解】
本题主要考查Python程序语句。①此处是变量money的初始化,有5万元资金存入银行,故填50000。②5年利率分别是3.25%、3%、3%、2%、1.75%,用rate数组保存,故填[0.0325,0.03,0.03,0.02,0.0175]。③通过for循环,从rate数组中取值,故填i in rate:(没有冒号算错误)。④调用round()函数,保留结果两位小数,故填
money=round(money*(1+i),2)。⑤购买了10万元一年期收益率3.7%的银行保证收益型理财产品,故money的初始值为100000,故填100000。⑥year的初始值也为0,故填0。⑦循环条件是money大于0或大于等于0,故填money>0 或 money>=0。⑧收益率3.7%,每年理财赎回后,会提取2万元用作生活所需,余下资金仍购买此种理财,使用round函数保留2位小数,故填money=round(money*1.037-20000,2)。⑨循环变量是year,此处year递增进入下一轮循环,故填year=year+1。 4.gender==’male’ n=220 n=210 【详解】
本题主要考查Python程序的调试与执行。男最适宜运动心率=(220-年龄数-安静心率)×(60%~80%)+安静心率,女最适宜运动心率=(210-年龄数-安静心率)×(60%~80%)+安静心率。①故此处判断如果性别是男性,n=220,如果是女性,则n=210,故填gender==’male’。②if条件满足时,n=220。③if条件不满足,即else部分,n=210。
5.整除 取余 判断是否相等 百 十 个 1000 【详解】
本题考查的是python语言及对程序实现的理解。(1)//的符号作用是取整除,返回商的整数部分(向下取整)。(2)%的符号作用是取模,返回除法的余数。(3)等于,比较符号两边对象是否相等。(4)(5)(6)i=n//100,j=n//10%10,k=n%10,分别利用取整和取余符号,算出三位数对应的每一位上的数字。(7)range()函数的区间是左闭右开,所以第二个参数1000是取不到的。
6.字符串类型 你及格了喔 表现不错 程序结束 不及格 学习方法可能不对 程序结束 60 80 错 【详解】
本题主要考查Python编程。① input() 函数接受一个标准输入数据,返回为 string 类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔 表现不错 程序结束”;③输入期末成绩为55时,满足小于60
及大于等于30,因此此处输出为“不及格 学习方法可能不对 程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。 【点睛】
7.计算每一项的阶乘 记录阶乘相加后的和 t记录的是每一项阶乘的结果,t*=n即t=t*n,t初值为1,能计算出每项的阶乘结果,若为0,则每项的阶乘结果都是0,不符合题意。 t=t*n s=s+t 【详解】
本题考查的是python语言编程。本题考查的是1-20阶乘的求和。本题的重点是要先计算出对应的每一项阶乘的结果t,然后20项阶乘的结果记录在s中。在此过程中既要考虑到累乘求阶乘结果,又要考虑到累加求所有阶乘的和。初值n=0,在1-21的循环过程中,记录每一项的阶乘,s=0记录阶乘累加的和,t=1记录每一项阶乘的结果。每求一次阶乘就要进行一次求和,故语句t*=n,s+=t均在“for n in range(1,21):”的循环体内。 8.banana apple mango a= 3 【详解】
本题主要考查Python中For循环结构。 for循环可以遍历任何序列的项目,如一个列表或者一个字符串;len() 方法返回列表元素个数。因此本题输出为各列表内容及列表元素个数。 【点睛】
9.n/(2*n-1)或n/(n*2-1) i/(2*i-1) 或 i/(i*2-1) 【详解】
本题主要考查Python程序的执行与调试。①分析数列可知,分子第n项是n,分母第n项是2*n-1,故该数列的通项公式f(n)=n/(2*n-1)或n/(n*2-1)。②此处是对前n项进行求和,变量是i,使用语句s=s+i/(2*i-1) 或s=s+ i/(i*2-1),故此处填i/(2*i-1) 或 i/(i*2-1)。
10.
【详解】
本题主要考查Python程序的执行与调试。运行结果如下:
11.n<1 or n>7 list[n-1] 【详解】
本题主要考查Python程序调试。①输入的数字不是在范围(1至7)输出“输入错误!”,故此处if判断条件是n<1 or n>7。②列表的索引是从0开始,即列表list索引是从0~6,而n的范围是从1~7,故此处填list[n-1]。 12.C A B 【详解】
本题主要考查队列数据结构及Python程序。①队列是从队头出队,队尾入队,使用pop函数出队,队头的索引值是0,故此处填boy.pop(0),girl.pop(0)。②队列入队使用append方法追加到队列尾,此处是男生入队boy.append(x),故选A选项。③同理,此处是女生入队girl.append(y),故选B选项。
13.k=len(s) ord(s[i])==ord(s[i+1])-1 and flag==False 或
ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and
flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag flag = False 【详解】
本题主要考查Python程序的执行与调试。①第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。②flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填
ord(s[i])==ord(s[i+1])-1 and flag==False 或 ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag。③如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag = False。
14.34 chick_num 【详解】
本题主要考查Python程序的执行。①公鸡数量的范围1-20,for cock_num in range(1,21)表示变量cock_num的范围是1-20,故此处填21。②母鸡的数量可能为1-33,同理,故此处填34。③此处是按顺序使用print()函数输出公鸡数量、母鸡数量、小鸡数量,故此处填chick_num。 15.or i+1 【详解】
本题主要考查Python程序执行与调试。①分析程序可知,程序采用枚举的算法找出该数,当不满足条件时,i递增继续判断,故i的初始值是0,第一空填0。②一个数除以3余2,除以5余3,除以7余2,此处是取不满足情况时,i递增,and取反变为or,故第二空填or。③同理第三空填i+1。
16.b*b-4*a*c或b**2-4*a*c d>=0 -b-math.sqrt(d))/(2*a) print(\"方程无实数根\") 【详解】
本题主要考查Python程序的调试。①此处将表达式b2-4ac的值赋给变量d,故填b*b-4*a*c或b**2-4*a*c。②当b2-4ac≥0,方程有两个不同的实数根,故此处if判断条件是d>=0。③当b2-4ac≥0时,方程的两个根分别为x1=(-b+math.sqrt(d))/(2*a),x2=(-b-math.sqrt(d))/(2*a),故此处填-b-math.sqrt(d))/(2*a)。④else部分,即x<0时,输出“方程无实数根”,故此处填print(\"方程无实数根\")。 17.①n=len(a) sum+=1或sum=sum+1 6 【详解】
本题主要考查Python程序调试与执行。①变量n用来保存数组a的长度,使用len函数,故此处填n=len(a)。②使用for循环统计出80分(含80)以上的人数,用变量sum统计满足条件的人数,当满足if条件时,sum变量递增,故此处填sum+=1或sum=sum+1。③执行上述程序段后,sum=6,故输出的内容是6。
18.①i <=(Len(s)\\8)*8 ②a(start + c((i-1)Mod 8+1)) ③ss = convert(Asc(b(i))) 【详解】
(1)“A”的ASCII码值是65,用二进制表示为0100001,m=35,用二进制表示为0010001,位做异或运算,相同为0,相异为1,可得:01100010。
(2)①以8个数据为一段进行分段处理,个数等于8的数据段需进行位置变换,故需进行位置变换的数据段有(Len(s)\\8)个,数据个数为i <=(Len(s)\\8)*8。
②位置变换方法:加密后数据段的第ⅰ个元素=原数据段的第c(i)个元素,其中i=1,2,……,8,i表示段内位置。代码“Do While i <=(Len(s)\\8)*8”中的i对应段内位置可为“1+(i-1)Mod8”,start表示该数据段第一个数据的前个位置,故数组b第i位置元素是来自数组a第start + c(1+(i*-1)Mod 8)位置,故②处代码为“a(start + c(i-1)Mod8+1))”。 ③位置变换后的数据需转二进制,再按位做异或运算,故③处的代码是调用自定义函数convert把b(i)中字符的ASCII码转二进制后存入变量ss,故此处代码为“ss = convert(Asc(b(i))”。
19.①④ 不能 1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。 1 2或2.0 ‘shqk. xlsx’或“shqk. xlsx” (detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’] 【详解】
本题主要考查Python程序设计相关知识点。①手机、数码照相机均属于模数转换的设备,可以实现模拟信号与数字信号的转换,故填①④。②根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,小强家目前10Mbps的宽带不能满足直播要求。③视频存储容量=像素*颜色深度*帧频*时长,1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。④由图可知,1表示成交,0表示未成交,流水号为2019030602的售货记录中,已成交的商品类别数是1,都是饮料(即货号17和货号5)。⑤该流水号的总利润是(2.9-2.5)*3+(1-0.8)*4=2.0,故填2或2.0。⑥该表格文件名是shqk.xlsx,此处读入该表格文件,故填‘shqk. xlsx’或“shqk. xlsx”。⑦利润=(售价-进价)*数量,数据已经读到detail中,故此处填(detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’]。 20.C D B D C 【详解】
本题主要考查Python程序调试。①Python程序for循环格式是:for 变量 in range( ),故程序中①处应填写in,选C选项。②程序中x%4的作用是计算x除以4的余数,选D选项。③colors=[\"red\,依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。⑤此程序属于程序设计结构中的循环结构,选C选项。
21.f = True isprime(k+2) k=k+1 或 k+=1 或 k=k+2 或 k+=2 【详解】
本题主要考查Python程序的执行与调试。①isprime(x)用来判断x是不是素数,通过用x整除2~int(math.sqrt(x)),如果余数为0则表明该数不是素数,赋值f为假退出循环,f的初值为True,故第一空填f = True。②若两个素数之差为 2,则该对素数称为双胞胎数,此处判断相差为2的两个数是不是素数,故第二空填isprime(k+2)。③素数都是奇数,此处需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+1 或 k+=1 或 k=k+2 或 k+=2。
22.n=10 m=m+(n**(le-2-i))*a t=convert(s1) -24D 【详解】
本题主要考查Python程序的执行与调试。①二进制的权值是2,十进制的权值是10,十六进制的权值是16,此处是十进制的情况,故填n=10。②二进制、十六进制转化为十进制的方法是“按权展开、逐项相加”,从右往左加,变量i的初值等于0,故此处要变换为le-2-i,故此处填m=m+(n**(le-2-i))*a。③当字符c是“+”、“-”、“=”时,则表明第一个运算数已全部保存到变量s1中,此处需要将其转化为十进制保存到变量t中,故填t=convert(s1)。④1110B转化为十进制数是14D,30H转化为十进制数是48D,故1110B+10D-30H=-24D。
23.是 k%2==0或(k+1)%2==1或(k-1)%2==1 ans+code[p] ans 【详解】
本题主要考查Python程序的执行与调试。①若接收到的二进制码为“101011011”,1的个数有6个,则传输过程存在差错。②变量k统计1的个数,若k是偶数则表明传输错误,否则传输正确,故此处填k%2==0或(k+1)%2==1或(k-1)%2==1。③如果p是1~9之间的数字,则直接将p拼接到ans中,否则从字典code中取对应的字母,故此处填ans+code[p]。④变量ans保存转换后的十六进制,故此处填ans。
24.pd.read_ csv 学校代码 result.drop (‘姓名’ ,axis=1) 将总人数存储到变量zrs中 【详解】
本题主要考查Python程序的执行与调试。①将csv文件读入并转化为数据框形式,故填pd.read_ csv。②groupby函数主要的作用是进行数据的分组,此处按学校分组计数,故填学校代码。③此处删除"姓名"列,可以使用drop()函数来删除,故填result.drop (‘姓名’ ,axis=1)。④zrs=len(df.index),该语句是统计df内有多少个元素,即将总人数存储到变量zrs中。
25.列表 字典 键值对 3 3 【详解】
本题考查的是python语言的数据类型,列表和字典。(1)列表是写在方括号[]之间,用逗号分隔开的元素列表,students=[ '小明','小红','小刚']就是列表。(2)字典用{}标识,它是一个无序的“键(key):值(value)”对集合,字典当中的元素是通过键来存取的,而不是通过偏移存取。scores={ '小明':95,'小红':90,'小刚':90}就是一个字典类型。(3)其中“'小明':95”就构成了一个键值对。(4)len() 方法返回列表元素个数。students=[ '小明','小红','小刚'],里面有三个元素,故返回值是3。(5)print(len(scores)),其中scores={ '小明':95,'小红':90,'小刚':90}该字典有3个键值对,故输出结果是3。
26.字符串 字符串 我的镜像世界通行密码是153 转换为字符串 连接字符串 【详解】
本题主要考查Python程序的执行与调试。①who='我的',可知变量who的数据类型字符串。②number='153' ,类似number的数据类型也为字符串。
③print( who+destination+code+action+str(number)),是将变量字符串拼接后输出,故print语句输出的结果是我的镜像世界通行密码是153。④str(number)的作用是转换为字符串。⑤“+”在程序中的作用是连接字符串。
27.② ⑤ ⑥ ④ 【详解】
本题主要考查算法及Python程序实现。①jieba 模块是一个用于中文分词的模块,lcut 方法直接返回 list,流程图中分词后存入words中对应的代码是words=jieba.lcut(txt),故填②。②流程图中循环结构对应的是程序中的⑤。③对counts的值进行排序,可以使用sort方法实现,对应程序中的⑥。④使用循环结构将值一一输出,对应程序中的④。 28.\"0\"<=s[i]<=\"9\" 或s[i] in \"0123456789” sum=sum+a[i]*(i+1) ydm=a[9] 【详解】
本题主要考查Python程序执行与调试。①变量s保存商品仓库物品代码,若s[i]是数字则进入循环判断,否则跳过,故此处判断条件是\"0\"<=s[i]<=\"9\" 或s[i] in \"0123456789”。②校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,用变量sum统计,故此处填sum=sum+a[i]*(i+1)。③变量sdm是计算得到的校验码,变量ydm是输入的校验码,此处需要将校验码a[9]赋给变量ydm,故填ydm=a[9]。
29.错误1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,没取到23,故应改为: range(1,24)
错误2:缩进错误,y=35-x、if 4*x+2*y==94:是for语句中的语句块,应缩进。print(\"兔子有%s只,鸡有%s只\"%(x,y))是if语句中的语句块,应缩进。 【详解】
本题考查的是Python调试。本题程序错误如下:
错误1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,没取到23,故应改为: range(1,24)
错误2:缩进错误,y=35-x、if 4*x+2*y==94:是for语句中的语句块,应缩进。print(\"兔子有%s只,鸡有%s只\"%(x,y))是if语句中的语句块,应缩进。 调试完最终输出:兔子有12只,鸡有23只。
30.34或 money//hen_price+1 101 或 money//threechick_price+1 chick_num*3 【详解】
本题主要考查Python程序执行与调试。①母鸡只数可能为1-33,对比最外层循环范围,第一空填34或 money//hen_price+1。②小鸡只数可能为1-100,同理第二空填101 或 money//threechick_price+1。③公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,故第三空填chick_num*3。
因篇幅问题不能全部显示,请点此查看更多更全内容