完整版python真题优质程序填空阅读填空程序试题.docx
- 文档编号:27515999
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:38
- 大小:1.47MB
完整版python真题优质程序填空阅读填空程序试题.docx
《完整版python真题优质程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《完整版python真题优质程序填空阅读填空程序试题.docx(38页珍藏版)》请在冰豆网上搜索。
完整版python真题优质程序填空阅读填空程序试题
(完整版)python真题优质程序填空阅读填空程序试题
一、程序填空
1.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。
公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。
判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。
以下是一段用于判断某一年是否是闰年的程序。
请将上面程序框中空格处的内容填写完整,其中①处填写代码注释
_________________________________________
2.程序补充:
(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,“年后资金被全部取出”)
3.阅读程序。
阅读求水仙花数的代码并回答问题。
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。
forninrange(100,1000):
i=n//100
j=n//100%10
k=n%10
ifn==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无法取到的数值是________。
4.阅读程序。
分析条件语句的代码并回答问题。
(1)如果不能使用int()函数,那么变量s的类型将会变成______。
(2)如果你的期末成绩是85,你得到的评价将会是____________。
(3)如果你的期末成绩是55,你得到的评价将会是____________。
(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。
(5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
5.阅读程序。
分析下列切片相关程序并回答问题。
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的输出结果是______________。
6.阅读程序。
分析有关多项式的代码并回答问题。
求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的等价语句是______。
7.完善程序。
以下是计算S=1+6+11+…+101的程序代码。
请你在
处填写正确的语句。
s=0
k=1
while(k<=101)
__
s=0
k=1
while(k<101):
k=k+5
s=s+k
print(s+1)
8.阅读程序。
foriinrange(1,10):
forjinrange(1,i+1):
print("%dX%d=%2d"%(j,i,j*i),end="")
print()
(1)在第一行程序中,变量i的数据范围为_____到____。
(2)在第二行的程序中,变量j的数据范围为_____到____。
(3)如果“%d”表示十进制数,那么%2d则表示____位宽的十进制数。
(4)第三行程序改为print("%dX%d=%2d"%(i,j,i*j),end=""),则本题的输出应该是_____。
(5)如果最后一行的print()表示换行,那么end=””的功能是_______。
9.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。
*
**
***
****
10.程序分析题
学校举行校园歌手大赛,评委由6人组成。
评分方法:
去掉一个最高分和一个最低分,计算其余4位评委的平均分,作为选手的最终得分。
max记录最高分;min记录最低分;s记录六位评委的总分;aver记录最终得分。
第1步:
从文本框中分别读入6位评委的打分并依次存入到a
(1)至a(6)中
第2步:
将第1位评委的打分a
(1)分别赋给最高分max,最低分min和总分S
第3步:
利用循环结构把另外5位评委的打分累加给s从而求出6位评委的总分s,同时把5位评委的打分与max和min进行比较,得出6位评委中的最高分max和最低分min。
第4步:
从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分。
max=a[0]
min=a[0]
s=0
foriinrange(6):
s=s+a[i]
ifa[i]>max:
max=a[i]
ifa[i] min=a[i] aver=()/4 (1)在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由______控件生成的。 A.EntryB.LabelC.FrameD.Button (2)题目中算法描述采用的是__________A、自然语言B、伪代码C、流程图D、.N-S图 (3)下列程序代码片段对应于算法描述中的第2步至第4步。 请填写片段中空白处的表达式填写完整________ 11.约瑟夫问题是个有名的问题: 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]) 12.输入三个同学的成绩,然后大到小排列。 13.编写程序,找到并输出100以内的偶数个数。 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文 forcock_numinrange(1,_______): #公鸡只数可能为1-20 forhen_numinrange(1,_________): #母鸡只数可能为1-33 forchick_numinrange(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 ifmoney1==moneyandnum1==num: print(cock_num,hen_num,__________) input("运行完毕,请按回车键退出...") (2)运行程序,运行结果如图所示。 15.(最大公约数)用辗转相除法求两个正整数的最大公约数。 代码如下: defgcd(m,n): r= whiler! =0: m=n n= return a=int(input(‘请输入a的值: ’)) b=int(input(‘请输入b的值: ’)) print(‘最大公约数是: ') 填空: ________________________________________ 16.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。 编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。 17.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。 编写程序求出这些小朋友的可能人数。 实现上述功能的程序如下,请在程序划线处填入合适的代码。 ________ a=[] foriinrange(100,1000): if_____________: a.append(i) total+=1 print("这群小朋友总的人数有: ") forjinrange(len(a)): print(____,end='、') print('') print('可能情况数为: ',total,'种') 划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。 18.小王编写了“字符串缩写”程序,实现如下功能: 1.输入一串由英文字母和数字组成的字符串, 2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“—”和最后一个字符组成的新字符段, 3.例如: 字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。 程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示: 实现上述功能的程序如下,请在程序划线处填入合适的代码。 s=input("请输入字符串s: ") _______ flag=False result="" foriinrange(0,k-1): if___________________: result=result+s[i]+"-" flag=True eliford(s[i])! =ord(s[i+1])-1: result=result+s[i] _____ result=result+s[i+1] print("缩写后的字符串为: ",result) 划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。 19.完善程序实现以下功能并保存。 输出数组的最大值。 arr1=[12,435,76,24,78,54,866,43] ________=-32768 foriinrange(0,7): ifarr1[i]>max1: max1=________ print("最大值是: ",________) input("运行完毕,请按回车键退出...") 20.完善代码并保存。 实现功能: 从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[] foriinrange(0,________): x=float(input("请输入一个数")) cj.append(________) print(max(cj),min(________)) input("运行完毕,请按回车键退出...") 21.为保护环境,很多城市开始对垃圾实行分类,便于更好的进行处理,为了让大家了解垃圾的分类情况,建立了以下四类列表,list1(可回收垃圾)、list2(有害垃圾)、list3(易腐垃圾),剩下的为其他垃圾,目前,列表中已经存储了以下数据。 list1=["玻璃瓶","旧书","金属","纸板箱","旧衣服","易拉罐"] list2=["胶片","消毒水","纽扣电池","水银温度计","过期药水","泡沫塑料"] list3=["动物内脏","菜叶菜梗","过期食品","香蕉皮","果壳"] 根据现有列表,完成以下问题: (1)写出从列表list3中取出“过期食品”的表达式: ___________________________________________________________________________ (2)写出从list1中截取["旧书","金属","纸板箱"]这一段的表达式: ___________________________________________________________________________ (3)现又发现一个新的列表如下: list4=["过期化妆品","过期药品","杀虫剂"],经过判断,里面存放的为有害垃圾,如何将该列表中的元素添加到list2中,请写出相关的表达式: __________________________________________________________________________ (4)小明在路上捡到了一个塑料瓶,判断为可回收垃圾,写出相关表达式,将塑料瓶添加到列表list1中: __________________________________________________________________________ 22.小敏有10万元本金,想要购买银行保证收益型理财产品。 每年到期后连本带利仍购买此种理财。 请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。 (例如输人: 5.15%,输出: 14年后收益超过本金。 ) 1s=input("请输入年利率: ") 2rate=float(s[: -1])*0.01 3money=100000 4year=0 5whilemoney<=200000: 6money=round(),2) 7year=year+1 8print(year,"年后收益超过本金。 ”) (1)程序第6行下划线处应填入___________。 (2)程序第2行的作用是____________,并赋值给变量rate。 (3)该程序主要是通过while实现____________结构。 23.某种数据加密方法描述如下(加密前数据是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)的数值变换过程如下: 变换前 0 1 1 1 0 1 0 0 密钥m 0 0 1 0 0 0 1 1 变换后 0 1 0 1 0 1 1 1 (1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。 (2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。 Constn=1024 Dimc(1To8)AsInteger PrivateSubForm_Load() ‘产生位置变换密钥数组c,代码略 EndSub Functionconvert(cAsInteger)AsString ‘程序功能: 把整数c转成8位二进制数,代码略 EndFunction PrivateSubCommand1_Click() DimsAsString,stAsString,ssAsString,resAsString DimiAsInteger,jAsIntegerstartAsInteger Dima(1Ton)AsString,b(1Ton)AsString s=Text1.Text st=convert(Val(Text2.Text)) Fori=1ToLen(s) a(i)=Mid(s,i,1) Nexti i=1: start=-8 DoWhile①________ IfiMod8=1Thenstart=start+8 b(i)=②_______ i=i+1 Loop Forj=iToLen(s) b(j)=a(j) Nextj Fori=1ToLen(s) ③________ Forj=1To8 IfMid(ss,j,1)=Mid(st,j,1)Then res=res+"0"Elseres=res+"1" '按位异或 Nextj Nexti Text3.Text=res EndSub 24.某字符转置算法描述如下: 将字符串(均为大写字符)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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 python 优质 程序 填空 阅读 试题