admin 管理员组文章数量: 887021
2024年1月10日发(作者:ui设计培训学校排行)
【编程】全国青少年软件编程(Python)等级考试试卷(一级)(2)
一、选择题
1.在Python中,设a=2,b=3,表达式a=3值是(
)
A.1
a=[4,5,3,6,7,8,2,9,1]
m ,c=1, 1
for i in range(1, len(a)):
if a[i]>=a[i-1]:
c+=1
m=max(m, c)
else:
c=1
print (c, m)
则程序执行后,c和m的值分别是( )
A.1和1 B.1和4 C.2和4 D.3和4
3.韦沐沐同学利用Python软件编写“求能被3整除的数”程序,在设计算法环节,使用流程图描述算法,如右图所示,其中空白处可以填入的是(
)
B.0 C.True D.False
2.有如下python程序段:
A.A÷3==0 B.A/3==0 C.A3==0 D.A%3==0
4.在Python程序中,要求s=3+6+9+…+300的值,可以采用如下代码,下列选项中的说法不正确的是(
)。
A.for循环语句中步长为3
C.语句s=s+i共循环执行了100次
B.语句s=0应改为s=1
D.程序使用了循环结构
5.利用Python编程实现计算z=a+aa+aaa+aaaa+aa..a的值,其中a是一个数字,如8+88+888+8888+88888。设计一个summalion()函数,输入变量为数字a和需要多少个数相加的n,在这个函数中,这些基本数由变量Basic来保存,前几个数的求和保存在变量sum中,Python程序如下左图所示,请在下划线处填写代码(
)完善程序实现如下右图的运行结果。
A.basic+=sum
s="abcdefg"
B.sum=basic+n C.sum=basic+1 D.sum+=basic
6.运行下列 Python程序,结果正确的是(
)
c=len(s) #len
求字符串长度
for i in range(0,c):
if i<2:
print (chr(ord(s[i])+2),end=" ") # ord()
函数是 chr()
函数配对函数,将字符转ASCII值
else:
print(chr(ord(s[i]) + 3),end=" ")
A.c d f g h a
A.1a=4
B.print=5
C._A=2
D.a+b=3
8.以下Python程序运行后,变量x和st的值分别是(
)。
B.c d f g h b C.c d f g h i j D.c d f g h c
7.以下Python中变量的命名正确的是(
)
A.801 123678
“123678”
B.801
“123678” C.801 801 D.123678
9.已知字符串变量x的值是“H”,字符“A”的ASCII值是65,则python表达式chr(ord(x)+2)的值是(
)
A.‘I’ B.‘J’ C.73 D.74
10.以下Python程序段执行后,输出结果为(
)。
A.m不能被3整除
A.a%0.001
A.input()
A."python"
A.高级语言
A.1
B.29不能被3整除 C.29能被3整除
B.a//0.001
B.int()
B.3.14
B.自然语言
B.-1
C.round(a,3)
C.print()
C.cnt
C.汇编语言
C.True
D.m能被3整除
D.round(3,a)
D.float()
D.2018
D.机器语言
D.False
11.要实现将实数型变量a的值保留三位小数,以下python可以实现的是(
)
12.在python中,想输出一行文字,要用到的函数是( )。
13.在python中,下列属于字符串常量的是(
)
14.我们学习了使用Python程序设计语言解决问题,Python程序设计语言属于(
)。
15.在Python中,设a=2,b=3,表达式 not(b-a>0)值是
(
)
二、程序填空
16.“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。
小明利用枚举算法解决“百元买百鸡”问题。用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,"种")
17.某字符转置算法描述如下:
将字符串(均为大写字符)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 )
´在 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 =s
´在Text 3
中输出转置后的字符串
End Sub
18.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。下面的程序能实现上述的功能,请将缺失的代码补充完整。
total= every_year=20000
year=1
while __________________ :
every_year + = ____________
total + = every_year
year + = 1
print(year)
19.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
20.约瑟夫问题是个有名的问题: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):
([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])
21.程序补充:
(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,“年后资金被全部取出”)
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.C
【详解】
本题主要考查Python基本运算。Python比较运算优先级高于逻辑运算,因此C选项正确。
【点睛】
解析:C
【详解】
本题主要考查Python基本运算。Python比较运算优先级高于逻辑运算,因此C选项正确。
【点睛】
2.B
【详解】
本题主要考查Python程序的执行。m=1,c=1,当i=1时,5>4,c+=1=2,m=max(m, c)=2;当i=2时,3<5,c=1;当i=3时,6>3,c+=1=2,m=ma
解析:B
【详解】
本题主要考查Python程序的执行。m=1,c=1,当i=1时,5>4,c+=1=2,m=max(m, c)=2;当i=2时,3<5,c=1;当i=3时,6>3,c+=1=2,m=max(m, c)=2;当i=4时,7>6,c+=1=3,m=max(m, c)=3;当i=5,8>7,c+=1=4,m=max(m, c)=4;当i=6时,2<8,c=1;当i=7时,9>2,c+=1=2,m=max(m, c)=4;当i=8时,1<9,c=1,循环结束,c和m的值分别是1和4,故本题选B选项。
3.D
【详解】
本题考查的是流程图及Python表达式相关知识。能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
解析:D
【详解】
本题考查的是流程图及Python表达式相关知识。能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
4.B
【详解】
本题主要考查Python程序调试。分析代码可知,for循环语句中步长为3,变量s的初值应为0,语句s=s+i共循环执行了100次,程序使用了for循环结构,故本题选B选项。
解析:B
【详解】
本题主要考查Python程序调试。分析代码可知,for循环语句中步长为3,变量s的初值应为0,语句s=s+i共循环执行了100次,程序使用了for循环结构,故本题选B选项。
5.D
【详解】
本题主要考查Python程序的执行与调试。变量sum用来求和,变量basic用来保存第i个数,下划线处对第i轮求和,故填sum=sum+basic,故选D选项。
解析:D
【详解】
本题主要考查Python程序的执行与调试。变量sum用来求和,变量basic用来保存第i个数,下划线处对第i轮求和,故填sum=sum+basic,故选D选项。
6.C
【详解】
本题主要考查Python程序的执行。c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是c d f g h
解析:C
【详解】
本题主要考查Python程序的执行。c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是c d f
g h i j,故本题选C选项。
7.C
【详解】
本题考查Python变量命名规则
变量命名不能以数字开头,不能使用关键字,不能使用特殊符号。故本题选C选项
解析:C
【详解】
本题考查Python变量命名规则
变量命名不能以数字开头,不能使用关键字,不能使用特殊符号。故本题选C选项
8.B
【详解】
本题主要考查Python语句执行。语句X=123+678是整型类型运算,值为801;语句St="123"+"678"是字符串运算,直接拼接,值为"123678",故本题选B选项。
解析:B
【详解】
本题主要考查Python语句执行。语句X=123+678是整型类型运算,值为801;语句St="123"+"678"是字符串运算,直接拼接,值为"123678",故本题选B选项。
9.B
【详解】
本题主要考查Python字符函数。ord函数用于将字符转换为整数, chr函数接受一个数字(应为ASCII码)并返回字符。则python表达式chr(ord(x)+2)=chr(ord
解析:B
【详解】
本题主要考查Python字符函数。ord函数用于将字符转换为整数, chr函数接受一个数字(应为ASCII码)并返回字符。则python表达式chr(ord(x)+2)=chr(ord(H)+2)=chr(74)=‘J’,故本题选B选项。
10.B
【详解】
本题考查的是Python选择语句。print是输出语句,%是求余,!=是不等于,29%3=2,条件不成立,则执行输出29不能被3整除。故本题应选B。
解析:B
【详解】
本题考查的是Python选择语句。print是输出语句,%是求余,!=是不等于,29%3=2,条件不成立,则执行输出29不能被3整除。故本题应选B。
11.C
【详解】
本题主要考查Python函数。round(x,n)方法返回 x
的小数点四舍五入到n个数字,故要实现将实数型变量a的值保留三位小数,可以使用语句round(a,3),故本题选C选项。
解析:C
【详解】
本题主要考查Python函数。round(x,n)方法返回 x
的小数点四舍五入到n个数字,故要实现将实数型变量a的值保留三位小数,可以使用语句round(a,3),故本题选C选项。
12.C
【详解】
本题考查的是python基本函数相关知识。input函数接受一个标准输入数据,返回为 string
类型,故选项A错误;int可以将一个指定进制的数字型字符串或者十进制数字转化为整形,
解析:C
【详解】
本题考查的是python基本函数相关知识。input函数接受一个标准输入数据,返回为 string
类型,故选项A错误;int可以将一个指定进制的数字型字符串或者十进制数字转化为整形,故选项B错误;print是输出函数,故选项C正确;float用于将整数和字符串转换成浮点数,故选项D错误。
13.A
【详解】
本题主要考查Python数据类型。"python"是字符串常量,3.14、2018是数值型常量,cnt是变量,故本题选A选项。
解析:A
【详解】
本题主要考查Python数据类型。"python"是字符串常量,3.14、2018是数值型常量,cnt是变量,故本题选A选项。
14.A
【详解】
本题主要考查Python程序设计语言。Python、VB、C程序设计语言等均属于高级语言,故本题选A选项。
解析:A
【详解】
本题主要考查Python程序设计语言。Python、VB、C程序设计语言等均属于高级语言,故本题选A选项。
15.D
【详解】
本题主要考查Python表达式的运算。a=2,b=3,b-a>0值为True,则表达式
not(b-a>0)值是False,故本题选D选项。
解析:D
【详解】
本题主要考查Python表达式的运算。a=2,b=3,b-a>0值为True,则表达式 not(b-a>0)值是False,故本题选D选项。
二、程序填空
16.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。
17.①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”。
18.total<60000
every_year*0.68
【详解】
本题主要考查Python程序执行与调试。①由题干可知,while循环条件是总销量total小于60000,故第一空填total<60000。②平均每年的销量比上一年增加68%,即every_year
+ =every_year*0.68,故第二空填every_year*0.68。
19.
【详解】
本题主要考查Python程序的执行与调试。运行结果如下:
20.([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中,故填([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]
21.[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。
版权声明:本文标题:【编程】全国青少年软件编程(Python)等级考试试卷(一级)(2) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1704856568h464535.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论