【编程】青少年编程等级考试Python编程一级试卷3程序填空阅读填空程序试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【编程】青少年编程等级考试Python编程一级试卷3程序填空阅读填空程序
试题
一、程序填空
1.操作说明:打开文件“Y:/1/1.py”,将程序补充完整,不得增加,删除语句、或改变程序原有结构,操作结束后保存。
以下程序段的功能是:根据从键盘上输入的表示星期几的数字,若输入的数字不是在范围(1至7)输出“输入错误!”,否则输出对应的英文星期的简称如“Mon、Tue、Wed、Thu、Fri、Sta、Sun”。
n=int(input(“请输入一个数:”))
list=[ “Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sta”,”Sun”]
if ________:
print(“输入错误!”)
else:
print(________)
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+22+32+……+1002的结果
_______________________________
_______________________________
_______________________________
_______________________________
input(“运行完毕,请按回车键退出...”)
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.完善程序。
以下是猜数游戏的程序,请在画线出填写正确的内容。
import random
secret=random.randint(0,10)
print(“---猜数游戏 -----”)
cs=int(input(“你猜的数字是”))
while cs!=secret:
_______cs>secret:
_________ (“唉,猜大啦!”)
__________:
print(“嘿嘿,猜小了!”)
cs= int(input(“重新猜一个靠谱的数字是:”))
print(“游戏结束,不玩了!”)
8.调试程序。
请阅读以下程序并写出运行结果。
#ex16.py
i=0
sum=0
while i<10:
if i%3==0:
sum+=i
print(i)
i=i+1
print('sum',sum)
_________
9.阅读程序。
for i in range(1,10):
for j in range(1,i+1):
print("%d X %d=%2d"%(j,i,j*i),end=" ")
print()
(1)在第一行程序中,变量i的数据范围为_____到____。
(2)在第二行的程序中,变量j的数据范围为_____到____。
(3)如果“%d”表示十进制数,那么%2d则表示____ 位宽的十进制数。
(4)第三行程序改为print("%d X %d=%2d"%(i,j,i*j),end=" "),则本题的输出应该是_____。
(5)如果最后一行的print()表示换行,那么end=””的功能是_______ 。
10.分析完善程序
[背景知识]为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。
如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。
(提示:①所有车牌号中都含有数字,并且车牌号的长度都是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
11.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
12.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。
得到的数字应按逗号分隔的顺序打印在一行上。
提示:考虑使用range(#begin, #end)
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.求100以内素数。
16.学校气象小组使用自动测温仪在校园测量了1月12日的气温,并利用Python绘制了
这天的气温图,该图如下所示:
(1)在以上Python程序中,变量Y的数据类型是_________。
(2)在以上Python程序中,第8行横线处的代码是_________。
(3)通过观察,气温釆样间隔时间是_________个小时。
17.操作说明:编写一个程序实现以下功能,将程序以“Y:/3/3.py”作为文件名保存。
题目:设计100以内的数中能同时被3或5整除的个数。
18.程序设计:在舞会上,男生、女生各自排成一队。
舞会开始时,依次从男队和女队的
队头各出一人配成舞伴。
跳完后的两人重新回到队尾。
例如: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
19.程序设计:唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。
观音菩萨告诉孙悟空,在天庭里身高正好为1000米的那位神仙可以降伏此妖。
于是悟空立刻来到天上,在玉皇大帝的神仙册上看到了按身高从矮到高排列有10000个神仙。
由于时间紧迫,悟空想用最短的时间找到这位神仙,这样才可以尽快解救唐僧。
代码如下:
List=list(map(int,inpu t(“请按身高递增顺序依次输入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
20.小王编写了“字符串缩写”程序,实现如下功能:
1.输入一串由英文字母和数字组成的字符串,
2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“—”和最后一个字符组成的新字符段,
3.例如:字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。
程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:
实现上述功能的程序如下,请在程序划线处填入合适的代码。
s=input("请输入字符串s:")
_______
flag = False
result=" "
for i in range( 0 , k-1):
if ___________________ :
result=result+s[i]+"-"
flag = True
elif ord(s[i]) ! = ord(s[i+1])-1:
result=result+s[i]
_____
result=result + s[i+1]
print("缩写后的字符串为:",result)
划线处①处应该填入的语句为:;
划线处②处应该填入的语句为:;
划线处③处应该填入的语句为:。
21.在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。
即一个数除以3余2,除以5余3,除以7余2,求这个数。
i=①________
while (i%3!=2 ②________ i%5!=3 or i%7!=2):
i=③________
print(i)
22.完善程序实现如下功能并保存:
有5个人坐在一起,第5个人说他比第4个人小3岁;第4个人说他比第3个人小3岁;第3个人说他比第2个人小3岁;第2个人又说他比第1个人小3岁;第1个人说他是38岁。
编写程序,计算出第5个人的年龄并显示。
def age(n):
if n == 1: c = ________
else: c = age(n - 1) - 3
return ________
print("第5人的年龄:",age(________))
input("运行完毕,请按回车键退出...")
23.有如下程序段:
sum=0
for i in range(1,20,3) :
sum+=i
print(“sum=”,sum)
(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。
(2)该程序执行后,输出的结果为:____________________。
24.已知6月份10位技术考试成绩:
a=[78,88,89,90,83,76,75,98,100,65]
______
sum=0
for i in range(n):
if a[i]>=80:
________
print(sum)
执行上述程序段后,输出的内容是______
25.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。
为求解规模为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)
26.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。
使用 Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2
图1
图2
实现上述功能的 Python程序如下:
import pandas as pd
import itertools
#读数据到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[‘学校代码’]=‘比例’
for k in km:
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)加框处语句的作用是__________________
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.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。
文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。
请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。
现填写C、E、F、G
对应的程序段编号.C:__________E:__________F:__________G:__________
图a
图b
图c
图d
29.某仓库物品代码格式为“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("错误")
30.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.n<1 or n>7 list[n-1]
【详解】
本题主要考查Python程序调试。
①输入的数字不是在范围(1至7)输出“输入错误!”,故此处if判断条件是n<1 or n>7。
②列表的索引是从0开始,即列表list索引是从0~6,而n的范围是从1~7,故此处填list[n-1]。
2.y y show( )
【详解】
本题主要考查Python程序绘制图像。
①绘制y=x2-2x+ 1的图像,故此处填y。
②根据横纵坐标x和y绘制图,故此处填y。
③此处调用显示函数show( ),故填show()。
3.total=0 #变量可任选(符合规则) for i in range(1,101): total=total+i*i
#total=total+i**2 print(total)
【详解】
本题主要考查Python程序的编写。
①变量total用来统计最终的计算结果,其初始值为0,故填total=0 #变量可任选(符合规则)。
②求1+22+32+……+1002的结果,用for循环结构,变量i的范围是从1到100,故填for i in range(1,101):。
③计算语句是
total=total+i*i #total=total+i**2。
④最后用print()函数输出计算结果total,故填print (total)。
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.if print else
【详解】
本题主要考查Python程序的执行与调试。
①secret是随机生成的数,sc是你猜的数字,此处是判断cs与secret的大小,故填if。
②如果cs大于secret,则输出“唉,猜大啦”,故填print。
③如果cs小于secret,输出“嘿嘿,猜小了!”,故填else。
8.0
【详解】
本题主要考查Python中While循环结构。
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
题中循环体内含If选择结构,即当i%3为0时,执行sum变量累加i,输出i,i自增加1操作,因此本题输出0后,循环无限执行下去。
【点睛】
9.9 1 i 2 末尾不换行,添加
空格
【详解】
本题主要考查Python程序的执行与调试。
(1)在第一行程序中(for i in range(1,10):),变量i的数据范围为1到9。
(2)同理,在第二行的程序中(for j in range(1,i+1):),变量j 的数据范围为1到i。
(3)如果“%d”表示十进制数,那么%nd则表示n位宽的十进制数,%2d则表示2位宽的十进制数。
(4)第三行程序改为print("%d
X %d=%2d"%(i,j,i*j),end=" "),则本题的输出应该是
,i与j的位置进行了交
换,如1X2=2变为2X1=2。
(5)如果最后一行的print()表示换行,那么end=””的功能是末尾不换行,添加空格。
10.n=n-1或 n-=1 B
【详解】
本题主要考查算法及Python程序设计。
①此处是判断x是否为数字,若不是数字,则n 递减取前一位字符继续进行判断,故此处填n=n-1或 n-=1。
②当while循环结束,表明此时x为数字,若int(x)%2 ==0,即x为偶数,输出“双号”,否则输出单号,故选B选项。
11.
【详解】
本题主要考查Python程序的执行与调试。
运行结果如下:
12.l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print (','.join(l))
【详解】
本题主要考查程序设计。
由题干要求,可以使用Python程序设计语言实现,可使用for循环以及列表,可以使用join函数按逗号分隔格式打印结果,join函数连接字符串数组,将
字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串,具体代码如下:
l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print (','.join(l))
13.s = input('input a string:')
letter = 0 # 统计字母
space = 0 # 统计空格
digit = 0 # 统计数字
other = 0 # 统计其他字符
for c in s:
if c.isalpha():
letter += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
other += 1
print("字母:",letter,"空格:", space,"数字:",digit,"其他字符:", other)
【详解】
本题主要考查程序设计。
题干要求可通过Python程序实现,使用for循环、多条件分支结构。
其中实现分别统计出其中英文字母、空格、数字和其它字符的个数可通过函数isalpha、isspace、isdigit来判断统计,具体代码如下:
s = input('input a string:')
letter = 0 # 统计字母
space = 0 # 统计空格
digit = 0 # 统计数字
other = 0 # 统计其他字符
for c in s:
if c.isalpha():
letter += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
other += 1
print("字母:",letter,"空格:", space,"数字:",digit,"其他字符:", other)
14.champion3i
【详解】
本题主要考查Python程序的执行。
①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。
②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。
③当cond是3时,i即为冠军,故此处填i。
15.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)
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.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的值,具体代码及运行结果如下:
18.C A B
【详解】
本题主要考查队列数据结构及Python程序。
①队列是从队头出队,队尾入队,使用pop函数出队,队头的索引值是0,故此处填boy.pop(0),girl.pop(0)。
②队列入队使用append方法追加到队列尾,此处是男生入队boy.append(x),故选A选项。
③同理,此处是女生入队girl.append(y),故选B选项。
19.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选项。
20.k=len(s)ord(s[i])==ord(s[i+1])-1 and flag==False 或
ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and
flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag flag = False
【详解】
本题主要考查Python程序的执行与调试。
①第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。
②flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填
ord(s[i])==ord(s[i+1])-1 and flag==False 或 ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1])
and not flag。
③如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag = False。
21.or i+1
【详解】
本题主要考查Python程序执行与调试。
①分析程序可知,程序采用枚举的算法找出该
数,当不满足条件时,i递增继续判断,故i的初始值是0,第一空填0。
②一个数除以3
余2,除以5余3,除以7余2,此处是取不满足情况时,i递增,and取反变为or,故第
二空填or。
③同理第三空填i+1。
22.c 5
【详解】
本题主要考查Python程序执行与调试。
①第一个人38岁,n标记第几个人,变量c保存年龄,当n=1时,c=38,故第一空填38。
②后面的人都比前一个人小3岁,故当n不等
于1时,调用递归函数age, c = age(n - 1) - 3,最后返回第n个人的年龄c,第二空填c。
③此处是返回第5个人的年龄,即age(5),填5。
23.初值为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。
24.①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。
25.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)。
26.pd.read_ csv 学校代码result.drop (‘姓名’ ,axis=1) 将总人数存储到变量zrs中
【详解】
本题主要考查Python程序的执行与调试。
①将csv文件读入并转化为数据框形式,故填pd.read_ csv。
②groupby函数主要的作用是进行数据的分组,此处按学校分组计数,故填
学校代码。
③此处删除"姓名"列,可以使用drop()函数来删除,故填result.drop (‘姓
名’ ,axis=1)。
④zrs=len(df.index),该语句是统计df内有多少个元素,即将总人数存储到
变量zrs中。
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.②⑤⑥④
【详解】
本题主要考查算法及Python程序实现。
①jieba 模块是一个用于中文分词的模块,lcut 方法直接返回 list,流程图中分词后存入words中对应的代码是words=jieba.lcut(txt),故填②。
②流程图中循环结构对应的是程序中的⑤。
③对counts的值进行排序,可以使用sort方法实现,对应程序中的⑥。
④使用循环结构将值一一输出,对应程序中的④。
29."0"<=s[i]<="9" 或s[i] in "0123456789” sum=sum+a[i]*(i+1) ydm=a[9]
【详解】
本题主要考查Python程序执行与调试。
①变量s保存商品仓库物品代码,若s[i]是数字则进入循环判断,否则跳过,故此处判断条件是"0"<=s[i]<="9" 或s[i] in "0123456789”。
②校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,用变量sum统计,故此处填
s um=sum+a[i]*(i+1)。
③变量sdm是计算得到的校验码,变量ydm是输入的校验码,此处需要将校验码a[9]赋给变量ydm,故填ydm=a[9]。
30.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)。