全国青少年软件编程(Python)等级考试试卷(一级)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国青少年软件编程(Python)等级考试试卷(一级)
一、选择题
1.下面的Python程序段运行后的输出结果是()
List=[‘10’,25,’猕猴桃’,9,65]
Print(List[3])
A.25 B.’猕猴桃’C.猕猴桃D.9
2.以下哪个不是python关键字()
A.cout B.from C.not D.or
3.在Python中,下列循环结构用法错误的是()。
A.for i in range(20):B.for i in range(0,10):
C.for i in range(10,0,2): D.while s<50:
4.下列Python程序段的运行结果是()
i=0
sum=0
while i<10:
if i%2==0:
sum+=i
i+=1
print(‘sum=’,sum)
A.sum=18 B.sum=20 C.sum=22 D.sum=30
5.韦沐沐同学利用Python软件编写“求能被3整除的数”程序,在设计算法环节,使用流程图描述算法,如右图所示,其中空白处可以填入的是()
A.A÷3==0 B.A/3==0 C.A\3==0 D.A%3==0 6.Python表达式a=b中“=”表示()
A.交换“=”左右两边变量的值
B.把“=”右边变量的值赋值给左边变量
C.把“=”左边变量的值赋值给右边变量
D.比较“=”左右两边变量的值是否相等
7.下面哪个不是Python合法的标识符()
A.int_3 B.30XL C.self D._abc 8.以下属于计算机高级语言的是()
A.Python B.自然语言C.汇编语言D.机器语言9.以下Python中变量的命名正确的是()
A.1a=4
B.print=5
C._A=2
D.a+b=3
10.下列选项中,可作为Python变量名的是()
A.int B.Abc C.float D.Complex 11.以下选项中,不是Python中文件操作的相关函数是()。
A.open () B.load ()
C.read () D.write ()
12.以下Python程序段执行后,输出结果为()。
A.m不能被3整除B.29不能被3整除C.29能被3整除D.m能被3整除13.下列哪个语句在Python中是非法的?()
A.x=y=z=1 B.x=(y=z+1)C.x,y=y,x D.x+=y
14.在Python中,返回x的绝对值的函数是()。
A.abs(x) B.bin(x) C.all(x) D.input(x)
15.在Python中print(-14//4)的运行结果是()。
A.-4 B.-3.5 C.2 D.-2
二、程序填空
16.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。
请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。
17.设计完成算法之后,小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:
错的原因是:
_______________________________________________________________________________ _____________。
行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。
小C借助于计算机编写程序解决问题的这个过程是:①设计算法②编写程序③分析问题④调试运行程序,合理的顺序是_________。
(填写序号即可)
(5)总结用计算机解决问题的优势主要有:
_______________________________________________。
18.某企业开展“运动打卡动动有奖”活动:若员工在本月累计运动时间30小时以下,奖励0元;达到30但不足45小时奖励300元;达到45但不足60小时奖励450元;60小时及以上奖励500元。
小强用python编写程序实现相关功能:输入某员工本月累计运动时间(时),输出其能获得的奖励金额。
(1)实现上述功能的程序如下,请在划线处填入合适的代码。
t=int(input(“请输入您本月累计运动时间(时):”))
if t<0:
print(“输入错误”)
else:
if t<30:
①_
elif t<45:
m=300
②_____
m=450
else:
m=500
print(“您的奖励是:”,m)
(2)当输入“-1”时,输出信息为_________(选填,填字母:A.输入错误 / B.您的奖
励是:0 / C.您的奖励是:500)
19.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。
为求解规模为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)
20.完善代码并保存。
实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。
cj=[]
for i in range(0,________):
x=float(input("请输入一个数"))
cj.append(________)
print(max(cj), min(________))
input("运行完毕,请按回车键退出...")
21.完善程序。
以下是计算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)
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.D
【详解】
本题主要考查Python程序的执行。
列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。
解析:D
【详解】
本题主要考查Python程序的执行。
列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。
2.A
【详解】
本题主要考查Python关键字。
关键字from一般用于类的导入,not、or是逻辑运算符,cout不是Python关键字,故本题选A选项。
解析:A
【详解】
本题主要考查Python关键字。
关键字from一般用于类的导入,not、or是逻辑运算符,cout不是Python关键字,故本题选A选项。
3.C
【详解】
本题主要考查Python循环结构。
range函数中第一个参数是起始值,第二个参数是终值,第三个参数是每次递增值,语句for i in range(10,0,2):初值是10,终值是0,
解析:C
【详解】
本题主要考查Python循环结构。
range函数中第一个参数是起始值,第二个参数是终值,第三个参数是每次递增值,语句for i in range(10,0,2):初值是10,终值是0,每次递增2,将出现死循环,故本题选C选项。
4.B
【详解】
本题考查Python语句。
根据while可知,当if i%2==0成立时,sum+=i,i=2,4,6,8时,If条件成立,故sum=2+4+6+8=20,又根据print(‘sum
解析:B
【详解】
本题考查Python语句。
根据while可知,当if i%2==0成立时,sum+=i,i=2,4,6,8时,If条件成立,故sum=2+4+6+8=20,又根据print(‘sum=’,sum),则最后运行结果是sum=20,故本题选B。
5.D
【详解】
本题考查的是流程图及Python表达式相关知识。
能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
解析:D
【详解】
本题考查的是流程图及Python表达式相关知识。
能被3整除的数即除3的余数为0,在Python中%表示求余,故本题应选D。
6.B
【详解】
本题主要考查Python赋值语句。
Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。
解析:B
【详解】
本题主要考查Python赋值语句。
Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。
7.B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
故30XL不是Python合法的标识符,故本题选B选项。
解析:B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
故30XL不是Python合法的标识符,故本题选B选项。
8.A
【详解】
本题考查计算机语言的相关知识点
计算机高级语言有Python、Java等
计算机低级语言有汇编语言
机器语言是计算机直接识别并执行的语言。
故本题选A选项
解析:A
【详解】
本题考查计算机语言的相关知识点
计算机高级语言有Python、Java等
计算机低级语言有汇编语言
机器语言是计算机直接识别并执行的语言。
故本题选A选项
9.C
【详解】
本题考查Python变量命名规则
变量命名不能以数字开头,不能使用关键字,不能使用特殊符号。
故本题选C 选项
解析:C
【详解】
本题考查Python变量命名规则
变量命名不能以数字开头,不能使用关键字,不能使用特殊符号。
故本题选C选项10.B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故可作为Python变量名的是Abc,故本题选B选项。
解析:B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故可作为Python变量名的是Abc,故本题选B选项。
11.B
【详解】
本题主要考查Python文件操作函数。
open ()是文件打开函数,read () 、write ()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项
解析:B
【详解】
本题主要考查Python文件操作函数。
open ()是文件打开函数,read () 、write ()是文件读写函数;json.load()用于从json文件中读取数据,故本题选B选项。
12.B
【详解】
本题考查的是Python选择语句。
print是输出语句,%是求余,!=是不等于,29%3=2,条件不成立,则执行输出29不能被3整除。
故本题应选B。
解析:B
【详解】
本题考查的是Python选择语句。
print是输出语句,%是求余,!=是不等于,29%3=2,条件不成立,则执行输出29不能被3整除。
故本题应选B。
13.B
【详解】
本题主要考查Python程序的语句。
x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(交换x和y的值),x+=y等价于x=x+y,x=(y=z+1)是非法的语句,故本题选B
解析:B
【详解】
本题主要考查Python程序的语句。
x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(交换x和y的值),x+=y等价于x=x+y,x=(y=z+1)是非法的语句,故本题选B选项。
14.A
【详解】
本题主要考查Python标准函数。
在Python中,返回x的绝对值的函数是
abs(x),bin() 返回一个整数或者长整数的二进制表示,all() 函数用于判断给定的可迭代参数中的所有
解析:A
【详解】
本题主要考查Python标准函数。
在Python中,返回x的绝对值的函数是abs(x),bin() 返回一个整数或者长整数的二进制表示,all() 函数用于判断给定的可迭代参数中的所有元素是否都为 TRUE,input(x)是输入函数,故本题选A选项。
15.A
【详解】
本题主要考查Python表达式的运算。
运算符//表示向下取整,-14//4=-4,
14//4=3,故本题选A选项。
解析:A
【详解】
本题主要考查Python表达式的运算。
运算符//表示向下取整,-14//4=-4,14//4=3,故本题选A选项。
二、程序填空
16.原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。
对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。
一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。
方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。
利用蒙特卡洛方法实现求解圆周率
#!/usr/bin/Python
#-*- coding:utf-8 -*-
import random
import math
def monteCarlo(N):
i = 0
count = 0
while i <= N:
x = random.random()
y = random.random()
if pow(x, 2) + pow(y, 2) < 1:
count += 1
i += 1
pi = 4 * count / N
print(pi)
monteCarlo(1000000)
【详解】
本题考查的知识点是Python程序。
原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。
对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。
一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。
方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。
利用蒙特卡洛方法实现求解圆周率#!/usr/bin/Python#-*- coding:utf-8 -*-import randomimport mathdef monteCarlo(N): i = 0 count = 0 while i <= N: x = random.random() y = random.random() if pow(x, 2) + pow(y, 2) < 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)
17.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借助于计算机编写程序解决问题的这个过程,合理的顺序是:③分析问题①设计算法②编写程序④调试运行程序。
⑧略
18.m=0 elift<60: A
【详解】
本题主要考查Python程序的执行与调试。
①若员工在本月累计运动时间30小时以下,奖励0元,即m=0。
②达到45但不足60小时奖励450元,故填elift<60:。
③-1<0,不是有效值,故输出信息为“输入错误”,故本题选A选项。
19.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)。
20.x cj
【详解】
本题主要考查Python程序执行与调试。
①从键盘输入10个学生的测试成绩,range(a,b)的范围是从a~b,但不包括b,故第一空填10。
②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。
③求最大值用max函数,求最小值用min函数,故第三空填cj。
21. 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)。