试题NCT-Python编程三级-模拟卷4(含答案程序填空阅读填空程序试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题NCT-Python编程三级-模拟卷4(含答案程序填空阅读填空程序试题
一、程序填空
1.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。

编写程序求出这些小朋友的可能人数。

实现上述功能的程序如下,请在程序划线处填入合适的代码。

________
a=[ ]
for i in range(100,1000):
if_____________:
a.append(i)
total + = 1
print("这群小朋友总的人数有:")
for j in range(len(a)):
print(____,end='、')
print('')
print('可能情况数为:',total,'种')
划线处①处应该填入的语句为:;
划线处②处应该填入的语句为:;
划线处③处应该填入的语句为:。

2.程序编写
求1+22+32+……+1002的结果
_______________________________
_______________________________
_______________________________
_______________________________
input(“运行完毕,请按回车键退出...”)
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.调试程序。

请阅读以下程序并写出运行结果。

fruites=['banana','apple','mango']
for fruit in fruites:
print(fruit)
a=len(fruites)
print('a=',a)
_________________
7.程序分析题
学校举行校园歌手大赛,评委由6人组成。

评分方法:去掉一个最高分和一个最低分,计算其余4位评委的平均分,作为选手的最终得分。

max记录最高分; min记录最低分; s 记录六位评委的总分; aver记录最终得分。

第1步:从文本框中分别读入6位评委的打分并依次存入到a(1)至a(6)中
第2步:将第1位评委的打分a(1)分别赋给最高分max ,最低分min和总分S
第3步:利用循环结构把另外5位评委的打分累加给s从而求出6位评委的总分s ,同时把5位评委的打分与max和min进行比较,得出6位评委中的最高分max和最低分min。

第4步:从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分。

max=a[0]
min=a[0]
s=0
for i in range(6) :
s=s+a[i]
if a[i]>max:
max=a[ i]
if a[i] <min:
min=a[ i]
aver=( )/4
(1)在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由______控件生成的。

A.Entry B.Label C.Frame D.Button
(2)题目中算法描述采用的是__________A、自然语言B、伪代码 C、流程图 D、.N-S图
(3)下列程序代码片段对应于算法描述中的第2步至第4步。

请填写片段中空白处的表达式填写完整________
8.约瑟夫问题是个有名的问题: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])
9.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
10.求50以内所有5的倍数的和。

11.利用for循环,分别计算1--100中奇数的和、偶数的和。

12.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。

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

代码如下:
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
14.请在空格处填写正确的代码,使程序完善。

实现功能:用辗转相除法求解两个正整数的最大公约数。

x = int(input('请输入第一个正整数:'))
y = int(input('请输入第二个正整数:'))
m = max(x,y) #找出x,y中的最大值
n = min(x,y) #找出x,y中的最小值
r = m%n #求得最大值除以最小值后的余数
while r!=0: #如果余数不等0,则进行以下循环
m =________ #把最小值赋给m
n =_________ #把余数赋给n
r = m%n #求得最大值除以最小值后的余数
print('这两个数的最大公约数为:',______)
input("运行完毕,请按任意键退出....")
15.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。

公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。

判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。

以下是一段用于判断某一年是否是闰年的程序。

请将上面程序框中空格处的内容填写完整,其中①处填写代码注释
___________ ______ __________ _______ _______
16.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。

编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。

17.小王编写了“字符串缩写”程序,实现如下功能:
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)
划线处①处应该填入的语句为:;
划线处②处应该填入的语句为:;
划线处③处应该填入的语句为:。

18.完善程序实现以下功能并保存。

输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+bx+c=0(a≠0)
#请不要更改源程序的结构,删除原题里的①、②。

填写正确的代码,使程序完善import math
a=float(input("请输入方程系数a(!=0):"))
b=float(input("请输入方程系数b:"))
c=float(input("请输入方程系数c:"))
delta=b*b-4*a*c
if delta>________:
x1=(-b+math.sqrt(delta))/(2*a)
x2=(-b-math.sqrt(delta))/(2*a)
print("方程有两个不同的解",x1,x2)
elif delta==0:
x1=________
print("方程有两个相同的解",x1)
else:
print("方程无解")
input("运行完毕,请按回车键退出...")
19.完善程序实现以下功能并保存。

输出数组的最大值。

arr1 =[12, 435, 76, 24, 78, 54, 866, 43]
________ = -32768
for i in range(0,7):
if arr1[i] > max1 : max1 = ________
print("最大值是:", ________)
input("运行完毕,请按回车键退出...")
20.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。

下面的程序能实现上述的功能,请将缺失的代码补充完整。

total= every_year=20000
year=1
while __________________ :
every_year + = ____________
total + = every_year
year + = 1
print(year)
21.某字符转置算法描述如下:
将字符串(均为大写字符)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
22.现今信息化时代,信息的传输十分迅速,足不出户便知天下事。

许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。

但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。

小钟为了确保自己知道的热点是真正的热点,于是打算用功能强大的python把各个平台的热点排行榜进行
合并,形成自己的热点排行榜。

为了热点之间比较方便,小钟设置了一个热度值来衡量一个热点的热度大小,热度值越大说明这个热点的热度越高。

现在小钟已经获得了如下两个平台的热度值从小到大的排行榜,正当他打算将之合并为一个从小到大的排行榜时,却被老师叫走了。

于是他决定把这个小功能交给他的好朋友——你来实现,你想到2种算法,请把下列程序填写完整。

A= [11,66,116,329,438,582,652,714,756,925]
B = [35,116,215,271,(5)__,428,576,772,806,950]
算法一:
myRank =
i = 0
j = 0
while (i < len(A) and j < len(B)):
if (A[i] < B[j]):
(6)______
i += 1
else:
myRank.append(B[j])
j += 1
while (i < len(A)):
myRank.append(A[i])
i += 1
else:
while ((7)______):
myRank.append(B[j])
j += 1
print(myRank)
算法二:
myRank = [0]*(len(A)+len(B))
i = 0
j = 0
k = 0
while ((8)_____):
k = i+j
if (i >= len(A)):
myRank[k] = B[j]
j += 1
elif (j >= len(B)):
myRank[k] = A[i]
i += 1
elif ((9)_____):
myRank[k] = A[i]
i += 1
else:
myRank[k] = B[j]
j += 1
print(myRank)
23.某餐馆近期推出“消费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)
24.若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5 就是一对双胞胎数。

编写python 程序,实现如下功能:输入 n 的值,统计显示 n 以内的所有双胞胎数。

程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。

import math
def isprime(x):
______
for i in range(2,int(math.sqrt(x))+1):
if x % i = = 0 :
f=False
return f
n=int(input("请输入一个正整数 n:"))
c=0
k=3
while k < = n-2:
if isprime( k ) and______________ :
c + = 1
print("第"+ str( c ) +"对双胞胎数:", k ,'和',k+2)
_______
print("共有"+str(c)+"对双胞胎数")
划线处①处应该填入的语句为:;
划线处②处应该填入的语句为:;
划线处③处应该填入的语句为:。

25.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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=”则输出结果为___________。

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.注释语句
错的原因是:
_______________________________________________________________________________ _____________。

<ipython-input-2-fc682f6f4658>in<modu1e>
9else:
10
—→11 Cost=Tot1+tot2
12
NameError:name’tot2’is not defined
行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。

小C借助于计算机编写程序解决问题的这个过程是:①设计算法②编写程序③分析问题④调试运行程序,合理的顺序是_________。

(填写序号即可)
(5)总结用计算机解决问题的优势主要有:
_______________________________________________。

28.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。

文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。

请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。

现填写C、E、F、G
对应的程序段编号.C:__________E:__________F:__________G:__________
图a
图b
图c
图d
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.(最大公约数)用辗转相除法求两个正整数的最大公约数。

代码如下:
def gcd (m,n):
r=
while r!=0:
m=n
n=
return
a=int(input(‘请输入a的值:’))
b=int(input(‘请输入b的值:’))
print(‘最大公约数是:' )
填空:
________ ________ ________ ________ ________
【参考答案】***试卷处理标记,请不要删除
一、程序填空
1.total=0i%3 == 2 and i%5 == 3 and i%7 == 2a[j]
【详解】
本题主要考查Python程序的执行与调试。

①变量total用来统计有多少种情况,初始值为0,第一空填total=0。

②当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个,即if判断条件为i%3 == 2 and i%5 == 3 and i%7 == 2,满足if条件时,将该值加到列表a中,故第二空填i%3 == 2 and i%5 == 3 and i%7 == 2。

③最后通过for循环输出所有可能的数,用变量j控制,故第三空填a[j]。

2.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)。

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.banana
apple
mango
a= 3
【详解】
本题主要考查Python中For循环结构。

for循环可以遍历任何序列的项目,如一个列表或
者一个字符串;len() 方法返回列表元素个数。

因此本题输出为各列表内容及列表元素个数。

【点睛】
7.A A s-max-min
【详解】
本题主要考查Python程序的执行与调试。

①在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由Entry控件生成的(Entry 是Tkinter 用来接收字符串等输入的控件,该控件允许用户输入一行文字),故选A选项。

②题目中算法描述采用的是伪代码,故选A选项。

③从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分,故此处填s-max-min。

8.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]
9.
【详解】
本题主要考查Python程序的执行与调试。

运行结果如下:
10.
【详解】
本题主要考查Python程序设计。

可以采用Python程序设计语言实现50以内所有5的倍数的和,可以结合while循环以及if条件分支结构实现,具体代码及实现如下:
11.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)
12.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)
13.A C
【详解】
本题主要考查Python程序设计。

①此处将n取余2,用append函数将值追加到列表result 中,故此处填n%2,选A选项。

②当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n//2,选C选项。

14.n r n
【详解】
本题考查的是Python循环语句。

辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。

如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

由n = min(x,y) 可知最小值为n,故①处为n,由r = m%n 可知余数为r,故②处为r,最后的除数是n(即最大公约数为n),故③处为n。

15.将year转换为整型数据,并赋值给year And year%100 != 0 or year
【详解】
本题主要考查Python程序设计。

①input接收的数据类型是字符串型,该语句表示将year 转换为整型数据,并赋值给year。

判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除,故第二、三、四空分别填② And
③year%100 != 0 ④or ⑤最后输出打印某一年是否是闰年,需要将year转换为字符型。

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

18.-b/(2*a)
【详解】
本题主要考查Python程序执行与调试。

①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。

②delta=0,则方程有
两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。

19.max1 arr1[i] max1
【详解】
本题主要考查Python程序执行与调试。

变量max1用来保存数组的最大值,初始值赋值为最小值-32768,第一空填max1,通过for循环依次比较当数组元素大于max1时,更新max1的值为该元素继续循环直到与所有元素比较完,第二空填arr1[i],最后输出最大值是max1,故第三空填max1。

20.total<60000every_year*0.68
【详解】
本题主要考查Python程序执行与调试。

①由题干可知,while循环条件是总销量total小
于60000,故第一空填total<60000。

②平均每年的销量比上一年增加68%,即every_year + =every_year*0.68,故第二空填every_year*0.68。

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

22.myRank.append(A[i]) j < len(B) k<len(A)+len(B)-1 A[i] < B[j]
【详解】
本题主要考查python编程。

根据表格所示,列表B中第5个元素为309,因此①处为309;A[i] < B[j]时,将列表末尾添加A[i],因此②处为myRank.append(A[i]);当列表未结束时,列表末尾添加相应元素,因此③处为j < len(B);算法二中引入变量k,用以记录i与j的和,当k小于len(A)+len(B)-1说明两列表未结束,因此④处为k<len(A)
+len(B)-1;若A[i] < B[j],则先将A[i] 添加至列表末尾,因此⑤处为A[i]< B[j]。

【点睛】
23.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。

24.f = True isprime(k+2)k=k+1 或 k+=1 或 k=k+2 或 k+=2
【详解】
本题主要考查Python程序的执行与调试。

①isprime(x)用来判断x是不是素数,通过用x 整除2~int(math.sqrt(x)),如果余数为0则表明该数不是素数,赋值f为假退出循环,f的初值为True,故第一空填f = True。

②若两个素数之差为 2,则该对素数称为双胞胎数,此处判断相差为2的两个数是不是素数,故第二空填isprime(k+2)。

③素数都是奇数,此处需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+1 或 k+=1 或
k=k+2 或 k+=2。

25.n=10 m=m+(n**(le-2-i))*a t=convert(s1) -24D
【详解】。

相关文档
最新文档