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。


本文标签: 本题 考查 变量 函数 字符