【编程】计算机二级Python真题及答案解析5程序填空阅读填空程序试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【编程】计算机二级Python真题及答案解析5程序填空阅读填空程序试题
一、程序填空
1.程序设计:在舞会上,男生、女生各自排成一队。
舞会开始时,依次从男队和女队的队头各出一人配成舞伴。
跳完后的两人重新回到队尾。
例如: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
2.请在空格处填写正确的代码,使程序完善。
实现功能:绘制y=x2-2x+ 1的图像
#加载numpy模块并限简洁的别名为np
import numpy as np
#加载matplotlib.pyplot模块并限简洁的别名为plt
import matplotlib.pyplot as plt
#x在-7到9之间,每隔0.1取一个点
x=np.arange(-7,9,0.1)
_____ = x**2-2*x+1
plt.plot(x,________)
plt.title('y=x*x-2*x+1')
plt.xlabel('x')
plt.ylabel('y')
plt._________
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.完善程序。
以下是计算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)
6.编写程序,找到并输出100以内的素数。
7.分析完善程序
[背景知识]为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。
如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。
(提示:①所有车牌号中都含有数字,并且车牌号的长度都是6;②以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。
)如:
请根据上述算法描述补全代码
s=input("车牌号s=")
n=6
x=s[n-1:n]
while x.isdigit()== False:
①
x=s[n-1:n]
if ② ==0:
print(“双号”)
else:
print(“单号”)
(提示: s[n:m]的功能:从字符串s的
下标为n的元素开始,截取到下标为m-1的元素。
例如: s=" 12345" ,s[2:4]=" 34" 。
s.isdigit) :判断是否为数字。
)
(1)根据题意,程序中空白①处应填写:______
(2)根据题意,程序中空白②处应填写:______(填: A/B/C/D )。
A.int(x)/2==0 B.int(x)%2 ==0 C.int(x)%2=0 D.int(x)%2!=0
8.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。
9.利用for循环,分别计算1--100中奇数的和、偶数的和。
10.哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之
和,请完善代码帮助哥德巴赫验证他的猜想。
import math
def ss(n):
Flag=True
i=2
while i <= int(math.sqrt(n))and Flag:
if _____________
Flag = False
_____________
return Flag
n=int(input(“输入一个大于2的偶数”))
for i in rang(2,n//2+1):
if____________
print(str(n)+"="+str(i)+"+"+str(n-i))
如果输入“8”则结果显示_____
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 ______:
for i in range(month-1):
tall_day +=f_run[i]
__________
else:
for i in range(month-1):
tall_day +=f_run[i]
tall_day += sun
print(day+"是当年的第"+str(tall_day)+"天")
(1)将程序横线处补充完整
(2)如输入“2020-4-19”为当年的第_____天。
12.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。
13.求水仙花数(一个三位数,其各位数字立方和等于该数字本身)
14.冠军在A、B、C、D四位同学中。
A说:“不是我”,B说:“是C”,C说:“是D”, D说:“C说的不对”,已知四人中有一人说了假话。
判断出到底谁是冠军。
请在空格处填写正确的代码,使程序完善。
champion=['A','B','C','D'] #设置选手列表
for i in__________: #循环读取选手编号
cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手
if cond== _____: #说真话是否是3人
print("冠军是:",_________) #输出冠军
input("运行完毕,请按回车键退出...")
15.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
16.学校气象小组使用自动测温仪在校园测量了1月12日的气温,并利用Python绘制了这天的气温图,该图如下所示:
(1)在以上Python程序中,变量Y的数据类型是_________。
(2)在以上Python程序中,第8行横线处的代码是_________。
(3)通过观察,气温釆样间隔时间是_________个小时。
17.(最大公约数)用辗转相除法求两个正整数的最大公约数。
代码如下:
def gcd (m,n):
r=
while r!=0:
m=n
n=
return
a=int(input(‘请输入a的值:’))
b=int(input(‘请输入b的值:’))
print(‘最大公约数是:' )
填空:
________ ________ ________ ________ ________
18.完善程序实现以下功能并保存。
输出数组的最大值。
arr1 =[12, 435, 76, 24, 78, 54, 866, 43]
________ = -32768
for i in range(0,7):
if arr1[i] > max1 : max1 = ________
print("最大值是:", ________)
input("运行完毕,请按回车键退出...")
19.有如下程序段:
sum=0
for i in range(1,20,3) :
sum+=i
print(“sum=”,sum)
(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。
(2)该程序执行后,输出的结果为:____________________。
20.现在有一个程序用来解决以下问题:如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?
请将下列程序补充完整。
tc=1020
c=0
while ______________ :
tc=tc-(tc/2+2)
_____________
print(c)
21.现代生活半径的扩大和生活节奏加快使出行成本不断增长。
滴滴快车应运而生,其以灵活快速的响应和经济实惠的价格为大众提供更高效、更经济、更舒适的出行服务,给人们生活带来了美好的变化。
小C是滴滴快车忠实的粉丝,经常出行就提前预约,乘坐滴滴快车。
小C就在思考这个滴滴快车是怎么计费的?可否用所学的Python语言也编写一个计费程序。
于是小C开展了有关这个项目活动的探究。
根据实际情况,回答问题。
(一)收集、分析数据,运用数理思维建模
登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”:
小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)一个算法必须有______________或多个数据输入。
有______________或多个数据输
出。
(选填:零个/一个)
(三)编写、调试、运行程序,验证算法并解决问题________
22.某种数据加密方法描述如下(加密前数据是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各元素的值依次是
数组c36152847则数据位置变换如下:
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进
制表示是010100)的数值变换过程如下:
变换前01110100密钥m00100011变换后01010111
制数据)。
(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
23.密码强度检测。
编写python程序,实现如下功能:输入要检测的密码,输出密码强度结果。
密码字符分为数字字符、字母和其他符号三类。
密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!”。
若密码位数在8位及以上,则进行强度检测:若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同
的三类字符,则密码强度为“强”。
(1)若输入“12abcd5!”,则输出结果为_________(选填,选字母:A.密码位数不能少于8位,请重新输入! / B.弱 / C.中等 / D.强)
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
password=input(“请输入要检测的密码:”)
①_______________
if n<8:
print(“密码位数不能少于8位,请重新输入!”)
else:
n1=0
n2=0
n3=0
for i in range(0,n,1):
②_______
if “0”<=ch<=“9”:
n1=1
elif “a”<=ch<=“z” or “A”<=ch<=“Z”:
n2=1
else:
n3=1
③_____
if x==3:
print(“强”)
elif x==2:
print(“中等”)
else:
print(“弱”)
24.某餐馆近期推出“消费1000元及以上享受8折优惠,1000元以下享受每满100减15优惠”的活动。
以下Python程序段实现了生成顾客消费清单的功能,请补全①②③处代码。
def gs(n): #字符串长度统一
if len(n)>=5:
n=_____ #取字符串的前5个字符
else:
n=n+" "*(5-len(n))
return n
r=1000;x=100;y=15;z=0.8 #从系统中分别获取消费额度、满和减以及打折的数值
dis=["红烧排骨","香炸刀鱼","虾仁","菜心","米饭"] #某顾客所点菜品名称
num=[1,1,1,1,3] #某顾客所点菜品数量
mon=[46,45,68,16,1] #某顾客所点菜品单价
print("菜品名称","数量","小计")
_____
for i in range(len(dis)):
print(gs(dis[i]),num[i]," ",num[i]*mon[i])
s=s+num[i]*mon[i]
if s>=r:
total=s*z
else:
______
print("消费合计:",s)
print("应收现金:",total)
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.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。
这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
[问题求解]设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。
需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。
请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
print ("三位数之内的水仙花是:")
for x in___(100,1000):
b=x//100
s=(x//10)___
g=___
If x=(b**3 +s**3+g**3):
print(___)
27.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。
文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。
请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。
现填写C、E、F、G
对应的程序段编号.C:__________E:__________F:__________G:__________
图a
图b 图c
图d
28.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。
请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。
29.小明用Python语言写了一个货币兑换程序如下:
(1)参数currency指:____________。
(2)该程序用了哪一种算法结构:_____________。
(3)输出结果为“50$= 325.25人民币”。
则代码应该如何编写:____________。
30.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.C A B
【详解】
本题主要考查队列数据结构及Python程序。
①队列是从队头出队,队尾入队,使用pop函数出队,队头的索引值是0,故此处填boy.pop(0),girl.pop(0)。
②队列入队使用append方法追加到队列尾,此处是男生入队boy.append(x),故选A选项。
③同理,此处是女生入队girl.append(y),故选B选项。
2.y y show( )
【详解】
本题主要考查Python程序绘制图像。
①绘制y=x2-2x+ 1的图像,故此处填y。
②根据横纵坐标x和y绘制图,故此处填y。
③此处调用显示函数show( ),故填show()。
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. s=s+k
k=k+5
print(s)
【详解】
本题主要考查Python程序的执行与调试。
s=0,k=1,计算S=1+6+11+…+101,循环条件是k<=101,故循环体应为s=s+k,k=k+5,循环结束后,输出计算结果,故print(s)。
6.参考答案1:
for i in range(2,101):
j=2
while j<=i:
if i%j==0:
break
j+=1
if j<i:
continue
else:
print(i,end=" ")
参考答:2:
for i in range(2,101):
for j in range(2,i):
if(i%j==0):
break
else:
print(i)
【详解】
本题考查是Python语言编程解决问题。
break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。
无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。
这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。
答案中代码的实现过程见下图:
参考答案1:
参考答案2:
7.n=n-1或 n-=1 B
【详解】
本题主要考查算法及Python程序设计。
①此处是判断x是否为数字,若不是数字,则n 递减取前一位字符继续进行判断,故此处填n=n-1或 n-=1。
②当while循环结束,表明此时x为数字,若int(x)%2 ==0,即x为偶数,输出“双号”,否则输出单号,故选B选项。
8.pw=input("请输入密码:")
password="123456"
i=1
while(i<=3):
if pw==password:
print("恭喜你进入系统!")
break
else:
print("请重新尝试:",i)
pw = input("请输入密码:")
i=i+1
【详解】
本题主要考查程序设计。
可以通过Python程序设计语言实现题干要求,可以通过while循环控制三次机会,使用if条件分支结构判断是否输入正确,具体代码如下:
pw=input("请输入密码:")
password="123456"
i=1
while(i<=3):
if pw==password:
print("恭喜你进入系统!")
break
else:
print("请重新尝试:",i)
pw = input("请输入密码:")
i=i+1
9.sum1=0
sum2=0
for i in range(1,101):
if i%2==0 :
sum1+=i
else:
sum2+=i
print(sum1,sum2)
【详解】
本题主要考查程序设计。
可以使用Python程序设计语言实现题干要求,通过if条件分支结构可以实现分别计算奇数的和、偶数的和,具体代码如下:
sum1=0
sum2=0
for i in range(1,101):
if i%2==0 :
sum1+=i
else:
sum2+=i
print(sum1,sum2)
10.n%i==0: i+=1 ss(i) and ss(n-i): 8=3+5
【详解】
本题主要考查Python程序的执行与调试。
①函数ss(n)用来判断n是否为质数,若是则返
回True,否则返回False,此处是通过while循环逐个判断n是不是能整除i,故填
n%i==0:。
②若不满足if条件,则i递增,继续循环判断,故填i+=1。
③此处判断i与n-i是否都是质数,若是,则表明该偶数可以写成两个质数之和,并输出,故填ss(i) and ss(n-i):。
④如果输入“8”则结果显示8=3+5。
11.int(day[5:7]) (year%4==0 and year%100!=0 or year%400==0) and month>=2 tall_day+=1 110
【详解】
本题主要考查Python程序的执行与调试。
①此处是取出字符串day中的月份赋给变量month,month是第5~第6位,str[start:end],start会包含在结果中而end却不会,故此处填int(day[5:7])。
②此处判断是不是闰年,因为闰年的二月有29天,故if判断还要判断当前的月份是不是包含2月即大于等于2月,故此处填(year%4==0 and year%100!=0 or year%400==0) and month>=2。
③如果是闰年且当前日期包括2月,则循环完tall_day需增
加1天,故填tall_day+=1。
④输入“2020-4-19”为当年的第110天。
12.s=input("请输入要转换的字符)
c=len(s) #len 求字符串长度
for i in range(0,c):
if i<2:
print (chr(ord(s[i])+2)) # ord ord() 函数是 chr() 函数配对函数,将字符转ASCII值
else:
print(chr(ord(s[i]) + 3))
【详解】
本题主要考查程序设计。
题干要求可通过Python程序条件分支结构实现,具体代码如下:s=input("请输入要转换的字符)
c=len(s) #len 求字符串长度
for i in range(0,c):
if i<2:
print (chr(ord(s[i])+2)) # ord ord() 函数是 chr() 函数配对函数,将字符转ASCII值
else:
print(chr(ord(s[i]) + 3))
13.for i in range(100,1000):
a=i//100
b= (i//10)%10
c=i%10
if i==a*a*a+b*b*b+c*c*c:
print(i)
【详解】
本题主要考查程序设计。
可通过Python程序设计实现题干要求,通过for循环找出水仙花数,依次取出三位数的每一位数,其中百位a= i//100,十位b= (i//10)%10,个位c=i%10,然后判断是否是水仙花数,具体代码如下:
for i in range(100,1000):
a=i//100
b= (i//10)%10
c=i%10
if i==a*a*a+b*b*b+c*c*c:
print(i)
14.champion3i
【详解】
本题主要考查Python程序的执行。
①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。
②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。
③当cond是3时,i即为冠军,故此处填i。
15.s=1
for i in range(9):
s=(s+1)*2
print(s)
【详解】
本题主要考查Python程序设计。
第10天,只剩下一个桃子s=1,由题干每天早上都吃了前一天剩下的一半零一个,则第9天剩下的桃子为(s+1)*2,可以通过for循环求得第一天共摘了多少个桃子,具体代码如下:
s=1
for i in range(9):
s=(s+1)*2
print(s)
16.list plt.plot(X,Y) 2
【详解】
本题主要考查Python程序调试与执行。
①由代码Y=[6,4,4,3,3,6,9,12,12,11,9,7],可知变量Y的数据类型是list(列表类型)。
②scatter是绘制散点图函数,图中还需要使用绘图函数plot,故第8行横线处的代码是plt.plot(X,Y)。
③通过观察,气温釆样间隔时间是2个小时。
17.m%n r r=m%n n gcd(a,b)
【详解】
本题主要考查Python程序设计。
①首先对m和n求余得到r,判断r是否为0,故此处填m%n。
②如果r为0则结束,否则更新m的值为n,n的值为r。
③此处用更新后的m和n 继续求r,继续判断,故填r=m%n。
④循环结束后当r=0时,n即为最大公约数,故填
n。
⑤输入a、b的值,使用函数gcd求a和b的最大公约数,故填gcd(a,b)。
18.max1 arr1[i] max1
【详解】
本题主要考查Python程序执行与调试。
变量max1用来保存数组的最大值,初始值赋值为最小值-32768,第一空填max1,通过for循环依次比较当数组元素大于max1时,更新max1的值为该元素继续循环直到与所有元素比较完,第二空填arr1[i],最后输出最大值是max1,故第三空填max1。
19.初值为1终值为:20步长为:3sum=70
【详解】
本题主要考查Python循环结构。
由代码for i in range(1,20,3) ,可知循环变量i的初值为1,终值为20,步长为3。
该程序执行后,输出的结果为
sum=sum+i=0+1+4+7+10+13+16+19=70。
20.tc>0c=c+1 或者c+=1
【详解】
本题主要考查Python程序执行与调试。
①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。
②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1 或者c+=1。
21.D Tot1=(T-9)×0.2 Tot2=8 Tot2=8+(S-3.3)×1.35 Cost=Totl+Tot2 第一步:输入实际里程S和实际时长T 第四步:计算应支付费用Cost 第五步:输出应支付费用Cost E A 顺序结构选择结构循环结构顺序结构选择结构零个一个略
【详解】
本题主要考查算法及程序设计。
①小C登录滴滴出行官网搜索并下载“计价规则”,所采用的数字化工具:信息检索工具,故选D选项。
②如果时长超过9分钟,则Tot1=(T-9)
×0.2。
③如果里程小于等于3.3公里则Tot2=8。
④里程大于3.3公里,则Tot2=8+(S-3.3)×1.35。
⑤应支付费用:Cost=Totl+Tot2。
⑥第一步:输入实际里程S和实际时长T。
⑦第四步:计算应支付费用Cost。
⑧第五步:输出应支付费用Cost。
⑨流程图中,表示计算与赋值的是矩形框,即选项E。
⑩表示算法流向的是箭头,即选项A。
算法描述中,用到了三种基本控制结构,分别是⑪顺序结构⑫选择结构⑬循环结构。
如图示中的流程图使用的控制结构是⑭顺序结构⑮选择结构。
⑯一个算法必须有零个或多个数据输入。
⑰有一个或多个数据输出。
⑱略
22.①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))”。
23.D n=len(password) ch=password[i] x=n1+n2+n3
【详解】
本题主要考查Python程序的执行与调试。
①“12abcd5!”含有三类字符,则输出结果为强,选D选项。
②此处取密码的长度,将其赋给变量n,len()是返回字符串的长度,故填n=len(password)。
③ch是取密码的每一位进行判断,故此处填ch=password[i]。
④当出现数字时n1=1,当出现字母时n2=1,当出现其他字符时n3=1,x用来统计有几类字符,故此处填x=n1+n2+n3。
24.n[0:5] s=0 total=s-s//x*y
【详解】
本题主要考查Python程序的执行与调试。
①此处通过条件分支结构取字符串n的前5个字符,当 len(n)>=5时,取n= n[0:5],即索引为0、1、2、3、4,故填n[0:5]。
②用变量s 统计消费合计,初值为0,故填s=0。
③此处else部分处理1000元以下享受每满100减15优惠。
应付金额用total统计,变量r保存消费额度,x和y分别是满和减,变量s是消费合计,故填total=s-s//x*y。
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.range %10 x% 10或x-b*100-s*10或其它同等答案x
【详解】
本题考查的是Python程序设计。
水仙花数是指一个三位数,故使用range函数遍历
100~999;s存放的是十位数,故可以选对x取整后再除以10求余,故第二空应填%10(求余符号%);g是存放个位,直接除以10求余,或减去前面整百和整十的数,故第三空为:x% 10或x-b*100-s*10或其它同等答案;如果找到满足条件的数,则输出,故第四空为:x。
27.②⑤⑥④
【详解】
本题主要考查算法及Python程序实现。
①jieba 模块是一个用于中文分词的模块,lcut 方法直接返回 list,流程图中分词后存入words中对应的代码是words=jieba.lcut(txt),故填②。
②流程图中循环结构对应的是程序中的⑤。
③对counts的值进行排序,可以使用sort方法。