参考答案在文章后边部分,请看到后半部分的答案分割线,非常感谢哦!
一、程序填空
1.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。
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.阅读程序。阅读求水仙花数的代码并回答问题。
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。
for n in range(100,1000):
i=n//100
j=n//100%10
k=n%10
if n==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
for n in range(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.调试程序。请阅读以下程序并写出运行结果。
fruites=['banana','apple','mango']
for fruit in fruites:
print(fruit)
a=len(fruites)
print('a=',a)
_________________
9.调试程序。请阅读以下程序并写出运行结果。
#ex16.py
i=0
sum=0
while i<10:
if i%3==0:
sum+=i
print(i)
i=i+1
print('sum',sum)
_________
10.编写程序,找到并输出100以内的素数。
11.约瑟夫问题是个有名的问题:N个人围成一圈,顺序为0,1,2,3,4,5,从0号这个人开始报数,报到2的将被杀掉,接下去重新开始报数,报到3的将被杀掉...以此类推,最后剩下一个,其余人都将被杀掉。例如N=6,被杀掉的顺序是:1,4,3,0,5;最后只剩下2这个人。
llist=
n=int(input(“请输入参与人数:”))
for i in range(0,n-1):
llist.append([i,i+1])
___________
___________
long=n
k=head
i=1
p=2
while(____ ):
if i==p-1:
t=llist[k][1]
print(llist[t][0])#索引为t的删除
__________________
if t==head:
___________________
i=1
p+=1
long=long-1
k=llist[k][1]
______________
i+=1
print(llist[head][0])
12.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
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.编写程序,实现从键盘输入数据,实现输入数据转换成大写并输出。
16.编写程序。如图所示的算法,请用Python程序写出实现该算法相应的代码。
17.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。
18.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
打开文件“考生文件夹\644\百鸡百钱.py”,完善程序实现以下功能并保存。
(1)请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善。
(2)运行程序,运行结果如图所示。
# 请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善
money=100 #一共100文钱
num=100 #一共100只鸡
cock_price=5 #公鸡价格5文
hen_price=3 #母鸡价格3文
threechick_price=1 #3只小鸡1文
for cock_num in range(1,money//cock_price+1): #公鸡只数可能为1-20
for hen_num in range(1,①________): #母鸡只数可能为1-33
for chick_num in range(1,②________): #(3小鸡)只数可能为1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num*threechick_price
num1=cock_num+hen_num+chick_num*3
if money1==money and num1==num:
print (cock_num,hen_num,③________) #(③小鸡数)
input("运行完毕,请按回车键退出...")
19.完善代码并保存。
实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。
cj=[]
for i in range(0,________):
x=float(input("请输入一个数"))
cj.append(________)
print(max(cj), min(________))
input("运行完毕,请按回车键退出...")
20.现在有一个程序用来解决以下问题:如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?
请将下列程序补充完整。
tc=1020
c=0
while ______________ :
tc=tc-(tc/2+2)
_____________
print(c)
21.已知6月份10位技术考试成绩:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
78 | 88 | 89 | 90 | 83 | 76 | 75 | 98 | 100 | 65 |
技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下:
a=[78,88,89,90,83,76,75,98,100,65]
______
sum=0
for i in range(n):
if a[i]>=80:
________
print(sum)
执行上述程序段后,输出的内容是______
22.现代生活半径的扩大和生活节奏加快使出行成本不断增长。滴滴快车应运而生,其以灵活快速的响应和经济实惠的价格为大众提供更高效、更经济、更舒适的出行服务,给人们生活带来了美好的变化。小C是滴滴快车忠实的粉丝,经常出行就提前预约,乘坐滴滴快车。小C就在思考这个滴滴快车是怎么计费的?可否用所学的Python语言也编写一个计费程序。于是小C开展了有关这个项目活动的探究。根据实际情况,回答问题。
(一)收集、分析数据,运用数理思维建模
登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”:
滴滴快车(普通型)计价规则 | |||
时段 | 起步价 | 里程费 | 时长费 |
普通时段 | 8.00元 | 1.35元/公里 | 0.20元/分钟 |
00:00-06:30 | 8.50元 | 2.40元/公里 | 0.50元/分钟 |
06:30-09:00 | 8.50元 | 1.50元/公里 | 0.45元/分钟 |
21:00-23:00 | 8.50元 | 1.50元/公里 | 0.40元/分钟 |
23:00-00:00 | 8.50元 | 2.40元/公里 | 0.50元/分钟 |
注意: 1.起步价包含里程3.3公里,包含时长9分钟,里程费、时长费合计不足基础费时,直接按照基础费计费。 2.实时计价是基于订单服务内容(里程、时长、时段),按各种费用项定价标准计算订单价格的计价方式,实际费用由两部分里程费与时长费累加而得。 |
小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)流程图描述:(如图)流程图中,表示计算与赋值的是_____________,表示算法流向的是______________。
(5)算法描述中,用到了三种基本控制结构,分别是_______________、______________和______________。如图示中的流程图使用的控制结构是_______________和______________。(选填:顺序结构、选择结构、循环结构、树型结构)
(6)一个算法必须有______________或多个数据输入。有______________或多个数据输出。(选填:零个/一个)
(三)编写、调试、运行程序,验证算法并解决问题________
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.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。为求解规模为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的值为整数,从键盘输入)。请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。
def f(n):
if n==0:
return 1
else:
return _________
s=0
n=int(input("请输入n:"))
for i in_______:
s=________
print(s)
25.模拟一个简单计算器,实现如下功能:输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”。Python程序实现如下,在划线处填入合适的代码。
a=int(input("请输入第一个数: "))
fh=input ("请输入运算符: ")
b=int(input("请输入第二个数: "))
flag=True
s= ____
if fh in s:
if fh=="+":
c=a+b
elif fh=="-":
c=a-b
elif fh=="*":
c=a*b
else:
if ____
print("除数不能为0! ")
flag=False
else:
c=a/b
if flag==True:
print("运算的结果为: "+____)
else:
print ("运算符不正确")
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.设计完成算法之后,小C打算用所学的Python程序设计语言完成程序的编写。
(1)Python程序设计语言属于程序设计语言中的_______________。
A.机器语言 B.汇编语言 C.高级语言 D.翻译程序
(2)小C将设计好的算法转为Python程序语言(如下)。其中“Tot2=8”是一个___________,“#初始化时长费为0”是一个__________,“S<=3.3”是一个___________,“float(input(“请输入时长”))”是一个__________。
A.函数 B.表达式 C.赋值语句 D.注释语句
1 Tot1=0 #初始化时长费为0 2 Tot2=0 #初始化里程费为0 3 S=float(input(“请输入里程数”)) 4 T=float(input(“请输入时长”)) #输入里程数和时长 5 if(T>9): #计算时长费用 6 Tot1=(T-9)*0.2 7 if(S<=3.3): #算里程费用 8 Tot2-8 9 else: 10 Tot2=8+(S-3.3)*1.35 11 Cost-Totl+tot2 12 print(Cost) #输出总车费 |
(3)小C写好代码之后,编译运行发现报错了,根据下图中所示的错误信息分析该程序报错的原因是:____________________________________________________________________________________________。
NameError Traceback(most recent call last) <ipython-input-2-fc682f6f4658>in<modu1e> 9else: 10 —→11 Cost=Tot1+tot2 12 NameError:name’tot2’is not defined |
(4)经过修改之后,小C对照某次滴滴打车的订单,将对应的公里数和时长输入程序,运行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。小C借助于计算机编写程序解决问题的这个过程是:①设计算法②编写程序③分析问题④调试运行程序,合理的顺序是_________。(填写序号即可)
(5)总结用计算机解决问题的优势主要有:_______________________________________________。
28.编写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每个月的天数
s=input("请输入年月日: ")
'month=int(s[5:7])
①
sum=0
for i in range( ② ):
sum+=mon[i]
sum+=day
29.小明用Python语言写了一个货币兑换程序如下:
(1)参数currency指:____________。
(2)该程序用了哪一种算法结构:_____________。
(3)输出结果为“50$= 325.25人民币”。则代码应该如何编写:____________。
30.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:能被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”为当年的第_____天。
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.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))
2.y y show( )
【详解】
本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+ 1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show( ),故填show()。
3.整除 取余 判断是否相等 百 十 个 1000
【详解】
本题考查的是python语言及对程序实现的理解。(1)//的符号作用是取整除,返回商的整数部分(向下取整)。(2)%的符号作用是取模,返回除法的余数。(3)等于,比较符号两边对象是否相等。(4)(5)(6)i=n//100,j=n//10%10,k=n%10,分别利用取整和取余符号,算出三位数对应的每一位上的数字。(7)range()函数的区间是左闭右开,所以第二个参数1000是取不到的。
4.字符串类型 你及格了喔 表现不错 程序结束 不及格 学习方法可能不对 程序结束 60 80 错
【详解】
本题主要考查Python编程。① input() 函数接受一个标准输入数据,返回为 string 类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔 表现不错 程序结束”;③输入期末成绩为55时,满足小于60及大于等于30,因此此处输出为“不及格 学习方法可能不对 程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。
【点睛】
5.[5,6,7,8,9] [7,8,9] [5,6] [6,7] [7,8]
【详解】
本题主要考查Python列表截取。Python列表的正向索引下标是从零开始,不是1;当只有冒号,表示全部元素;只有头下标i和冒号(代表的是从该头下标i的元素开始截取,一直到最后);只有冒号尾下标i(代表的是从开始一直截取到i-1的元素);头下标i,冒号和尾下标j都有(代表的是从i一直截取到j-1的元素),因此①[5,6,7,8,9]②[7,8,9]③[5,6]④[6,7]⑤[7,8]。
【点睛】
6.计算每一项的阶乘 记录阶乘相加后的和 t记录的是每一项阶乘的结果,t*=n即t=t*n,t初值为1,能计算出每项的阶乘结果,若为0,则每项的阶乘结果都是0,不符合题意。 t=t*n s=s+t
【详解】
本题考查的是python语言编程。本题考查的是1-20阶乘的求和。本题的重点是要先计算出对应的每一项阶乘的结果t,然后20项阶乘的结果记录在s中。在此过程中既要考虑到累乘求阶乘结果,又要考虑到累加求所有阶乘的和。初值n=0,在1-21的循环过程中,记录每一项的阶乘,s=0记录阶乘累加的和,t=1记录每一项阶乘的结果。每求一次阶乘就要进行一次求和,故语句t*=n,s+=t均在“for n in range(1,21):”的循环体内。
7. 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)。
8.banana
apple
mango
a= 3
【详解】
本题主要考查Python中For循环结构。 for循环可以遍历任何序列的项目,如一个列表或者一个字符串;len() 方法返回列表元素个数。因此本题输出为各列表内容及列表元素个数。
【点睛】
9.0
【详解】
本题主要考查Python中While循环结构。Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。题中循环体内含If选择结构,即当i%3为0时,执行sum变量累加i,输出i,i自增加1操作,因此本题输出0后,循环无限执行下去。
【点睛】
10.参考答案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:
11.llist.append([n-1,0]) head=0 long>1 head=llist[k][1] llist[k][1]=llist[t][1] k=llist[k][1]
【详解】
本题主要考查Python程序执行与调试。①for循环体是将索引0-n 追加到llist中,此处是循环体执行完,将末元素与首元素的索引加入到llist中,故填llist.append([n-1,0])。②head是列表头,初始化为0,故填head=0。③最后剩下一个,其余人都将被杀掉,故循环条件是long>1,变量long控制元素个数,故填long>1。④索引为t的删除后,此处是更新head值,故填head=llist[k][1]。⑤删完后,如果t等于head,需要更新索引k,将索引t的值赋给变量k,故填llist[k][1]=llist[t][1]。⑥如果t不等于head,也需要更新索引k,故填k=llist[k][1]
【详解】
本题主要考查Python程序的执行与调试。运行结果如下:
13.
【详解】
本题主要考查程序设计与实现。可以使用Python程序实现题干要求:
14.champion 3 i
【详解】
本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为冠军,故此处填i。
15.str = input("请输入要转换成大写的数据:")
c=len(str)
for i in range(0,c):
print(str[i].upper(),end=" ")
【详解】
本题主要考查程序设计。题干要求可使用Python程序设计实现,通过upper函数可以将输入数据转换成大写并输出,具体代码如下:
str = input("请输入要转换成大写的数据:")
c=len(str)
for i in range(0,c):
print(str[i].upper(),end=" ")
16.a=float(input("请输入一个数"))
b=float(input("请输入一个数"))
c=float(input("请输入一个数"))
if c>a and c>b:
print("最大数为:",c)
elif b>a:
print("最大数数",b)
else:
print("最大小数为",a)
【详解】
本题主要考查算法描述及Python程序设计。分析算法流程图,首先输入a、b、c三个数,进行两两比较,输出最大数,故Python程序设计如下:
a=float(input("请输入一个数"))
b=float(input("请输入一个数"))
c=float(input("请输入一个数"))
if c>a and c>b:
print("最大数为:",c)
elif b>a:
print("最大数数",b)
else:
print("最大小数为",a)
17.a=int(input(" 请输入数 a:"))
b=int(input(" 请输入数 b:"))
if a>b:
t=a
a=b
b=t
print("用户输入的数按小到大排序结果是: ", a, b)
else :
print("原样输出 ",a,b)
【详解】
本题主要考查Python程序设计。使用input函数接收两个数a和b,用if条件分支结构判断a和b的大小,如果a大于b,则交换,否则原样输出,具体代码如下:
a=int(input(" 请输入数 a:"))
b=int(input(" 请输入数 b:"))
if a>b:
t=a
a=b
b=t
print("用户输入的数按小到大排序结果是: ", a, b)
else :
print("原样输出 ",a,b)
18.34或 money//hen_price+1 101 或 money//threechick_price+1 chick_num*3
【详解】
本题主要考查Python程序执行与调试。①母鸡只数可能为1-33,对比最外层循环范围,第一空填34或 money//hen_price+1。②小鸡只数可能为1-100,同理第二空填101 或 money//threechick_price+1。③公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,故第三空填chick_num*3。
19.x cj
【详解】
本题主要考查Python程序执行与调试。①从键盘输入10个学生的测试成绩,range(a,b)的范围是从a~b,但不包括b,故第一空填10。②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。③求最大值用max函数,求最小值用min函数,故第三空填cj。
20.tc>0 c=c+1 或者c+=1
【详解】
本题主要考查Python程序执行与调试。①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1 或者c+=1。
21.①n=len(a) sum+=1或sum=sum+1 6
【详解】
本题主要考查Python程序调试与执行。①变量n用来保存数组a的长度,使用len函数,故此处填n=len(a)。②使用for循环统计出80分(含80)以上的人数,用变量sum统计满足条件的人数,当满足if条件时,sum变量递增,故此处填sum+=1或sum=sum+1。③执行上述程序段后,sum=6,故输出的内容是6。
22.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。算法描述中,用到了三种基本控制结构,分别是⑪顺序结构⑫选择结构⑬循环结构。如图示中的流程图使用的控制结构是⑭顺序结构⑮选择结构。⑯一个算法必须有零个或多个数据输入。⑰有一个或多个数据输出。⑱略
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*f(n-1) range(1,n+1) s+f(i)
【详解】
本题主要考查Python程序的执行与调试。①此处是定义递归函数f(n),由题干,当n=0时,返回1,否则返回n*f(n-1),故此处填n*f(n-1)。②用递归算法求1!+2!+……+n!,故变量i的范围应是1—n,for i in range(1,n+1)表示i的范围是[1,n],故此处填range(1,n+1)。③循环体实现累加,将每一项阶乘f(i)加到s中,故此处填s+f(i)。
25."+-*/" b==0 str(c)
【详解】
本题主要考查Python程序执行与调试。①变量fh用来接收运算符,由代码“if fh in s”可知,变量s保存加减乘除(+-*/)四种运算符,故此处填"+-*/"。②变量b保存第二个数,当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”,此处是处理b=0的情况,故填b==0。③变量c保存运算结果,此处输出 c的结果,故填str(c)。
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.C.高级语言 C.赋值语句 D.注释语句 B.表达式 A.函数 Python程序设计语言规定,在标识符中,字母大小写是有区别的。该程序代码中表示里程费的Tot2错误将字母“T”写成了小写”“t”。 合理的顺序是:③分析问题①设计算法②编写程序④调试运行程序 略
【详解】
本题主要考查Python程序的编写。①Python程序设计语言属于程序设计语言中的高级语言,选C选项。②“Tot2=8”是一个赋值语句,选C选项。③“#初始化时长费为0”是一个注释语句,选D选项。④“S<=3.3”是一个表达式,选B选项。⑤“float(input(“请输入时长”))”是一个函数,float() 函数用于将整数和字符串转换成浮点数,选A选项。⑥编译运行发现报错了,根据下图中所示的错误信息分析该程序报错的原因是:Python程序设计语言规定,在标识符中,字母大小写是有区别的。该程序代码中表示里程费的Tot2错误将字母“T”写成了小写”“t”。⑦小C借助于计算机编写程序解决问题的这个过程,合理的顺序是:③分析问题①设计算法②编写程序④调试运行程序。⑧略
28.day=int(s[8:])或day=int(s[-2:]) 0,month-1 isleap and month>2 year%4==0 and year%100!=0 or year%400==0
【详解】
本题主要考查Python程序的执行与调试。①2020年是闰年,2月是29天,故“2020-05-20”这一天是这一年的第31+29+31+30+20=141天。②变量s是字符串型,下标从0开始,此处是将输入日期中的天取出来放到变量day中,可以使用切片操作:从左边开始截取,也可以从右边截取,故此处填day=int(s[8:])或day=int(s[-2:])。③通过循环将前month-1个月的天数加起来,故变量i的范围是0到month-1,故填0,month-1。④变量isleap标记是不是闰年,如果isleap值为真且month>2,则sum需要递增1,故填isleap and month>2。⑤由题干闰年判断条件,可知加框处应改为year%4==0 and year%100!=0 or year%400==0。
29.形参 分支结构(选择结构) if条件中的return语句改为return print(money,"$=",money*6.505,"人民币"),其他elif语句类似
【详解】
本题主要考查Python程序执行与调试。①分析代码可知,参数currency指:形参。②由代码可知,该程序用了条件分支结构。③若输出结果是50$= 325.25人民币,则需将if条件中的return语句改为return print(money,"$=",money*6.505,"人民币"),其他elif语句类似。
30.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