完整版python二级考试试题2程序填空阅读填空程序试题.docx
《完整版python二级考试试题2程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《完整版python二级考试试题2程序填空阅读填空程序试题.docx(27页珍藏版)》请在冰豆网上搜索。
![完整版python二级考试试题2程序填空阅读填空程序试题.docx](https://file1.bdocx.com/fileroot1/2022-12/27/aa8deabd-cd67-4262-8e1a-e6fd1718367d/aa8deabd-cd67-4262-8e1a-e6fd1718367d1.gif)
完整版python二级考试试题2程序填空阅读填空程序试题
(完整版)python二级考试试题2程序填空阅读填空程序试题
一、程序填空
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.阅读程序。
分析条件语句的代码并回答问题。
(1)如果不能使用int()函数,那么变量s的类型将会变成______。
(2)如果你的期末成绩是85,你得到的评价将会是____________。
(3)如果你的期末成绩是55,你得到的评价将会是____________。
(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。
(5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
4.阅读程序。
分析有关多项式的代码并回答问题。
求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的等价语句是______。
5.阅读程序。
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=””的功能是_______。
6.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。
*
**
***
****
7.编写程序,找到并输出100以内的素数。
8.以下是计算s=1+6+11+...+101的程序代码,请补全程序。
s=0
foriinrange(1,102, ):
s=
print(s)
请补充完成上述程序①_________②_________
9.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:
今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。
凡百钱,买鸡百只。
问鸡翁、母、雏各几何?
这个问题就是著名的“百钱买百鸡问题”。
即:
现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:
公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。
问公鸡、母鸡和小鸡各几何?
(问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。
forginrange(1,20):
formin_______:
forxinrange(3,98,3):
if_________and__________==100:
print("公鸡:
",g,"母鸡:
",m,"小鸡:
",x)
10.利用for循环,分别计算1--100中奇数的和、偶数的和。
11.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:
能被4整除但不能被100整除或能被400整除,闰年的2月为29天)
day=input("请输入年月日(格式举例:
2000-01-05):
")
year=int(day[:
4])
month=_________
sun=int(day[8:
10])
print(year,month,sun)
f_run=[31,28,31,30,31,30,31,31,30,31,30,31]
tall_day=0
if______:
foriinrange(month-1):
tall_day+=f_run[i]
__________
else:
foriinrange(month-1):
tall_day+=f_run[i]
tall_day+=sun
print(day+"是当年的第"+str(tall_day)+"天")
(1)将程序横线处补充完整
(2)如输入“2020-4-19”为当年的第_____天。
12.输入n,计算s=1!
+2!
+...+n!
的未6位(不含前导0)。
N<=1000000,n!
表示前n个正整数之积。
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.完善程序实现如下功能并保存:
有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("运行完毕,请按回车键退出...")
18.为保护环境,很多城市开始对垃圾实行分类,便于更好的进行处理,为了让大家了解垃圾的分类情况,建立了以下四类列表,list1(可回收垃圾)、list2(有害垃圾)、list3(易腐垃圾),剩下的为其他垃圾,目前,列表中已经存储了以下数据。
list1=["玻璃瓶","旧书","金属","纸板箱","旧衣服","易拉罐"]
list2=["胶片","消毒水","纽扣电池","水银温度计","过期药水","泡沫塑料"]
list3=["动物内脏","菜叶菜梗","过期食品","香蕉皮","果壳"]
根据现有列表,完成以下问题:
(1)写出从列表list3中取出“过期食品”的表达式:
___________________________________________________________________________
(2)写出从list1中截取["旧书","金属","纸板箱"]这一段的表达式:
___________________________________________________________________________
(3)现又发现一个新的列表如下:
list4=["过期化妆品","过期药品","杀虫剂"],经过判断,里面存放的为有害垃圾,如何将该列表中的元素添加到list2中,请写出相关的表达式:
__________________________________________________________________________
(4)小明在路上捡到了一个塑料瓶,判断为可回收垃圾,写出相关表达式,将塑料瓶添加到列表list1中:
__________________________________________________________________________
19.现有字典如下,根据题目要求,写出相关的表达式:
xingzuo={‘小明’:
‘巨蟹座’,‘小红’:
‘处女座’,‘小兰’:
‘金牛座’}
(1)现要取出小红所对应的星座,写出相关表达式:
___________________________________________________________
(2)现发现,“小兰”同学的星座应该是“水瓶座”,请帮忙修改。
__________________________________________________________
(3)现发现,在字典中漏写了关于“小贝”的信息,现已知“小贝”为“双子座”,请帮忙添加。
_________________________________________________________
(4)写出删除该字典的表达式:
___________________________________________________________
20.已知圆柱体的底面半径为r,高为h,(均为正整数),小张编写了一个程序计算圆柱体的地面周长和面积,圆柱体侧面积以及圆柱体体积,其中圆周率定义为:
3.14,请根据下列代码回答问题:
r=int(input(“请输入半径r:
”))
h=int(input(“请输入高h:
”))
_________________________
c=2*pi*r
s=pi*r**2
S=c*h
V=s*h
print(c,s,S,V)
(1)解决问题的程序用到的控制结构有:
__________________(填:
顺序结构、分支结构、循环结构)
(2)请将程序补充完整。
(3)请找出程序中的错误代码,并改正。
____________________________________________
21.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。
为求解规模为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)
22.模拟一个简单计算器,实现如下功能:
输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。
程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。
当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。
当进行除法运算时,如果除数为“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("运算符不正确")
23.若两个素数之差为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)+"对双胞胎数")
划线处①处应该填入的语句为:
;
划线处②处应该填入的语句为:
;
划线处③处应该填入的语句为:
。
24.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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=”则输出结果为___________。
25.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。
“奇校验”的原理:
在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。
例如:
接收到的每个字节及校验码
1的个数
传输正误
100101001
4
错误
011010101
5
正确
101011010
5
正确
根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。
请回答下列问题:
(1)若接收到的二进制码为“101011011”,传输过程__________(选填:
是/否)存在差错。
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
s=input("请输入9位二进制编码:
")
code={10:
"A",11:
"B",12:
"C",13:
"D",14:
"E",15:
"F"}
k=0;p=0;ans=“”
foriins:
#统计9位二进制编码中“1”的个数
k=k+int(i)
if____:
print("传输错误!
")
else:
print("传输正确!
")
forjinrange(0,8,4):
p=int(s[j:
j+4],2)
#int(x,[base]):
将x(字符串或者数字)按照base进制转换成整数
if0<=p<=9:
ans=ans+str(p)
else:
ans=___
print("字节编码用十六进制表示:
",___
26.“枚举算法”又称为“穷举法”,其基本思想是:
一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。
小明利用枚举算法解决“百元买百鸡”问题。
用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。
公鸡5元1只,母鸡3元1只,小鸡1元3只。
请问公鸡,母鸡,小鸡各应该买多少只?
假设公鸡有X只,母鸡有Y只,小鸡有Z只。
以下Python程序段实现了“百元买百鸡”的功能,请补全①②③处代码。
c=0
forxin____①:
foryinrange(1,33):
z=100-x-y
if______②:
print("公鸡:
",x,"母鸡:
",y,"小鸡:
",z)
_____③
print("共有买法",c,"种")
27.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。
编写python程序,实现如下功能:
输入n的值,统计显示n以内的所有双胞胎数。
程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。
defisprime(x):
foriinrange(2,x):
if①__________:
returnFalse
returnTrue
n=int(input(“请输入一个正整数n:
”))
c=0
k=3
whilek<=n-2:
ifisprime(k)and②___________:
print(k,k+2)
③___________
k=k+1
print(“共有”+str(c)+“对双胞胎数”)
28.请编写Python程序,实现如下功能需求:
1)程序运行后,给出文字提示:
“请输入一个正整数:
”
2)输入一个整数n按回车后,程序输出从1-n所有整数中既是3的倍数又是5的倍数的数。
3)不要超过5行代码。
程序运行举例:
29.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。
请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。
30.操作说明:
打开文件“Y:
/1/1.py”,将程序补充完整,不得增加,删除语句、或改变程序原有结构,操作结束后保存。
以下程序段的功能是:
根据从键盘上输入的表示星期几的数字,若输入的数