python优质程序填空阅读填空程序试题.docx
《python优质程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《python优质程序填空阅读填空程序试题.docx(38页珍藏版)》请在冰豆网上搜索。
python优质程序填空阅读填空程序试题
python优质程序填空阅读填空程序试题
一、程序填空
1.某字符转置算法描述如下:
将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);
·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);
每一段中K个数据与K*K转置矩阵进行乘法运算;
将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。
乘法运算规则如下:
第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)
例如:
字符串s=PYTHON,区块大小K=4,的转置过程如下:
(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。
(2)请在划线处填入合适代码。
PrivateSubCommandl_Click()
Dima(1To100)AsInteger´存储字符串,长度不超过100个字符
Dimb(1To100)AsInteger存储转置矩阵,长度不超过10*10
Dimc(1To100)AsLong
DimsAsString,tmpAsString
DimkAsInteger,tAsInteger,iAsInteger,jAsInteger
DimnAsInteger,mAsInteger,lensAsInteger
s=Textl.Text´在Textl中输入原始字符串
k=Val(Text2.Text)´在Text2中输入区块大小K
Randomize
Fori=1Tok^2
b(i)=Int(Rnd*9)+1
tmp=tmp十Str(b(i))
IfiModk=0Then
List2.AddItemtmp
tmp="".
EndIf
Nexti
lens=Len(s):
n=lens
Fori=1Ton
tmp=Mid(s,i,1)
①__________
Listl.AddItemStr(a(i))
Nexti
DoWhilenModk<>0
n=n十1
a(n)=0
Listl.AddItemStr(a(n))
Loop
Fori=1Ton
m=(i―1)Modk+1
t=1
Forj=②__________
c(i)=a(j)*b((m-1)*k+t)+c(i)
t=t+1
Nextj
Nexti
Fori=1Ton
List3.AddItemStr(c(i))
Nexti
s=″″
Fori=1Tolens
③__________
s=s+Chr(t+64)}
Nexti
Text3.Text=s´在Text3中输出转置后的字符串
EndSub
2.阅读程序。
分析下列切片相关程序并回答问题。
list2=[5,6,7,8,9]
print(list2[:
])
print(list2[2:
])
print(list2[:
2])
print(list2[1:
3])
print(list2[2:
4])
(1)程序第一个print的输出结果是______________。
(2)程序第二个print的输出结果是______________。
(3)程序第三个print的输出结果是______________。
(4)程序第四个print的输出结果是______________。
(5)程序第五个print的输出结果是______________。
3.阅读程序。
分析有关多项式的代码并回答问题。
求1!
+2!
+3!
+……+20!
的和。
n=0
s=0
t=1
forninrange(1,21):
t*=n
s+=t
print(s)
(1)n的作用是________________。
(2)s的作用是______________。
(3)t的初值必须赋值为1,这是因为_________。
(4)t*=n的等价语句是__________
(5)s+=t的等价语句是______。
4.完善程序。
以下是猜数游戏的程序,请在画线出填写正确的内容。
importrandom
secret=random.randint(0,10)
print(“---猜数游戏-----”)
cs=int(input(“你猜的数字是”))
whilecs!
=secret:
_______cs>secret:
_________(“唉,猜大啦!
”)
__________:
print(“嘿嘿,猜小了!
”)
cs=int(input(“重新猜一个靠谱的数字是:
”))
print(“游戏结束,不玩了!
”)
5.调试程序。
请阅读以下程序并写出运行结果。
fruites=['banana','apple','mango']
forfruitinfruites:
print(fruit)
a=len(fruites)
print('a=',a)
_________________
6.编写程序。
信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。
7.以下是计算s=1+6+11+...+101的程序代码,请补全程序。
s=0
foriinrange(1,102, ):
s=
print(s)
请补充完成上述程序①_________②_________
8.约瑟夫问题是个有名的问题:
N个人围成一圈,顺序为0,1,2,3,4,5,从0号这个人开始报数,报到2的将被杀掉,接下去重新开始报数,报到3的将被杀掉...以此类推,最后剩下一个,其余人都将被杀掉。
例如N=6,被杀掉的顺序是:
1,4,3,0,5;最后只剩下2这个人。
llist=
n=int(input(“请输入参与人数:
”))
foriinrange(0,n-1):
llist.append([i,i+1])
___________
___________
long=n
k=head
i=1
p=2
while(____):
ifi==p-1:
t=llist[k][1]
print(llist[t][0])#索引为t的删除
__________________
ift==head:
___________________
i=1
p+=1
long=long-1
k=llist[k][1]
______________
i+=1
print(llist[head][0])
9.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
10.哥德巴赫在1742年提出了以下猜想:
任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。
importmath
defss(n):
Flag=True
i=2
whilei<=int(math.sqrt(n))andFlag:
if_____________
Flag=False
_____________
returnFlag
n=int(input(“输入一个大于2的偶数”))
foriinrang(2,n//2+1):
if____________
print(str(n)+"="+str(i)+"+"+str(n-i))
如果输入“8”则结果显示_____
11.编写程序,找到并输出100以内的偶数个数。
12.完善程序实现如下功能并保存:
有5个人坐在一起,第5个人说他比第4个人小3岁;第4个人说他比第3个人小3岁;第3个人说他比第2个人小3岁;第2个人又说他比第1个人小3岁;第1个人说他是38岁。
编写程序,计算出第5个人的年龄并显示。
defage(n):
ifn==1:
c=________
else:
c=age(n-1)-3
return________
print("第5人的年龄:
",age(________))
input("运行完毕,请按回车键退出...")
13.完善程序实现以下功能并保存。
输出数组的最大值。
arr1=[12,435,76,24,78,54,866,43]
________=-32768
foriinrange(0,7):
ifarr1[i]>max1:
max1=________
print("最大值是:
",________)
input("运行完毕,请按回车键退出...")
14.冠军在A、B、C、D四位同学中。
A说:
“不是我”,B说:
“是C”,C说:
“是D”,D说:
“C说的不对”,已知四人中有一人说了假话。
判断出到底谁是冠军。
请在空格处填写正确的代码,使程序完善。
champion=['A','B','C','D']#设置选手列表
foriin__________:
#循环读取选手编号
cond=(i!
='A')+(i=='C')+(i=='D')+(i!
='D')#查找符合条件的选手
ifcond==_____:
#说真话是否是3人
print("冠军是:
",_________)#输出冠军
input("运行完毕,请按回车键退出...")
15.现代生活半径的扩大和生活节奏加快使出行成本不断增长。
滴滴快车应运而生,其以灵活快速的响应和经济实惠的价格为大众提供更高效、更经济、更舒适的出行服务,给人们生活带来了美好的变化。
小C是滴滴快车忠实的粉丝,经常出行就提前预约,乘坐滴滴快车。
小C就在思考这个滴滴快车是怎么计费的?
可否用所学的Python语言也编写一个计费程序。
于是小C开展了有关这个项目活动的探究。
根据实际情况,回答问题。
(一)收集、分析数据,运用数理思维建模
登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”:
滴滴快车(普通型)计价规则
时段
起步价
里程费
时长费
普通时段
8.00元
1.35元/公里
0.20元/分钟
00:
00-06:
30
8.50元
2.40元/公里
0.50元/分钟
06:
30-09:
00
8.50元
1.50元/公里
0.45元/分钟
21:
00-23:
00
8.50元
1.50元/公里
0.40元/分钟
23:
00-00:
00
8.50元
2.40元/公里
0.50元/分钟
注意:
1.起步价包含里程3.3公里,包含时长9分钟,里程费、时长费合计不足基础费时,直接按照基础费计费。
2.实时计价是基于订单服务内容(里程、时长、时段),按各种费用项定价标准计算订单价格的计价方式,实际费用由两部分里程费与时长费累加而得。
小C同学19:
33从“南内环恒地大厦停车场-入口”到“坞城新纪元大酒店(长风店)”乘坐滴滴快车(普通车型),里程4.1公里,时长约21分钟,按照表中的计费规则,小C同学此次出行应该支付的车费是:
车费=8+(4.1-3.3)×1.35+(21-9)×0.2=9.68。
(1)小C登录滴滴出行官网搜索并下载“计价规则”,所采用的数字化工具:
_____________
A.数字化可视化表达工具B.信息加工工具
C.三维设计工具D.信息检索工具
(2)假设Tot1表示时长费,Tot2表示里程费,S表示实际里程,T表示实际时长,Cost表示应支付费用。
运用数学解析式归纳出计费公式为:
如果时长超过9分钟,则Tot1=_____________。
如果里程小于等于3.3公里则Tot2=_____________,否则Tot2=_____________。
应支付费用:
Cost=______________。
(二)运用算法描述方法将问题解决步骤化
小C明晰了滴滴快车车费的计算方法之后,设计求解滴滴快车普通时段车费的算法,并用自然语言和流程图的方式表述出来。
(3)自然语言描述:
第一步:
_________________________
第二步:
计算时长费Totl
第三步:
计算里程费Tot2
第四步:
_________________________
第五步:
_________________________
(4)流程图描述:
(如图)流程图中,表示计算与赋值的是_____________,表示算法流向的是______________。
A.
B.
C.
D.
E.
(5)算法描述中,用到了三种基本控制结构,分别是_______________、______________和______________。
如图示中的流程图使用的控制结构是_______________和______________。
(选填:
顺序结构、选择结构、循环结构、树型结构)
(6)一个算法必须有______________或多个数据输入。
有______________或多个数据输出。
(选填:
零个/一个)
(三)编写、调试、运行程序,验证算法并解决问题________
16.小明用Python语言写了一个货币兑换程序如下:
(1)参数currency指:
____________。
(2)该程序用了哪一种算法结构:
_____________。
(3)输出结果为“50$=325.25人民币”。
则代码应该如何编写:
____________。
17.小强开展网上直播售货,为此购买了以下直播硬件设备:
①手机②耳机③自拍杆④数码照相机⑤背景画⑥无线路由器
请回答下列问题:
(1)在购买的直播硬件设备中,属于模数转换的设备是__________(多选,填序号)
(2)小强选择借助某著名直播平台售货,根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:
1,在不考虑视频传输优化的情况下,问小强家目前10Mbps的宽带__________(选填:
能/不能)满足直播要求。
请列式证明__________。
(3)小强将某一天的售货情况从平台导出,保存为文件shqk.xlsx.数据已按“流水号”升序排序,如图a所示。
流水号为2019030602的售货记录中,已成交的商品类别数是__________(填写数字),该流水号的总利润是__________元(填写数字,保留1位小数)
图a
(4)为了快速了解各类别商品的利润,小强用python编程处理。
处理的结果界面如图b所示。
部分代码如下,请在①②划线处填写合适的代码。
图b
importpandasaspd
importnumpyasnp
importmatplotlib.pyplotasplt
detail=pD.read_excel(___)
print(detail)
foriinrange(len(detail[:
])):
ifdetail[‘成交与否’][i]==1:
detail[‘lirun’]=___
dg=detai1[[‘类别’,‘lirun’]].groupby(by=‘类别’)
print(“总利润”,detail[‘lirun’].sum())
’数据可视化代码略
18.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。
为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。
一般情况下,规模N=1时,问题的解是已知的。
已知:
从1到n的连续自然数相乘的积、叫做阶乘、用符号n!
表示。
如5!
=1×2×3×4×5,规定0!
=1。
我们用递归算法可以较容易求n的阶乘。
求n的阶乘算法可以描述如下:
n!
=n*(n-1)!
(n-1)!
=(n-1)*(n-2)!
(n-2)!
=(n-2)*(n-3)!
2!
=2*1!
1!
=0!
0!
=1
如果把n!
写成函数形式,即f(n),f(n)=n*f(n-1)。
如f(5)就是表示5!
,求5!
的过程可以写成如下形式:
f(5)=5*f(4)f(4)=4*f(3)f(3)=3*f
(2)f
(2)=2*f
(1)f
(1)=1
(问题求解)在python中用递归算法求1!
+2!
+……+n!
(n的值为整数,从键盘输入)。
请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。
deff(n):
ifn==0:
return1
else:
return_________
s=0
n=int(input("请输入n:
"))
foriin_______:
s=________
print(s)
19.学校开展“奇妙的数字”研究性学习活动。
张轩小组4人决定把课题定为《探秘水仙花数》。
(1)张轩使用XX搜索引擎搜索到“水仙花数”是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:
153=13+53+33,那么这个数就是一个“水仙花数”。
XX属于____搜索引擎(全文,分类)
(2)为了求解100--999这些数字中,哪些数字是“水仙花数”?
张轩小组进行了算法设计,并使用python编写了一段程序来求解所有的“水仙花数”,程序和运行结果下图:
k是可以重新赋值的,k是变量还是常量?
____程序中①处有空缺,请补充完整①处的代码。
____程序中逐一验证了100到999之间所有的三位数是否符合“水仙花数”的定义条件,这种算法叫做______(解析法,枚举法,递归法,二分法)。
(3)在研究成果展示环节,张轩小组可以使用什么软件制作《探秘水仙花数》的研究成果报告?
(_____)
20.模拟一个简单计算器,实现如下功能:
输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。
程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。
当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。
当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!
”。
Python程序实现如下,在划线处填入合适的代码。
a=int(input("请输入第一个数:
"))
fh=input("请输入运算符:
")
b=int(input("请输入第二个数:
"))
flag=True
s=____
iffhins:
iffh=="+":
c=a+b
eliffh=="-":
c=a-b
eliffh=="*":
c=a*b
else:
if____
print("除数不能为0!
")
flag=False
else:
c=a/b
ifflag==True:
print("运算的结果为:
"+____)
else:
print("运算符不正确")
21.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。
编写python程序,实现如下功能:
输入n的值,统计显示n以内的所有双胞胎数。
程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。
importmath
defisprime(x):
______
foriinrange(2,int(math.sqrt(x))+1):
ifx%i==0:
f=False
returnf
n=int(input("请输入一个正整数n:
"))
c=0
k=3
whilek<=n-2:
ifisprime(k)and______________:
c+=1
print("第"+str(c)+"对双胞胎数:
",k,'和',k+2)
_______
print("共有"+str(c)+"对双胞胎数")
划线处①处应该填入的语句为:
;
划线处②处应该填入的语句为:
;
划线处③处应该填入的语句为:
。
22.某企业开展“运动打卡动动有奖”活动:
若员工在本月累计运动时间30小时以下,奖励0元;达到30但不足45小时奖励300元;达到45但不足60小时奖励450元;60小时及以上奖励500元。
小强用python编写程序实现相关功能:
输入某员工本月累计运动时间(时),输出其能获得的奖励金额。
(1)实现上述功能的程序如下,请在划线处填入合适的代码。
t=int(input(“请输入您本月累计运动时间(时):
”))
ift<0:
print(“输入错误”)
else:
ift<30:
①_
elift<45:
m=300
②_____
m=450
else:
m=500
print(“您的奖励是:
”,m)
(2)当输入“-1”时,输出信息为_________(选填,填字母:
A.输入错误/B.您的奖励是:
0/C.您的奖励是:
500)
23.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用python程序来完成这些作业呢?
请帮小金完成代码编程.
defconvert(s):
m=0
le=len(s)
key=s[le-1]
ifkey=="B":
n=2
elifkey=="D":
_______
else:
n=16
i=0
whilei<=le-2:
c=s[le-1-i]
ifc>="0"andc<="9":
a=ord(c)-ord("0")
elifc>="A"andc<="F":
a=ord(c)-ord("A")+10
_____________
i+=1
returnm
s=input("请输入算式")
result=0;suanfu1="";suanfu2="";s1=""
foriinrange(len(s)):
c=s[i]
ifc=="+"orc=="-"orc=="=":
__________
suanfu1=suanfu2
suanfu2=c
ifsuanfu1=="":
result=t
ifsuanfu1=="+":
result=result+t
ifsuanfu1=="-":
result=result-t
s1=""
else:
s1=s1+c
print("计算结果为"+str(result)+"D")
(1)将程序横线处补充完整
(2)如输入“1110B+10D-30H=”则输出结果为___________。
24.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择