电子学会python二级官方模拟试题word.docx
《电子学会python二级官方模拟试题word.docx》由会员分享,可在线阅读,更多相关《电子学会python二级官方模拟试题word.docx(12页珍藏版)》请在冰豆网上搜索。
电子学会python二级官方模拟试题word
电子学会python二级官方模拟试题word
一、选择题
1.已知字符串a="python",则a[1]的值为()
A."p"B."py"C."Py"D."y"
2.在Python中,不同的数据,需要定义不同的数据类型,可用方括号“[]”来定义的是()
A.列表B.元组C.集合D.字典
3.Python表达式a=b中“=”表示()
A.交换“=”左右两边变量的值
B.把“=”右边变量的值赋值给左边变量
C.把“=”左边变量的值赋值给右边变量
D.比较“=”左右两边变量的值是否相等
4.有如下python程序段
n=int(input("请输入n值:
"))
x=n;y=0
ifx>0:
y=y+1
elifx<0:
y=y-1
print(y)
执行上述语句,下列说法不正确的是()
A.若输入-1,则输出y值为-1B.若输入0,则输出y值为-1
C.若输入1,则输出y值为1D.若输入2,则输出y值为1
5.王明编写了Python程序,根据输入的体重和身高计算BM值并显示是否超标。
王明体重80kg,身高170cm。
其中“体重80kg”“身高170cm”是对王明体重身高的符号记录属于()
A.数据B.信息C.知识D.智慧
6.运行下列Python程序,结果正确的是()
s="abcdefg"
c=len(s)#len求字符串长度
foriinrange(0,c):
ifi<2:
print(chr(ord(s[i])+2),end="")#ord()函数是chr()函数配对函数,将字符转ASCII值
else:
print(chr(ord(s[i])+3),end="")
A.cdfghaB.cdfghbC.cdfghijD.cdfghc
7.有如下python程序段:
a="Doingisbetterthansaying."
print(r"\n"+a[:
15])
该程序运行后,输出的结果是()
A.直接输出:
'\nDoingisbetter'
B.直接输出:
\nDoingisbetterth
C.直接输出:
\nDoingisbetter
D.先换行,然后在新的一行中输出:
Doingisbetter
8.如图Python代码执行后,a,b的值分别为:
()
A.5,10B.10,5C.5,5D.10,10
9.有如下Python程序,当程序运行后输入15000,则程序输出结果为()
A.2800B.2800.0C.12200D.12200.0
10.python用来表示代码块所属关系(控制层级结构的)的语法符号是()
A.圆括号B.大括号C.缩进D.冒号
11.下列选项中,合法的Python变量名是()
A.printB.speedC.PD.a#2
12.下列哪个语句在Python中是非法的?
( )
A.x=y=z=1B.x=(y=z+1)
C.x,y=y,xD.x += y
13.下列Python语句中,会导致程序运行出错的语句是()
A.x=(y=1)B.x,y=y,xC.x=1;y=1D.x=y=1
14.以下Python程序运行后的输出结果为()
A.0B.45C.46D.362880
15.下列Python程序段运行的结果是()
f=[‘A’,’B’,’C’]
a=len(f)
print(‘a=’,a)
A.a=2B.a=’A’C.a=’C’D.a=3
二、程序填空
16.(项目情境)水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:
1**3+5**3+3**3=153。
这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
(问题求解)设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。
需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。
请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
print("三位数之内的水仙花是:
")
forxin_____:
b=x//100
s=_____
g=_____
ifx==(b**3+s**3+g**3):
_____
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.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。
公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。
判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。
以下是一段用于判断某一年是否是闰年的程序。
请将上面程序框中空格处的内容填写完整,其中①处填写代码注释
_________________________________________
19.(最大公约数)用辗转相除法求两个正整数的最大公约数。
代码如下:
defgcd(m,n):
r=
whiler!
=0:
m=n
n=
return
a=int(input(‘请输入a的值:
’))
b=int(input(‘请输入b的值:
’))
print(‘最大公约数是:
')
填空:
________________________________________
20.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。
21.请在空格处填写正确的代码,使程序完善。
实现功能:
绘制y=x2-2x+1的图像
#加载numpy模块并限简洁的别名为np
importnumpyasnp
#加载matplotlib.pyplot模块并限简洁的别名为plt
importmatplotlib.pyplotasplt
#x在-7到9之间,每隔0.1取一个点
x=np.arange(-7,9,0.1)
_____=x**2-2*x+1
plt.plot(x,________)
plt.title('y=x*x-2*x+1')
plt.xlabel('x')
plt.ylabel('y')
plt._________
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.D
【详解】
本题主要考查Python字符串。
字符串索引从0开始,a[0]="p",a[1]="y",故本题选D选项。
解析:
D
【详解】
本题主要考查Python字符串。
字符串索引从0开始,a[0]="p",a[1]="y",故本题选D选项。
2.A
【详解】
本题主要考查Python数据类型。
列表用方括号“[]”来定义,元组可以用圆括号“()”来定义,集合可以用大括号“{}”来定义,字典用大括号“{}”来定义,故本题选A选项。
解析:
A
【详解】
本题主要考查Python数据类型。
列表用方括号“[]”来定义,元组可以用圆括号“()”来定义,集合可以用大括号“{}”来定义,字典用大括号“{}”来定义,故本题选A选项。
3.B
【详解】
本题主要考查Python赋值语句。
Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。
解析:
B
【详解】
本题主要考查Python赋值语句。
Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。
4.B
【详解】
本题主要考查Python程序执行。
分析程序可知,当x>0,执行y=y+1;当x<0,执行y=y-1;若输入0,则不满足if条件结构跳过,输出y值为0,故本题选B选项。
解析:
B
【详解】
本题主要考查Python程序执行。
分析程序可知,当x>0,执行y=y+1;当x<0,执行y=y-1;若输入0,则不满足if条件结构跳过,输出y值为0,故本题选B选项。
5.A
【详解】
本题考查的是数据的定义。
数据是客观事物的符号记录,是信息的载体,是计算机加工的对象。
“体重80kg”、“身高170cm”是对王明体重身高的符号记录属于数据。
故本题应选A。
解析:
A
【详解】
本题考查的是数据的定义。
数据是客观事物的符号记录,是信息的载体,是计算机加工的对象。
“体重80kg”、“身高170cm”是对王明体重身高的符号记录属于数据。
故本题应选A。
6.C
【详解】
本题主要考查Python程序的执行。
c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是cdfgh
解析:
C
【详解】
本题主要考查Python程序的执行。
c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是cdfghij,故本题选C选项。
7.C
【详解】
本题主要考查Python程序运行。
r标识\后面的字符不转义,a[:
15]表示从a的右边往左第15位到最左边全部输出,故该程序运行后,输出的结果是直接输出:
\nDoingis
解析:
C
【详解】
本题主要考查Python程序运行。
r标识\后面的字符不转义,a[:
15]表示从a的右边往左第15位到最左边全部输出,故该程序运行后,输出的结果是直接输出:
\nDoingisbetter,故本题选C选项。
8.B
【详解】
本题主要考查Python程序的执行。
a=5,b=10,c=a=5,a=b=10,b=c=5,故代码执行后,a,b的值分别为:
10和5,故本题选B选项。
解析:
B
【详解】
本题主要考查Python程序的执行。
a=5,b=10,c=a=5,a=b=10,b=c=5,故代码执行后,a,b的值分别为:
10和5,故本题选B选项。
9.D
【详解】
本题考查的是Python的选择嵌套语句。
先判断是否小于等于5000,接着在判断是否小于等于7000,最后判断是否小于等于10000。
15000不小于等于10000,故执行tax=800
解析:
D
【详解】
本题考查的是Python的选择嵌套语句。
先判断是否小于等于5000,接着在判断是否小于等于7000,最后判断是否小于等于10000。
15000不小于等于10000,故执行tax=800+(salary-1000)*0.4=800+(15000-10000)*0.4=800+2000=2800.0。
因为salary接收的是浮点型数据。
salary-tax=15000-2800.0=12200.0。
故选项D正确。
10.C
【详解】
本题主要考查Python语法。
python用来表示代码块所属关系(控制层级结构的)的语法符号是缩进,故本题选C选项。
解析:
C
【详解】
本题主要考查Python语法。
python用来表示代码块所属关系(控制层级结构的)的语法符号是缩进,故本题选C选项。
11.B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故合法的Python变量名是speed,故本题选B选项。
解析:
B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故合法的Python变量名是speed,故本题选B选项。
12.B
【详解】
本题主要考查Python赋值语句。
语句x=y=z=1,赋值x、y、z值均为1;语句x,y=y,x交换x、y的值;x+=y等价于x=x+y;语句x=(y=
解析:
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选项。
13.A
【详解】
本题考查的是Python赋值语句。
赋值号“=”的左边是变量,右边是常量或表达式,选项A中y=1是赋值语句不是表示,故选项A会报错。
解析:
A
【详解】
本题考查的是Python赋值语句。
赋值号“=”的左边是变量,右边是常量或表达式,选项A中y=1是赋值语句不是表示,故选项A会报错。
14.A
【详解】
本题考查的是Python循环语句。
range(10)是[0,10)的整数。
故m=0*1*2*3*4*5*6*7*8*9=0,选项A正确。
解析:
A
【详解】
本题考查的是Python循环语句。
range(10)是[0,10)的整数。
故m=0*1*2*3*4*5*6*7*8*9=0,选项A正确。
15.D
【详解】
本题主要考查Python程序的执行。
a=len(f)=3,故print(‘a=’,a)的结果是a=3,故本题选D选项。
解析:
D
【详解】
本题主要考查Python程序的执行。
a=len(f)=3,故print(‘a=’,a)的结果是a=3,故本题选D选项。
二、程序填空
16.range(100,1000)x//10%10x%10print("三位数之内的水仙花是:
"+str(x))
【详解】
本题主要考查Python程序的执行与调试。
①水仙花数是指一个三位数,即[100,999],forxinrange(100,1000)表示x的范围是100-999,故此处填range(100,1000)。
②变量g、s、b分别存放个位、十位、百位上的数,故s=x//10%10(“//”表示整除,“%”表示取余)。
③g=x%10。
④如果满足x==(b**3+s**3+g**3),则输出“三位数之内的水仙花是:
x”,故此处填print("三位数之内的水仙花是:
"+str(x))。
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.将year转换为整型数据,并赋值给yearAndyear%100!
=0oryear
【详解】
本题主要考查Python程序设计。
①input接收的数据类型是字符串型,该语句表示将year转换为整型数据,并赋值给year。
判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除,故第二、三、四空分别填②And③year%100!
=0④or⑤最后输出打印某一年是否是闰年,需要将year转换为字符型。
19.m%nrr=m%nngcd(a,b)
【详解】
本题主要考查Python程序设计。
①首先对m和n求余得到r,判断r是否为0,故此处填m%n。
②如果r为0则结束,否则更新m的值为n,n的值为r。
③此处用更新后的m和n继续求r,继续判断,故填r=m%n。
④循环结束后当r=0时,n即为最大公约数,故填n。
⑤输入a、b的值,使用函数gcd求a和b的最大公约数,故填gcd(a,b)。
20.pw=input("请输入密码:
")
password="123456"
i=1
while(i<=3):
ifpw==password:
print("恭喜你进入系统!
")
break
else:
print("请重新尝试:
",i)
pw=input("请输入密码:
")
i=i+1
【详解】
本题主要考查程序设计。
可以通过Python程序设计语言实现题干要求,可以通过while循环控制三次机会,使用if条件分支结构判断是否输入正确,具体代码如下:
pw=input("请输入密码:
")
password="123456"
i=1
while(i<=3):
ifpw==password:
print("恭喜你进入系统!
")
break
else:
print("请重新尝试:
",i)
pw=input("请输入密码:
")
i=i+1
21.yyshow()
【详解】
本题主要考查Python程序绘制图像。
①绘制y=x2-2x+1的图像,故此处填y。
②根据横纵坐标x和y绘制图,故此处填y。
③此处调用显示函数show(),故填show()。