热门搜索 :
考研考公
您的当前位置:首页正文

全国青少年软件编程(Python)等级考试试卷(1级)精品word程序填空阅读填空程序试题

来源:伴沃教育
全国青少年软件编程(Python)等级考试试卷(1级)精品word程序填空阅读填空

程序试题

一、程序填空

1.求解a到b内(包含a和b)所有的质数,并对每个质数的每一位数字求和。请完善程序。程序如下: import math def IsPrime(i): if i==1: return False

for j in range(2,int(math.sqrt(i))+1): if____: return False return True

a=int(input(\"请输入a:\")) b=int(input(\"请输入b:\")) summ=0

for i in range(a,b+1): if IsPrime(i): ________ while t>0: summ=summ+t%10 _________

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.阅读程序。阅读求水仙花数的代码并回答问题。

“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: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.完善程序。以下是计算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)

5.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。 * * * * * * * * * *

6.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。提示:考虑使用range(#begin, #end)

7.输入三个同学的成绩,然后大到小排列。

8.哥德巴赫在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”则结果显示_____

9.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 10.求1~100内奇数之和(使用range函数)

11.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。 代码如下:

n=int(input(\"请输入一个十进制数:\")) result=[] while n>0: result.append( ① ) n= ② result.reverse() for i in result: print(i,end=”)

(1)程序代码中①处正确的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2

(2)程序代码中②处可能的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2

12.程序设计:唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,在天庭里身高正好为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 13.完善代码并保存。

实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[]

for i in range(0,________): x=float(input(\"请输入一个数\")) cj.append(________) print(max(cj), min(________)) input(\"运行完毕,请按回车键退出...\")

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.已知6月份10位技术考试成绩: 1 78 2 88 3 89 4 90 5 83 6 76 7 75 8 98 9 100 10 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)

执行上述程序段后,输出的内容是______ 16.小明用Python语言写了一个货币兑换程序如下:

(1)参数currency指:____________。

(2)该程序用了哪一种算法结构:_____________。

(3)输出结果为“50$= 325.25人民币”。则代码应该如何编写:____________。 17.某种数据加密方法描述如下(加密前数据是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)的数值变换过程如下: 变换前 密钥m 变换后 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 (1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。

(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

18.某字符转置算法描述如下:

将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26); ·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);

每一段中K个数据与K*K转置矩阵进行乘法运算;

将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。 乘法运算规则如下:

第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)

例如:字符串s=PYTHON,区块大小K=4,的转置过程如下:

(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。

(2)请在划线处填入合适代码。

Private Sub Commandl_Click()

Dim a(1 To 100)As Integer ´存储字符串,长度不超过100个字符 Dim b(1 To 100)As Integer 存储转置矩阵,长度不超过 10*10 Dim c(1 To 100)As Long Dim s As String, tmp As String

Dim k As Integer, t As Integer, i As Integer, j As Integer Dim n As Integer, m As Integer, lens As Integer s=Textl. Text ´在 Textl 中输入原始字符串 k=Val(Text 2.Text) ´在 Text 2 中输入区块大小K Randomize

For i=1 To k^2 b(i)=Int(Rnd*9)+1 tmp=tmp十Str(b(i)) If i Mod k=0 Then List 2. AddItem tmp tmp=\"\" . End If Next i

lens=Len(s):n=lens For i=1 To n tmp=Mid(s,i,1) ①__________ Listl. AddItem Str(a(i)) Next i

Do While n Mod k<>0 n=n十1 a(n)=0

Listl. AddItem Str(a(n)) Loop For i=1 To n m=(i―1)Mod k+1 t=1

Forj= ②__________ c(i)=a(j) * b((m-1) * k+t)+c(i) t=t+1 Next j Next i For i=1 To n

List 3. AddItem Str(c(i)) Next i s=″″ For i=1 To lens ③__________ s=s+Chr(t+64)} Next i

Text 3.Text=s ´在Text 3 中输出转置后的字符串 End Sub

19.密码强度检测。编写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(“弱”)

20.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。为求解规模为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)

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\ 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.模拟一个简单计算器,实现如下功能:输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。当进行除法运算时,如果除数为“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 (\"运算符不正确\")

24.某市普通高中选课数据如图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)加框处语句的作用是__________________

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.设计完成算法之后,小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) in 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 if

isleap=True else: isleap=False if ③ sum+=1

print(\"这一天是当年的第\" +str (sum)+''天'')

29.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。编写一个Python程序,输入消费额(整数),显示折扣后

:

的应付金额。 30.有如下程序段: sum=0

for i in range(1,20,3) : sum+=i print(“sum=”,sum)

(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。 (2)该程序执行后,输出的结果为:____________________。

【参考答案】***试卷处理标记,请不要删除

一、程序填空

1.i%j==0 t=i t=t//10 【详解】

本题主要考查Python程序执行与调试。①此处是处理从2开始到i开方加1,若能整除i则表明i不是素数,否则直到循环结束,表明i是素数,故此处填i%j==0。②若i是素数,则将变量i赋给变量t,并通过while循环将t的每一位取出来并加到summ中,故此处填t=i。③同理此处取出个位数后,更新t的值继续循环,故此处填t=t//10。 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. 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)。 5.layer = int(input(\"请输入需要打印的层数:\")) for x in range(1,layer+1):

for y in range (1,x+1): print(\"*\ print(\"\")

【详解】

本题主要考查Python循环结构。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。range可以生成一个整数列表,列表范围根据接收的layer来确定。外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】 6.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))

7.

【详解】

本题主要考查程序设计与实现。可以使用Python程序实现题干要求:

8.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。

9.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(\"字母:\空格:\数字:\其他字符:\ 【详解】

本题主要考查程序设计。题干要求可通过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(\"字母:\空格:\数字:\其他字符:\ 10.Sum=0 for i in range(1,101,2): Sum+=i print(Sum) 【详解】

本题主要考查Python程序设计。求1~100内奇数之和,用Sum来求和,变量i的范围是1到100,每次递增2,可以使用range函数,具体代码如下: Sum=0

for i in range(1,101,2): Sum+=i print(Sum) 11.A C 【详解】

本题主要考查Python程序设计。①此处将n取余2,用append函数将值追加到列表result中,故此处填n%2,选A选项。②当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n//2,选C选项。 12.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选项。 13.x cj 【详解】

本题主要考查Python程序执行与调试。①从键盘输入10个学生的测试成绩,range(a,b)的范围是从a~b,但不包括b,故第一空填10。②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。③求最大值用max函数,求最小值用min函数,故第三空填cj。

14.champion 3 i 【详解】

本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为冠军,故此处填i。

15.①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。

16.形参 分支结构(选择结构) if条件中的return语句改为return print(money,\"$=\人民币\"),其他elif语句类似 【详解】

本题主要考查Python程序执行与调试。①分析代码可知,参数currency指:形参。②由代码可知,该程序用了条件分支结构。③若输出结果是50$= 325.25人民币,则需将if条件中的return语句改为return print(money,\"$=\人民币\"),其他elif语句类似。

17.①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))”。

18.①a(i)=Asc(tmp)-64或a(i)=Asc(tmp)-Asc(\"A\")+1 ②i–m+1To i–m+k ③t=(c(i)–1) Mod 26+1 【详解】

本题考查乘法运算规则的理解以及转置矩阵中行列数据的读取。(1)根据算法描述,图中(1)处的值为15×5+14×1+0×2+0×9=89。(2)程序先随机生成数组b,其下标为1到k×k,并以行列的形式显示在列表框list2中(即为转置矩阵),然后读取大写字符串s中的每个字符,并将每个字符转换成相应字母表中的位置存储在数组a中。代码①处为字符转

成相应的字母表中位置值,下方代码将a(i)输出在列表框listl中,故此处应获取a(i)的值。根据题干描述“字符A~Z对应数值1~26”,此处为将tmp获取的字符通过Asc函数进行转换,语句为“a(i)=Asc(tmp)-64”,还可以是“a(i)=Asc(tmp)-Asc(″A″)+1”。代码②处为循环变量j的取值范围,根据乘法规则,变量j的范围是每一段中的1到k之间的值,需要获取每一段的起始位置下标,结合上文得到的m值,可得循环变量的范围是“i-m+1 To i-m十k”。代码③处是将计算结果c(i)按原长度转换成相应大写字符,计算结果要求除以26取余,若直接写成c(i)Mod 26,则导致数值26的结果为0,因此需要先减1,Mod后再加1这样的处理技巧,因此答案为“(c(i)-1)Mod 26+1”。

19.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。

20.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)。 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\,依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。⑤此程序属于程序设计结构中的循环结构,选C选项。

23.\"+-*/\" b==0 str(c) 【详解】

本题主要考查Python程序执行与调试。①变量fh用来接收运算符,由代码“if fh in s”可知,变量s保存加减乘除(+-*/)四种运算符,故此处填\"+-*/\"。②变量b保存第二个数,当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”,此处是处理b=0的情况,故填b==0。③变量c保存运算结果,此处输出 c的结果,故填str(c)。 24.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中。

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.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.price=int(input(\"请输入消费额(整数):\")) if price < 200: price=price-price*0.1 else:

price=price-price*0.2

print(\"折扣后的应付金额是:\ 【详解】

本题主要考查Python程序的执行与调试。用键盘通过输入函数input输入消费额,并用int函数将其转换为整数类型,通过if条件分支结构,判断如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣,最后用print输出函数输出折扣后的应付金额。

30.初值为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。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top