编程中国电子学会青少年软件编程等级考试标准python一级.docx
《编程中国电子学会青少年软件编程等级考试标准python一级.docx》由会员分享,可在线阅读,更多相关《编程中国电子学会青少年软件编程等级考试标准python一级.docx(16页珍藏版)》请在冰点文库上搜索。
编程中国电子学会青少年软件编程等级考试标准python一级
【编程】中国电子学会青少年软件编程等级考试标准python一级
一、选择题
1.下列哪条赋值语句在Python中是非法的:
()
A.X=Y=Z=1B.X=(Y=Z+1)C.X,Y=Y,XD.X+=Y
2.在Python程序中,已知x=2,y=1,当执行语句y+=x*2,y的值是()
A.3B.4C.5D.6
3.在python中,下列哪个选项是正确的赋值语句()
A.5s=80B.2018=xC.a+b=cD.s=s+5
4.在Python中,input()函数的返回结果的数据类型为()
A.Number型B.String型C.List型D.Sets型
5.有如下VB程序段:
s1="python":
s2="visual"
i=1:
j=1:
s=""
DoWhilei<=Len(s1)Andj<=Len(s2)
IfMid(s1,i,1)>=Mid(s2,j,1)Then
s=s+Mid(s1,i,1)
Else
j=j+1
EndIf
i=i+1
Loop
执行该程序后,j的值是()
A.2B.3C.5D.7
6.以下不属于高级程序设计语言的是()。
A.C++B.VBC.机器语言D.Python
7.以下python程序段运行后,x和st的值分别是()
x= 123 + 678
st = "123" + "678"
A.123678"123678"B.123678"801"C.801"123678"D.801"801"
8.以下选项中,不是Python中文件操作的相关函数是()。
A.open()B.load()
C.read()D.write()
9.下列Python程序运行后的输出结果是()。
s=0
foriinrange(1,10):
s=s+i
print("s=",s)
A.s=35B.s=45C.s=55D.s=65
10.关于python程序设计语言,下列说法错误的是()
A.python是一种面向对象的编程语言B.python代码只能在交互环境中运行
C.python具有丰富和强大的库D.python是一种解释型的计算机程序设计高级语言
11.python文件的扩展名是()
A.pyB.pyeC.vbpD.pyr
12.运行如下Python程序,结果为()。
A.1B.3C.6D.18
13.Python文件的后缀名是()
A.pdfB.doC.passD.py
14.下列python表达式结果为5的是()
A.abs(int(-5.6))B.len("3+5>=6")C.ord("5")D.round(5.9)
15.下列属于正确的Python变量名的是()
A.True
B.88abc
C.abc&88
D._abc88
二、程序填空
16.模拟一个简单计算器,实现如下功能:
输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。
程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。
当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。
当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!
”。
Python程序实现如下,在划线处填入合适的代码。
a=int(input("请输入第一个数:
"))
fh=input("请输入运算符:
")
b=int(input("请输入第二个数:
"))
flag=True
s=____
iffhins:
iffh=="+":
c=a+b
eliffh=="-":
c=a-b
eliffh=="*":
c=a*b
else:
if____
print("除数不能为0!
")
flag=False
else:
c=a/b
ifflag==True:
print("运算的结果为:
"+____)
else:
print("运算符不正确")
17.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。
为求解规模为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的值为整数,从键盘输入)。
请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。
deff(n):
ifn==0:
return1
else:
return_________
s=0
n=int(input("请输入n:
"))
foriin_______:
s=________
print(s)
18.阅读程序。
观察使用随机数求解百钱白鸡问题的代码并回答问题。
百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
”翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
importrandom
whileTrue:
x=random.randrange(0,20)
y=random.randrange(0,33)
z=random.randrange(0,100)
if5*x+3*y+z/3==100andx+y+z==100:
print('公鸡',x)
print('母鸡',y)
print('小鸡',z)
(1)Python中导入库文件的命令是________。
(2)random.randrange(0,20)生成的随机数的范围是_________
。
(3)如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为
________
(4)whileTrue的作用是______。
(5)如果whileTrue造成程序无法停止,我们可以在程序中添加一行_________。
19.哥德巴赫在1742年提出了以下猜想:
任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。
importmath
defss(n):
Flag=True
i=2
whilei<=int(math.sqrt(n))andFlag:
if_____________
Flag=False
_____________
returnFlag
n=int(input(“输入一个大于2的偶数”))
foriinrang(2,n//2+1):
if____________
print(str(n)+"="+str(i)+"+"+str(n-i))
如果输入“8”则结果显示_____
20.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。
*
**
***
****
21.冠军在A、B、C、D四位同学中。
A说:
“不是我”,B说:
“是C”,C说:
“是D”,D说:
“C说的不对”,已知四人中有一人说了假话。
判断出到底谁是冠军。
请在空格处填写正确的代码,使程序完善。
champion=['A','B','C','D']#设置选手列表
foriin__________:
#循环读取选手编号
cond=(i!
='A')+(i=='C')+(i=='D')+(i!
='D')#查找符合条件的选手
ifcond==_____:
#说真话是否是3人
print("冠军是:
",_________)#输出冠军
input("运行完毕,请按回车键退出...")
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.B
【详解】
本题考查Python语句。
选项A,X=Y=Z=1是合法的赋值语句;选项B,X=(Y=Z+1),X被赋值“Y=Z+1”,但这个所谓的“Y=Z+1”并不返回任何值,所以这是一个错误的赋值语
解析:
B
【详解】
本题考查Python语句。
选项A,X=Y=Z=1是合法的赋值语句;选项B,X=(Y=Z+1),X被赋值“Y=Z+1”,但这个所谓的“Y=Z+1”并不返回任何值,所以这是一个错误的赋值语句,这是非法的;选项C,X,Y=Y,X这是交换语句,合法;选项D,X+=Y相当于X=X+Y,故本题选B。
2.C
【详解】
本题主要考查Python程序语句。
x=2,y=1,语句y+=x*2等价于y=y+x*2=1+2*2=5,故y的值是5,故本题选C选项。
解析:
C
【详解】
本题主要考查Python程序语句。
x=2,y=1,语句y+=x*2等价于y=y+x*2=1+2*2=5,故y的值是5,故本题选C选项。
3.D
【详解】
本题主要考查Python赋值语句。
“5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。
解析:
D
【详解】
本题主要考查Python赋值语句。
“5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。
4.B
【详解】
本题主要考查Python输入函数。
在Python中,input()函数的返回结果的数据类型为字符串String型,故本题选B选项。
解析:
B
【详解】
本题主要考查Python输入函数。
在Python中,input()函数的返回结果的数据类型为字符串String型,故本题选B选项。
5.C
【详解】
本题主要考查VB程序的执行。
分析程序可知,变量i控制从s1中取字符,变量j从s2中取字符,依次比较字符串s1、s2的每一个字符,若s1中的字符大于或等于s2中的字符,则将s1中对应的字
解析:
C
【详解】
本题主要考查VB程序的执行。
分析程序可知,变量i控制从s1中取字符,变量j从s2中取字符,依次比较字符串s1、s2的每一个字符,若s1中的字符大于或等于s2中的字符,则将s1中对应的字符拼接到变量s中,否则变量j递增。
第一遍循环,i=1,j=1,“p”<“v”,j=j+1=2,i=i+1=2;第二遍循环,“y”>“i”,i=i+1=3;第三遍循环,“t”>“i”,i=i+1=4;第四遍循环,“h”<“i”,j=j+1=3,i=i+1=5;第五遍循环,“o”<“s”,j=j+1=4,i=i+1=6;第六遍循环,“n”<“u”,j=j+1=5,i=i+1=7,循环结束,故执行该程序后,j的值是5,故本题选C选项。
6.C
【详解】
本题考查计算机语言。
C++,VB,Python都属于高级程序设计语言。
机器语言则不是。
故本题选项C不属于高级程序设计语言。
解析:
C
【详解】
本题考查计算机语言。
C++,VB,Python都属于高级程序设计语言。
机器语言则不是。
故本题选项C不属于高级程序设计语言。
7.C
【详解】
本题主要考查Python程序的执行。
x=123+678=801,st="123"+"678"="123678"(字符串类型相加等于字符串的拼接),故本题选C选项。
解析:
C
【详解】
本题主要考查Python程序的执行。
x=123+678=801,st="123"+"678"="123678"(字符串类型相加等于字符串的拼接),故本题选C选项。
8.B
【详解】
本题主要考查Python文件操作函数。
open()是文件打开函数,read()、write()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项
解析:
B
【详解】
本题主要考查Python文件操作函数。
open()是文件打开函数,read()、write()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项。
9.B
【详解】
本题主要考查Python程序的执行。
s=0,变量i的范围是1~9,循环体是s=s+i,程序运行后s=s+i=0+1+2+3+4+5+6+7+8+9=45,故本题选B选项。
解析:
B
【详解】
本题主要考查Python程序的执行。
s=0,变量i的范围是1~9,循环体是s=s+i,程序运行后s=s+i=0+1+2+3+4+5+6+7+8+9=45,故本题选B选项。
10.B
【详解】
本题主要考查Python程序设计语言。
python是一种面向对象的编程语言,python代码可以在交互环境中运行,python具有丰富和强大的库,python是一种解释型的计算机程序设
解析:
B
【详解】
本题主要考查Python程序设计语言。
python是一种面向对象的编程语言,python代码可以在交互环境中运行,python具有丰富和强大的库,python是一种解释型的计算机程序设计高级语言,故本题选B选项。
11.A
【详解】
本题主要考查Python文件。
python文件的扩展名是py,故本题选A选项。
解析:
A
【详解】
本题主要考查Python文件。
python文件的扩展名是py,故本题选A选项。
12.C
【详解】
本题主要考查Python循环结构。
分析程序可知,该程序求m、n的最大公约数,程序结束后m=6,此时r=0,故本题选C选项。
解析:
C
【详解】
本题主要考查Python循环结构。
分析程序可知,该程序求m、n的最大公约数,程序结束后m=6,此时r=0,故本题选C选项。
13.D
【详解】
本题主要考查Python文件知识点。
Python文件的后缀名是py,故本题选D选项。
解析:
D
【详解】
本题主要考查Python文件知识点。
Python文件的后缀名是py,故本题选D选项。
14.A
【详解】
本题主要考查Python表达式。
int是取整函数,abs求绝对值函数,len返回字符串的长度,ord()函数主要用来返回对应字符的ascii码,round是四舍五入函数,故abs(in
解析:
A
【详解】
本题主要考查Python表达式。
int是取整函数,abs求绝对值函数,len返回字符串的长度,ord()函数主要用来返回对应字符的ascii码,round是四舍五入函数,故abs(int(-5.6))=5,len("3+5>=6")=6,ord("5")=53,round(5.9)=6,故本题选A选项。
15.D
【详解】
本题主要考查Python变量名命名规则。
Python变量名命名规则如下:
(1)Python变量名可以由字母、数字、下划线(_)组成,其中数字不能打头;
(2)Python变量名不能是P
解析:
D
【详解】
本题主要考查Python变量名命名规则。
Python变量名命名规则如下:
(1)Python变量名可以由字母、数字、下划线(_)组成,其中数字不能打头;
(2)Python变量名不能是Python关键字,但可以包含关键字;(3)Python变量名不能包含空格。
由上可知D选项正确。
【点睛】
二、程序填空
16."+-*/"b==0str(c)
【详解】
本题主要考查Python程序执行与调试。
①变量fh用来接收运算符,由代码“iffhins”可知,变量s保存加减乘除(+-*/)四种运算符,故此处填"+-*/"。
②变量b保存第二个数,当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!
”,此处是处理b=0的情况,故填b==0。
③变量c保存运算结果,此处输出c的结果,故填str(c)。
17.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,foriinrange(1,n+1)表示i的范围是[1,n],故此处填range(1,n+1)。
③循环体实现累加,将每一项阶乘f(i)加到s中,故此处填s+f(i)。
18.import0~19(包括0和19)importrandomasr让程序无限循环break;
【详解】
本题主要考查Python程序的执行与调试。
①Python中导入库文件的命令是import,如importrandom。
②random.randrange(0,20)生成的随机数的范围是0~19(包括0和19)。
③如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为importrandomasr(给random取个简单的别名)。
④whileTrue的作用是让程序无限循环。
⑤如果whileTrue造成程序无法停止,我们可以在程序中添加一行break;(满足条件后,执行break;可以跳出循环)。
19.n%i==0:
i+=1ss(i)andss(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)andss(n-i):
。
④如果输入“8”则结果显示8=3+5。
20.layer=int(input("请输入需要打印的层数:
"))
forxinrange(1,layer+1):
foryinrange(1,x+1):
print("*",end="")
print("")
【详解】
本题主要考查Python循环结构。
Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。
range可以生成一个整数列表,列表范围根据接收的layer来确定。
外层循环用于确定输出行数,内层循环用于控制每行符号个数。
【点睛】
21.champion3i
【详解】
本题主要考查Python程序的执行。
①champion是选手编号列表,此处是循环读取选手编号,使用foriinchampion,故此处填champion。
②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。
③当cond是3时,i即为冠军,故此处填i。