试题python二级基本考点word程序填空阅读填空程序试题Word下载.docx
《试题python二级基本考点word程序填空阅读填空程序试题Word下载.docx》由会员分享,可在线阅读,更多相关《试题python二级基本考点word程序填空阅读填空程序试题Word下载.docx(33页珍藏版)》请在冰点文库上搜索。
cs=int(input(“重新猜一个靠谱的数字是:
”))
print(“游戏结束,不玩了!
5.调试程序。
请阅读以下程序并写出运行结果。
fruites=['
banana'
'
apple'
mango'
]
forfruitinfruites:
print(fruit)
a=len(fruites)
print('
a='
a)
_________________
6.调试程序。
#ex16.py
i=0
sum=0
whilei<
10:
ifi%3==0:
sum+=i
print(i)
i=i+1
sum'
sum)
_________
7.阅读程序。
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("
%(i,j,i*j),end="
),则本题的输出应该是_____。
(5)如果最后一行的print()表示换行,那么end=””的功能是_______。
8.编写程序。
信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。
9.以下是计算s=1+6+11+...+101的程序代码,请补全程序。
s=0
foriinrange(1,102, ):
s=
print(s)
请补充完成上述程序①_________②_________
10.分析完善程序
已知包含25项的数列:
1,2/3,3/5,....,24/47,25/49。
问题1:
写出该数列的通项公式f(n)=_①
问题2:
以下是计算S=1+2/3+3/5+...+24/47+25/49的程序,请补全代码:
foriinrange(1,26):
s=s+②
print(“s=”,s)
补充完成上述通项公式和程序:
①f(n)=_________
②___________
11.分析完善程序
某市出租车收费标准如下:
(1)3公里内(含3公里),收费8元
(2)超过3公里但未超过6公里部分,按1.5元/公里收费
(3)超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?
[算法分析]
假设总费用为p,则可以分段计算
p=8‘(s≤3)
p=1.5*(s-3)+8‘(3<
s≤6)
p=2.25*(s-6)+1.5*3+8‘(s>
6)
[参考代码]
a=float(input(“s=”))
ifs<
=3:
p=8
if
p=1.5*(s-3)+8
ifs>
6:
p=2.25*(s-6)+1.5*3+8
print(p)
根据上述回答如下问题:
(1)本题采用的算法是________(填:
解析法/枚举法/排序法/递归法)。
(2)程序代码中空白处应填写的条件是_______(填:
A/B/C/D)。
A.3<
s<
=6B.3<
=s<
=6C.s>
3ands<
6D.s>
3Ors<
=6
12.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。
得到的数字应按逗号分隔的顺序打印在一行上。
提示:
考虑使用range(#begin,#end)
13.输入三个同学的成绩,然后大到小排列。
14.请在空格处填写正确的代码,使程序完善。
实现功能:
用辗转相除法求解两个正整数的最大公约数。
x=int(input('
请输入第一个正整数:
'
))
y=int(input('
请输入第二个正整数:
m=max(x,y)#找出x,y中的最大值
n=min(x,y)#找出x,y中的最小值
r=m%n#求得最大值除以最小值后的余数
whiler!
=0:
#如果余数不等0,则进行以下循环
m=________#把最小值赋给m
n=_________#把余数赋给n
r=m%n#求得最大值除以最小值后的余数
这两个数的最大公约数为:
______)
input("
运行完毕,请按任意键退出...."
15.小王编写了“字符串缩写”程序,实现如下功能:
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)
划线处①处应该填入的语句为:
;
划线处②处应该填入的语句为:
划线处③处应该填入的语句为:
。
16.学校气象小组使用自动测温仪在校园测量了1月12日的气温,并利用Python绘制了这天的气温图,该图如下所示:
(1)在以上Python程序中,变量Y的数据类型是_________。
(2)在以上Python程序中,第8行横线处的代码是_________。
(3)通过观察,气温釆样间隔时间是_________个小时。
17.有如下程序段:
sum=0
foriinrange(1,20,3):
print(“sum=”,sum)
(1)循环变量i的初值为:
_________,终值为:
_________,步长为:
__________。
(2)该程序执行后,输出的结果为:
____________________。
18.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。
下面的程序能实现上述的功能,请将缺失的代码补充完整。
total=every_year=20000
year=1
while__________________:
every_year+=____________
total+=every_year
year+=1
print(year)
19.辗转相除法,又称欧几里德算法,用于计算两个正整数m、n的最大公约数。
它是已知最古老的算法,其可追溯至公元前300年前。
辗转相除法的算法步骤是,对于给定的两个正整数m、n(m>
n),用m除以n得到余数r,若余数r不为0,就将n和r构成新的一对数(m=n,n=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。
因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。
小曲设计了辗转相除法的算法,请根据下面算法回答问题。
描述一
描述二
描述三
①输入两个正整数m,n(m>
n);
②计算m除以n所得的余数r;
③m=n,n=r;
④若r=0,则m,n的最大公约数等于m;
否则转到步骤②;
⑤输出最大公约数m;
⑥结束。
(1)描述一是________描述法;
描述二是流程图描述法;
描述三是计算机程序语言描述法。
(2)在描述三中代码4到6行作用是__________。
(3)在描述三程序设计中,补充代码第8行划线处为__________。
20.密码强度检测。
编写python程序,实现如下功能:
输入要检测的密码,输出密码强度结果。
密码字符分为数字字符、字母和其他符号三类。
密码强度的检测方法为:
若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!
若密码位数在8位及以上,则进行强度检测:
若密码字符属于同一类字符,则密码强度为“弱”;
若密码字符属于不同的二类字符,则密码强度为“中等”;
若密码字符属于不同的三类字符,则密码强度为“强”。
(1)若输入“12abcd5!
”,则输出结果为_________(选填,选字母:
A.密码位数不能少于8位,请重新输入!
/B.弱/C.中等/D.强)
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
password=input(“请输入要检测的密码:
①_______________
ifn<
8:
print(“密码位数不能少于8位,请重新输入!
else:
n1=0
n2=0
n3=0
foriinrange(0,n,1):
②_______
if“0”<
=ch<
=“9”:
n1=1
elif“a”<
=“z”or“A”<
=“Z”:
n2=1
else:
n3=1
③_____
ifx==3:
print(“强”)
elifx==2:
print(“中等”)
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
第"
+str(c)+"
对双胞胎数:
k,'
和'
k+2)
_______
共有"
+str(c)+"
对双胞胎数"
22.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。
使用Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2
图1
图2
实现上述功能的Python程序如下:
importpandasaspd
importitertools
#读数据到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[‘学校代码’]=‘比例’
forkinkm:
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)加框处语句的作用是__________________
23.阅读程序。
分析以下关于字符拼接与转换的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))的输出结果是__________。
24.设计完成算法之后,小C打算用所学的Python程序设计语言完成程序的编写。
(1)Python程序设计语言属于程序设计语言中的_______________。
A.机器语言B.汇编语言C.高级语言D.翻译程序
(2)小C将设计好的算法转为Python程序语言(如下)。
其中“Tot2=8”是一个___________,“#初始化时长费为0”是一个__________,“S<=3.3”是一个___________,“float(input(“请输入时长”))”是一个__________。
A.函数B.表达式C.赋值语句D.注释语句
1Tot1=0#初始化时长费为0
2Tot2=0#初始化里程费为0
3S=float(input(“请输入里程数”))
4T=float(input(“请输入时长”))#输入里程数和时长
5if(T>
9):
#计算时长费用
6Tot1=(T-9)*0.2
7if(S<
=3.3):
#算里程费用
8Tot2-8
9else:
10Tot2=8+(S-3.3)*1.35
11Cost-Totl+tot2
12print(Cost)#输出总车费
(3)小C写好代码之后,编译运行发现报错了,根据下图中所示的错误信息分析该程序报错的原因是:
____________________________________________________________________________________________。
NameErrorTraceback(mostrecentcalllast)
<
ipython-input-2-fc682f6f4658>
in<
modu1e>
9else:
10
—→11Cost=Tot1+tot2
12
NameError:
name’tot2’isnotdefined
(4)经过修改之后,小C对照某次滴滴打车的订单,将对应的公里数和时长输入程序,运行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。
小C借助于计算机编写程序解决问题的这个过程是:
①设计算法②编写程序③分析问题④调试运行程序,合理的顺序是_________。
(填写序号即可)
(5)总结用计算机解决问题的优势主要有:
_______________________________________________。
25.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。
文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。
请根据流程图的每个步骤,填写程序段编号,如A:
⑦B:
①D:
③。
现填写C、E、F、G对应的程序段编号.C:
__________E:
__________F:
__________G:
__________
图a
图b
图c
图d
26.编写Python程序实现如下功能:
输入年月日,输入格式如“2021-06-21”,年月日之间用“-”分隔。
判断这一天是这一年的第几天。
以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的第几天。
特殊情况,当输入的年份是闰年时,2月份有29天。
闰年的判断方式如下:
I、能被4整除,但不能被100整除;
II、能被400整除;
(1)“2020-05-20”这一天是这一年的第_________天。
(2)编写Python代码如下,在划线处填入正确的代码
(3)加框处的代码有误,请改正。
改正:
mon=[31,28,31,30,31,30,31,31,30,31,30,31]#mon中存储1-12每个月的天数
请输入年月日:
month=int(s[5:
7])
①
foriinrange(②):
sum+=mon[i]
sum+=day
if
:
isleap=True
else:
isleap=False
if③
sum+=1
这一天是当年的第"
+str(sum)+'
天'
27.使用Python自身提供的IDLE集成开发环境录入以下代码及调试
运行,检测结果。
#鸡兔同笼
forxinrange(1,23):
y=35-x
if4*x+2*y==94:
兔子有%s只,鸡有%s只"
%(x,y))
特别提示:
代码录入完毕,调试运行,检测错误,讨论错误原因,上网查找错误格式的处置办法,直至能正确输出结果。
28.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。
编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。
29.小明用Python语言写了一个货币兑换程序如下:
(1)参数currency指:
____________。
(2)该程序用了哪一种算法结构:
_____________。
(3)输出结果为“50$=325.25人民币”。
则代码应该如何编写:
30.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。
【参考答案】***试卷处理标记,请不要删除
1.ori+1
【详解】
本题主要考查Python程序执行与调试。
①分析程序可知,程序采用枚举的算法找出该数,当不满足条件时,i递增继续判断,故i的初始值是0,第一空填0。
②一个数除以3余2,除以5余3,除以7余2,此处是取不满足情况时,i递增,and取反变为or,故第二空填or。
③同理第三空填i+1。
2.[0.0325,0.03,0.03,0.02,0.0175]iinrate:
(没有冒号算错误)money=round(money*(1+i),2)100000