
一、程序填空
1.已知圆柱体的底面半径为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)请找出程序中的错误代码,并改正。
____________________________________________
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.将下列程序代码补充完整:
某同学参加了学校体检,体检的医生告诉他体重超重,需要加强运动。该同学了解到运动时,心率如能控制在一定范围内,对增强心血管系统和呼吸系统的功能都有很好的效果;超出范围,对身体反而会有损伤。男最适宜运动心率=(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(“运行完毕,请按回车键退出...”)
4.阅读程序。分析条件语句的代码并回答问题。
(1)如果不能使用int()函数,那么变量s的类型将会变成 ______ 。
(2)如果你的期末成绩是85,你得到的评价将会是____________ 。
(3)如果你的期末成绩是55,你得到的评价将会是____________ 。
(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。
(5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
5.以下是计算s = 1+6+11+...+ 101的程序代码,请补全程序。
s=0
for i in range(1,102, ):
s=
print( s)
请补充完成上述程序①_________ ②_________
6.分析完善程序
已知包含25项的数列: 1,2/3,3/5,....,24/47,25/49。
问题1 :写出该数列的通项公式f(n)= _①
问题2 :以下是计算S=1+ 2/3+3/5+ ... + 24/47+ 25/49的程序,请补全代码:
s=0
for i in range(1,26):
s=s+ ②
print(“s=”,s)
补充完成上述通项公式和程序:
①f(n)=_________
②___________
7.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。
8.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:能被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”为当年的第_____天。
9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
10.输入n,计算s=1!+2!+...+n!的未6位(不含前导0)。N<=1000000,n!表示前n个正整数之积。
11.求100以内素数。
12.编写一个程序,实现九九乘法口诀表。
13.操作说明:编写一个程序实现以下功能,将程序以“Y:/3/3.py”作为文件名保存。
题目:设计100以内的数中能同时被3或5整除的个数。
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.程序设计:唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,在天庭里身高正好为1000米的那位神仙可以降伏此妖。于是悟空立刻来到天上,在玉皇大帝的神仙册上看到了按身高从矮到高排列有10000个神仙。由于时间紧迫,悟空想用最短的时间找到这位神仙,这样才可以尽快解救唐僧。
代码如下:
List=list(map(int,input(“请按身高递增顺序依次输入10000个神仙的身高”).split()))
left=1
right=10000
while ①
mid= ②
if List[mid]==1000:
③
elif List[mid]<1000:
④
else:
⑤
print(“能帮孙悟空的神仙在第{0}位上”.format(mid+l))
(1)程序代码中①处正确的代码是(_______)。
A.left<right B.left<=right C.left!=right D.left>right
(2)程序代码中②处正确的代码是(_______)。
A.(left+right)/2 B.(left+right)\\2
C.(left+right)//2 D.(left+right)\\\\2
(3)程序代码中③处正确的代码是(_______)。
A.pass B.print(mid)z C.break D.continue
(4)程序代码中④处正确的代码是(_______)。-
A.left=mid B.right=mid C.left=mid+1 D.right=mid-1
(5)程序代码中⑤处正确的代码是(_______)。
A.left=mid B.right=mid C.left=mid+1 D.right=mid-1
16.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。
17.有如下程序段:
sum=0
for i in range(1,20,3) :
sum+=i
print(“sum=”,sum)
(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。
(2)该程序执行后,输出的结果为:____________________。
18.小敏有10万元本金,想要购买银行保证收益型理财产品。每年到期后连本带利仍购买此种理财。请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。(例如输人:5.15%,输出:14年后收益超过本金。)
1 s=input("请输入年利率:")
2 rate=float(s[:-1])*0.01
3 money=100000
4 year=0
5 while money<=200000:
6 money=round( ),2)
7 year=year+1
8 print(year,"年后收益超过本金。”)
(1)程序第6行下划线处应填入___________。
(2)程序第2行的作用是____________,并赋值给变量 rate。
(3)该程序主要是通过while实现____________结构。
19.某种数据加密方法描述如下(加密前数据是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 |
(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
20.小强开展网上直播售货,为此购买了以下直播硬件设备:①手机②耳机③自拍杆④数码照相机⑤背景画⑥无线路由器
请回答下列问题:
(1)在购买的直播硬件设备中,属于模数转换的设备是__________(多选,填序号)
(2)小强选择借助某著名直播平台售货,根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,问小强家目前10Mbps的宽带__________(选填:能/不能)满足直播要求。请列式证明__________。
(3)小强将某一天的售货情况从平台导出,保存为文件shqk.xlsx.数据已按“流水号”升序排序,如图a所示。流水号为2019030602的售货记录中,已成交的商品类别数是__________(填写数字),该流水号的总利润是__________元(填写数字,保留1位小数)
图a
(4)为了快速了解各类别商品的利润,小强用python编程处理。处理的结果界面如图b所示。部分代码如下,请在①②划线处填写合适的代码。
图b
import pandas as pd
import numpy as np
import matplotlib. pyplot as plt
detail=pD.read_excel (___)
print(detail)
for i in range(len(detail[:])):
if detail[‘成交与否’][i]==1:
detail[‘lirun’]=___
dg=detai1[[‘类别’, ‘lirun’]]. groupby(by=‘类别’)
print(“总利润”,detail[‘lirun’].sum())
’数据可视化代码略
21.学校开展“奇妙的数字”研究性学习活动。张轩小组4人决定把课题定为《探秘水仙花数》。
(1)张轩使用百度搜索引擎搜索到“水仙花数”是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153 = 13+53+33,那么这个数就是一个“水仙花数”。百度属于____搜索引擎(全文,分类)
(2)为了求解100--999这些数字中,哪些数字是“水仙花数”?张轩小组进行了算法设计,并使用python编写了一段程序来求解所有的“水仙花数”,程序和运行结果下图:
k是可以重新赋值的,k是变量还是常量?____程序中①处有空缺,请补充完整①处的代码。____程序中逐一验证了100到999之间所有的三位数是否符合“水仙花数”的定义条件,这种算法叫做______(解析法,枚举法,递归法,二分法)。
(3)在研究成果展示环节, 张轩小组可以使用什么软件制作《探秘水仙花数》的研究成果报告? (_____)
22.学习了Python绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。
代码如下:
import turtle
turtle. bgcolor("black")
colors=["red", "green", "blue", "yellow"]
for x ① range(100):
turtle. pencolor(colors[x%4])
turtle. circle(x)
turtle. left(90)
请分析任务,完成下列题目。
(1)程序中①处应填写(________) 。
A.print B.input C.in D.colors
(2)程序中x%4的作用是(________)。
A.计算x乘以4的结果
B.计算x除以4的整数部分
C.计算x除以4的小数部分
D.计算x除以4的余数
(3)执行此程序,绘制出圆形的总颜色数是(________)。
A.1 B.4 C.5 D.100
(4)执行此程序,绘制出圆形的总个数是(________)。
A.1 B.4 C.99 D.100
(5)此程序属于程序设计结构中的(________)。
A.顺序结构 B.分支结构
C.循环结构 D.跳转结构
23.某企业开展“运动打卡 动动有奖”活动:若员工在本月累计运动时间30小时以下,奖励0元;达到30但不足45小时奖励300元;达到45但不足60小时奖励450元;60小时及以上奖励500元。小强用python编写程序实现相关功能:输入某员工本月累计运动时间(时),输出其能获得的奖励金额。
(1)实现上述功能的程序如下,请在划线处填入合适的代码。
t=int(input(“请输入您本月累计运动时间(时):”))
if t<0:
print(“输入错误”)
else:
if t<30:
①_
elif t<45:
m=300
②_____
m=450
else:
m=500
print(“您的奖励是:”,m)
(2)当输入“-1”时,输出信息为_________(选填,填字母:A.输入错误 / B.您的奖励是:0 / C.您的奖励是:500)
24.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用python程序来完成这些作业呢?请帮小金完成代码编程.
def convert(s):
m=0
le=len(s)
key=s[le-1]
if key=="B":
n=2
elif key=="D":
_______
else:
n=16
i=0
while i<=le-2:
c=s[le-1-i]
if c>="0"and c<="9":
a=ord(c)-ord("0")
elif c>="A"and c<="F":
a=ord(c)-ord("A")+10
_____________
i+=1
return m
s=input("请输入算式")
result=0;suanfu1="";suanfu2="";s1=""
for i in range(len(s)):
c=s[i]
if c=="+" or c=="-" or c=="=":
__________
suanfu1=suanfu2
suanfu2=c
if suanfu1=="":
result=t
if suanfu1=="+":
result=result+t
if suanfu1=="-":
result=result-t
s1=""
else:
s1=s1+c
print("计算结果为"+str(result)+"D")
(1)将程序横线处补充完整
(2)如输入“1110B+10D-30H=”则输出结果为___________。
25.“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。
小明利用枚举算法解决“百元买百鸡”问题。用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?
假设公鸡有X只,母鸡有Y只,小鸡有Z只。
以下Python程序段实现了“百元买百鸡”的功能,请补全①②③处代码。
c = 0
for x in ____① :
for y in range(1,33):
z = 100-x-y
if ______② :
print("公鸡:",x,"母鸡:",y,"小鸡:",z)
_____③
print("共有买法",c,"种")
26.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。
def isprime(x):
for i in range(2,x):
if①__________:
return False
return True
n=int(input(“请输入一个正整数n:”))
c=0
k=3
while k<=n-2:
if isprime(k) and②___________:
print(k,k+2)
③___________
k=k+1
print(“共有”+str(c)+“对双胞胎数”)
27.(项目情境)水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3 = 153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
(问题求解)设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。print ("三位数之内的水仙花是:")
for x in _____ :
b=x//100
s=_____
g=_____
if x==(b**3 + s**3 + g**3):
_____
28.某仓库物品代码格式为“X-XXXXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。用Python设计一个程序,输入物品代码,判断输入的代码中校验码是否正确,如果正确输出“正确”,否则输出“错误"。运行样例如下所示:
样例1:
输入:2-163-91475-4
输出:正确
样例2:
输入:2-163-91475-5
输出:错误
(1)Python程序实现如下,请在划线处填入正确的代码:
s=input("输入物品代码: ")
a=[]
for i in range (0, 13):
if ___
a. append(int (s[i])) #append( )函数用于在列表末尾添加新的对象
sum=0
for i in range(0, 9) :
____
sdm=sum%10
___
if sdm==ydm :
print("正确")
else:
print("错误")
29.(项目情境)一元二次方程ax2+bx+c=0(a≠0),当b2-4ac≥0,方程有两个不同的实数根,当b2-4ac<0时,方程无实数根。
(问题求解)下面的python程序实现的功能是判断方程是否有实数根。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
import math
a=int(input("请输入a的值:"))
b=int(input("请输入b的值:"))
c=int(input("请输入c的值:"))
d=_____ #将表达式b2-4ac的值赋给变量d
if ____
print("x1=",(-b+math.sqrt(d))/(2*a)) #输出方程的其中一个实数根
print("x2=(_________) #输出方程的另一个实数根
else:
_________ #输出“方程无实数根”
30.程序设计:在舞会上,男生、女生各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。跳完后的两人重新回到队尾。
例如: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
【参】***试卷处理标记,请不要删除
一、程序填空
1.顺序结构 pi=3.14 r=float(input(“请输入半径r:”)) 整型和实数型不能直接运算,结果会有误差 h=float(input(“请输入高h:”))
【详解】
本题主要考查Python程序执行与调试。①分析程序可知,解决问题的程序用到的控制结构有:顺序结构。②圆周率定义为:3.14,故第二空填pi=3.14。③r=float(input(“请输入半径r:”)) 整型和实数型不能直接运算,结果会有误差 h=float(input(“请输入高h:”))。
2.[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。
3.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。
4.字符串类型 你及格了喔 表现不错 程序结束 不及格 学习方法可能不对 程序结束 60 80 错
【详解】
本题主要考查Python编程。① input() 函数接受一个标准输入数据,返回为 string 类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔 表现不错 程序结束”;③输入期末成绩为55时,满足小于60及大于等于30,因此此处输出为“不及格 学习方法可能不对 程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。
【点睛】
5.s+i
【详解】
本题主要考查Python循环结构。题目要求计算1、6、11.. 101等差数列之和,其中公差为5,因此①为5;s变量用于记录等差数列之和,需进行累加计算,因此②为s+i。
【点睛】
6.n/(2*n-1)或n/(n*2-1) i/(2*i-1) 或 i/(i*2-1)
【详解】
本题主要考查Python程序的执行与调试。①分析数列可知,分子第n项是n,分母第n项是2*n-1,故该数列的通项公式f(n)=n/(2*n-1)或n/(n*2-1)。②此处是对前n项进行求和,变量是i,使用语句s=s+i/(2*i-1) 或s=s+ i/(i*2-1),故此处填i/(2*i-1) 或 i/(i*2-1)。
7.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
8.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天。
9.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)
10.s=0
n=eval(input(" 请输入一个数:"))
for i in range(0,n):
f=1
for j in range(1,i):
f=f*j
s+=f
print(s%1000000)
【详解】
本题主要考查Python程序设计。可以通过嵌套for循环实现题干要求,外层循环进行求和,内层循环实现阶乘,具体代码如下:
s=0
n=eval(input(" 请输入一个数:"))
for i in range(0,n):
f=1
for j in range(1,i):
f=f*j
s+=f
print(s%1000000)
11.for i in range(1,100):
if i > 1:
for j in range(2,i):
if (i % j) == 0:
break
else:
print(i)
【详解】
本题主要考查Python程序设计。可以通过for循环找出100以内的素数,用i依次整数2~i-1,如果能整除表明i不是素数,否则i为质数,具体代码如下:
for i in range(1,100):
if i > 1:
for j in range(2,i):
if (i % j) == 0:
break
else:
print(i)
12.for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"="+str(i*j),end=" ")
print("")
【详解】
本题主要考查Python程序的执行。九九乘法口诀表可以通过嵌套for循环实现,内层循环完一次,执行print("")换行,具体代码如下:
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"="+str(i*j),end=" ")
print("")
13.c=0
print("能同时被3或5整除的数是:",end=" ")
for i in range(1,101):
if i%3==0 and i%5==0:
c+=1
print(i,end=" ")
print("")
print("能同时被3或5整除的个数是:"+str(c))
【详解】
本题主要考查Python程序设计。设计100以内的数中能同时被3或5整除的个数,使用for循环变量i的范围是从1~99,用变量c统计能同时被3或5整除的个数,如果满足if判断条件,则变量c递增,循环完输出c的值,具体代码及运行结果如下:
14.champion 3 i
【详解】
本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为冠军,故此处填i。
15.B C C C D
【详解】
本题主要考查二分查找算法及Python程序实现。①二分查找的循环条件是left<=right,故选B选项。②此处是取中间值,需要整除2,故填(left+right)//2 ,故选C选项。③如果mid对应的列表值是1000,表示已找到,则用break跳出循环,选C选项。④如果mid对应的列表值小于1000,则需要更新left的值为mid+1继续循环,选C选项。⑤否则更新right的值为mid-1,选D选项。
16.price=int(input("请输入消费额(整数):"))
if price < 200:
price=price-price*0.1
else:
price=price-price*0.2
print("折扣后的应付金额是:",price)
【详解】
本题主要考查Python程序的执行与调试。用键盘通过输入函数input输入消费额,并用int函数将其转换为整数类型,通过if条件分支结构,判断如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣,最后用print输出函数输出折扣后的应付金额。
17.初值为1 终值为:20 步长为:3 sum=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。
18.money*(1+rate) 将输入的字符串年利率由百分制转换为浮点数 循环
【详解】
本题主要考查Python程序设计。①round(x,n)函数是将x取n位,此处是计算当前年份的收益,收益=本金+本金*年利率,故填money*(1+rate),并将结果取2位。②程序第2行的作用是将输入的字符串年利率由百分制转换为浮点数,并赋值给变量 rate。③该程序主要是通过while实现循环结构。
19.①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))”。
20.①④ 不能 1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。 1 2或2.0 ‘shqk. xlsx’或“shqk. xlsx” (detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’]
【详解】
本题主要考查Python程序设计相关知识点。①手机、数码照相机均属于模数转换的设备,可以实现模拟信号与数字信号的转换,故填①④。②根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,小强家目前10Mbps的宽带不能满足直播要求。③视频存储容量=像素*颜色深度*帧频*时长,1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。④由图可知,1表示成交,0表示未成交,流水号为2019030602的售货记录中,已成交的商品类别数是1,都是饮料(即货号17和货号5)。⑤该流水号的总利润是(2.9-2.5)*3+(1-0.8)*4=2.0,故填2或2.0。⑥该表格文件名是shqk.xlsx,此处读入该表格文件,故填‘shqk. xlsx’或“shqk. xlsx”。⑦利润=(售价-进价)*数量,数据已经读到detail中,故此处填(detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’]。
21.全文 变量 k+1 枚举法 Word/WPS/PowerPoint等
【详解】
本题主要考查Python程序的执行与调试。①百度属于全文搜索引擎,也是关键词搜索。②变量可以反复赋值,故k是变量。③循环体执行完,k递增,继续找水仙花数,故此处填k+1。④逐一验证了100到999之间所有的三位数是否符合,这种算法叫做枚举法。⑤在研究成果展示环节, 张轩小组可以使用Word/WPS/PowerPoint等软件制作《探秘水仙花数》的研究成果报告。
22.C D B D C
【详解】
本题主要考查Python程序调试。①Python程序for循环格式是:for 变量 in range( ),故程序中①处应填写in,选C选项。②程序中x%4的作用是计算x除以4的余数,选D选项。③colors=["red", "green", "blue", "yellow"],依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。⑤此程序属于程序设计结构中的循环结构,选C选项。
23.m=0 elift<60: A
【详解】
本题主要考查Python程序的执行与调试。①若员工在本月累计运动时间30小时以下,奖励0元,即m=0。②达到45但不足60小时奖励450元,故填elift<60:。③-1<0,不是有效值,故输出信息为“输入错误”,故本题选A选项。
24.n=10 m=m+(n**(le-2-i))*a t=convert(s1) -24D
【详解】
本题主要考查Python程序的执行与调试。①二进制的权值是2,十进制的权值是10,十六进制的权值是16,此处是十进制的情况,故填n=10。②二进制、十六进制转化为十进制的方法是“按权展开、逐项相加”,从右往左加,变量i的初值等于0,故此处要变换为le-2-i,故此处填m=m+(n**(le-2-i))*a。③当字符c是“+”、“-”、“=”时,则表明第一个运算数已全部保存到变量s1中,此处需要将其转化为十进制保存到变量t中,故填t=convert(s1)。④1110B转化为十进制数是14D,30H转化为十进制数是48D,故1110B+10D-30H=-24D。
25.range(1,20) 5*x+3*y+z/3 == 100 c = c+1
【详解】
本题考查的是python编程。X代表的是公鸡,公鸡5元一只,所以此处的range函数为range(1,20),左闭右开区间。if条件是满足三种鸡的总价格为100元的条件,故答案为5*x+3*y+z/3 == 100,注意这里是一个判断条件,用==表示。c代表的是有几种购买方案,当if条件满足时,即满足一种方案,执行方案数加1,c=c+1。
26.x%i==0或x//i==x/i或其他等价表达式 isprime(k+2)或isprime(k+2)==True c=c+1或c+=1
【详解】
本题主要考查Python程序的执行与调试。①isprime(x)函数判断x是不是素数,此处通过for循环判断(用x依次除i,看能不能整除,i的范围时从2~x),故填x%i==0或x//i==x/i。②此处判断相差2的两个数是不是素数,若是,则输出这两个数,故此处填isprime(k+2)或isprime(k+2)==True。③c用来统计双胞胎数的对数,若满足是双胞胎数的条件,故此处填c=c+1或c+=1。
27.range(100,1000) x//10%10 x%10 print ("三位数之内的水仙花是:"+str(x))
【详解】
本题主要考查Python程序的执行与调试。①水仙花数是指一个三位数,即[100,999],for x in range(100,1000)表示x的范围是100-999,故此处填range(100,1000)。②变量g、s、b分别存放个位、十位、百位上的数,故s=x//10%10(“//”表示整除,“%”表示取余)。③g=x%10。④如果满足 x==(b**3 + s**3 + g**3),则输出“三位数之内的水仙花是:x”,故此处填print ("三位数之内的水仙花是:"+str(x))。
28."0"<=s[i]<="9" 或s[i] in "01234567” sum=sum+a[i]*(i+1) ydm=a[9]
【详解】
本题主要考查Python程序执行与调试。①变量s保存商品仓库物品代码,若s[i]是数字则进入循环判断,否则跳过,故此处判断条件是"0"<=s[i]<="9" 或s[i] in "01234567”。②校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,用变量sum统计,故此处填sum=sum+a[i]*(i+1)。③变量sdm是计算得到的校验码,变量ydm是输入的校验码,此处需要将校验码a[9]赋给变量ydm,故填ydm=a[9]。
29.b*b-4*a*c或b**2-4*a*c d>=0 -b-math.sqrt(d))/(2*a) print("方程无实数根")
【详解】
本题主要考查Python程序的调试。①此处将表达式b2-4ac的值赋给变量d,故填b*b-4*a*c或b**2-4*a*c。②当b2-4ac≥0,方程有两个不同的实数根,故此处if判断条件是d>=0。③当b2-4ac≥0时,方程的两个根分别为x1=(-b+math.sqrt(d))/(2*a),x2=(-b-math.sqrt(d))/(2*a),故此处填-b-math.sqrt(d))/(2*a)。④else部分,即x<0时,输出“方程无实数根”,故此处填print("方程无实数根")。
30.C A B
【详解】
本题主要考查队列数据结构及Python程序。①队列是从队头出队,队尾入队,使用pop函数出队,队头的索引值是0,故此处填boy.pop(0),girl.pop(0)。②队列入队使用append方法追加到队列尾,此处是男生入队boy.append(x),故选A选项。③同理,此处是女生入队girl.append(y),故选B选项。
