全国计算机等级考试二级Python真题及解析5.docx
《全国计算机等级考试二级Python真题及解析5.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Python真题及解析5.docx(17页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级Python真题及解析5
全国计算机等级考试二级Python真题及解析(5)
一、选择题
1.关于二叉树的遍历,以下选项中描述错误的是
A二叉树的遍历可以分为三种:
前序遍历、中序遍历、后序遍历
B前序遍历是先遍历左子树,然后访问根结点,最后遍历右子树
C后序遍历二叉树的过程是一个递归的过程
D二叉树的遍历是指不重复地访问二叉树中的所有结点
正确答案:
B
2.关于二叉树的描述,以下选项中错误的是
A二叉树具有两个特点:
非空二叉树只有一个根结点;每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树
B在任意一棵二叉树中,度为0的结点(叶子结点)比度为2的结点多一个
C深度为m的二叉树最多有2的m次幕个结点
D二叉树是一种非线性结构
正确答案:
C
3.关于查找技术的描述,以下选项中错误的是
A如果采用链式存储结构的有序线性表,只能用顺序查找
B二分查找只适用于顺序存储的有序表
C顺序查找的效率很高
D查找是指在一个给定的数据结构中查找某个特定的元素
正确答案:
C
4.关于排序技术的描述,以下选项中错误的是
A选择排序法在最坏的情况下需要比较n(n-1)/2次
B快速排序法比冒泡排序法的速度快
C冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序
D简单插入排序在最坏的情况下需要比较n的1.5幕次
正确答案:
D
5.关于面向对象的程序设计,以下选项中描述错误的是
A面向对象方法可重用性好
BPython3.x解释器内部采用完全面向对象的方式实现
C用面向对象方法开发的软件不容易理解
D面向对象方法与人类习惯的思维方法一致
正确答案:
C
6.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是
A需求设计
B详细设计
C可行性分析
D概要设计
正确答案:
A
7.以下选项中,用于检测软件产品是否符合需求定义的是
A集成测试
B验证测试
C验收测试
D确认测试
正确答案:
C
8.在PFD图中用箭头表示
A数据流
B调用关系
C组成关系
D控制流正确答案:
D
9.关于软件调试方法,以下选项中描述错误的是
A软件调试可以分为静态调试和动态调试
B软件调试的主要方法有强行排错法、回溯法、原因排除法等
C软件调试的目的是发现错误
D软件调试的关键在于推断程序内部的错误位置及原因
正确答案:
C
10.关于数据库设计,以下选项中描述错误的是
A数据库设计可以采用生命周期法
B数据库设计是数据库应用的核心
C数据库设计的四个阶段按顺序为概念设计、需求分析、逻辑设计、物理设计
D数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境设计出数据模式
正确答案:
C
11.以下选项中值为False的是
A'abc'<'abcd'
B''<'a'
C'Hello'>'hello'
D'abcd'<'ad'
正确答案:
C
12.Python语言中用来定义函数的关键字是
Areturn
Bdef
Cfunction
Ddefine
正确答案:
B
13.以下选项中,对文件的描述错误的是
A文件中可以包含任何数据内容
B文本文件和二进制文件都是文件
C文本文件不能用二进制文件方式读入
D文件是一个存储在辅助存储器上的数据序列正确答案:
C
14.Is=[3.5,"卩ython",[10,"LIST"],3.6],ls[2][-1][1]的运行结果是AI
BP
CY
DL
正确答案:
A
15.以下用于绘制弧形的函数是
Aturtle.seth()
Bturtle.right()
Cturtle.circle()
Dturtle.fd()正确答案:
C
16.对于turtle绘图中颜色值的表示,以下选项中错误的是
A(190,190,190)
BBEBEBE
C#BEBEBE
D“grey”
正确答案:
B
17.以下选项中不属于组合数据类型的是
A变体类型
B字典类型
C映射类型
D序列类型
正确答案:
A
18.关于random库,以下选项中描述错误的是
A设定相同种子,每次调用随机函数生成的随机数相同
B通过fromrandomimport*可以引入random随机库
C通过importrandom可以引入random随机库
D生成随机数之前必须要指定随机数种子正确答案:
D
19.关于函数的可变参数,可变参数*args传入函数时存储的类型是
Alist
Bset
Cdict
Dtuple
正确答案:
D
20.关于局部变量和全局变量,以下选项中描述错误的是
A局部变量和全局变量是不同的变量,但可以使用global保留字在函数内
部使用全局变量
B局部变量是函数内部的占位符,与全局变量可能重名但不同
C函数运算结束后,局部变量不会被释放
D局部变量为组合数据类型且未创建,等同于全局变量
正确答案:
C
21.
下面代码的输出结果是ls=["F","f"]deffun(a):
ls.append(a)
return
fun("C")print(ls)
A['F','f']
B['C']
C出错
D['F','f','C']
正确答案:
D
22.关于函数作用的描述,以下选项中错误的是
A复用代码
B增强代码的可读性
C降低编程复杂度
D提高代码执行速度正确答案:
D
23.假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是
A参数是int类型时,不改变原参数的值
B参数是组合类型(可变对象)时,改变原参数的值
C参数的值是否改变与函数中对变量的操作有关,与参数类型无关
D参数是list类型时,改变原参数的值
正确答案:
C
24.关于形参和实参的描述,以下选项中正确的是
A参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
B函数调用时,实参默认采用按照位置顺序的方式传递给函数,Python也
提供了按照形参名称输入实参的方式
C程序在调用时,将形参复制给函数的实参
D函数定义中参数列表里面的参数是实际参数,简称实参正确答案:
B
25.以下选项中,正确地描述了浮点数0.0和整数0相同性的是
A它们使用相同的计算机指令处理方法
B它们具有相同的数据类型
C它们具有相同的值
D它们使用相同的硬件执行单元
正确答案:
C
26.关于random.uniform(a,b)的作用描述,以下选项中正确的是
A生成一个[a,b]之间的随机小数
B生成一个均值为a,方差为b的正态分布
C生成一个(a,b)之间的随机数
D生成一个[a,b]之间的随机整数
正确答案:
A
27.关于Python语句P=-P,以下选项中描述正确的是
AP和P的负数相等
BP和P的绝对值相等
C给P赋值为它的负数
D.P的值为0
正确答案:
C
28.以下选项中,用于文本处理方向的第三方库是
Apdfminer
BTVTK
Cmatplotlib
Dmayavi
正确答案:
A
29.以下选项中,用于机器学习方向的第三方库是
Ajieba
BSnowNLP
Closo
DTensorFlow正确答案:
D
30.以下选项中,用于Web开发方向的第三方库是
APanda3D
Bcocos2d
CDjango
DPygame正确答案:
C
31.
下面代码的输出结果是
x=0x0101print(x)
A101
B257
C65
D5正确答案:
B32.
下面代码的输出结果是sum=1.0fornuminrange(1,4):
sum+=numprint(sum)
A6
B7.0
C1.0
D7
正确答案:
B
33.下面代码的输出结果是
a=4.2e-
b=1.3e2print(a+b)
A130.042
B5.5e31
C130.42
D5.5e3正确答案:
C
34.下面代码的输出结果是
name="Python语言程序设计"print(name[2:
—])
Athon语言程序
Bthon语言程序设
Cython语言程序
Dython语言程序设
正确答案:
A
35.下面代码的输出结果是
weekstr="星期一星期二星期三星期四星期五星期六星期日
weekid=3print(weekstr[weekid*3:
weekid*3+3])
A星期二
B星期三
C星期四
D星期一
正确答案:
C
36.
下面代码的输出结果是
a=[5,1,3,4]print(sorted(a,reverse=True))
A[5,1,3,4]
B[5,4,3,1]
C[4,3,1,5]
D[1,3,4,5]
正确答案:
B
37.下面代码的输出结果是
forsin"abc":
foriinrange(3):
print(s,end="")
ifs=="c":
break
Aaaabccc
Baaabbbc
Cabbbccc
Daaabbbccc正确答案:
B
38.下面代码的输出结果是
foriinrange(10):
ifi%2==0:
continueelse:
print(i,end=",")
A2,4,6,8,
B0,2,4,6,8,
C0,2,4,6,8,10,
D1,3,5,7,9,正确答案:
D
39.下面代码的输出结果是
ls=list(range(1,4))print(ls)
A{0,1,2,3}
B[1,2,3]
C{1,2,3}
D[0,1,2,3]
正确答案:
B
40.下面代码的输出结果是
defchange(a,b):
a=10
b+=a
a=4
b=5change(a,b)print(a,b)
A105
B415
C1015
D45正确答案:
D二、操作题
1.编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出,给出代码提示如下。
n=input()nums=①
s=0foriinnums:
②print(s)
输入输出示例习题讲解参考代码n=input("")nums=n.split(",")s=0foriinnums:
s+=eval(i)print(s)
2.编写程序,获得用户输入的数值M和N,求M和N的最大公约数。
提示代码如下。
defGreatCommonDivisor(a,b):
ifa>b:
a,b=b,a
r=1whiler!
=0:
____①—
a=b
b=r
returna
m=eval(input())
n=eval(input())print②)
输入输出示例
输入
输出
示例1
2
1
3
习题讲解
参考代码
defGreatCommonDivisor(a,b):
ifa>b:
a,b=b,a
r=1
whiler!
=0:
r=a%b
a=b
b=r
returna
m=eval(input())
n=eval(input())print(GreatCommonDivisor(m,n))
3.jieba是一个中文分词库,一些句子可能存在多种分词结果,请补充横线
处代码,产生字符串s可能的所有分词结果列表,提示代码如下。
__①—
s="世界冠军运动员的乒乓球拍卖完了"
ls=jieba」cut(②print(ls)
习题讲解
参考代码
importjieba
s="世界冠军运动员的乒乓球拍买完了
Is=jieba」cut(s,True)print(ls)
4.使用turtle库的turtle.circle()函数、turtle.seth()函数和turtle.left()函数绘
制一个四瓣花图形,效果如下图所示。
请结合程序整体框架,补充横线处代
码,从左上角花瓣开始,逆时针作画。
importturtleastforiinrange(①):
t.seth(②)
t.circle(200,90)
t.seth(③)
t.circle(200,90)
自动评阅说明
依次以字符串形式输入①,②,③中应填的代
码,即可自动评阅,运算符两侧需要加空格
如果代码为:
importturtleastforiinrange(100):
t.seth(i+100)
t.circle(200,90)
t.seth(-10*(i+100))
t.circle(200,90)
则在提交代码页面输入:
print("100","i+100","-10*(i+100)")
习题讲解
参考代码
importturtleastforiinrange(4):
t.seth(90*(i+1))
#90,180,270,360
t.circle(200,90)
#-90,0,90,180
t.seth(-90+i*90)
t.circle(200,90)
5.编写程序,实现将列表ls=[23,45,78,87,11,67,89,13,243,56,67,311,431,111,141中]的素数去除,并输出去除素数后列表ls的元素个数。
请结合程序整体框架,补充横线处代码。
defis_prime(n):
①#此处可为多行函数定义代码
ls=[23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]foriinls.copy():
ifis_prime(i)==True:
②#此处为一行代码print(len(ls))
习题讲解
参考代码
defis_prime(n):
foriinrange(2,n):
ifn%i==0:
returnFalse
returnTrue
ls=[23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]foriinls:
ifis_prime(i)==False:
ls.remove(i)print(len(ls))
6.古代航海人为了方便在航海时辨别方位和观测天象,将散布在天上的星星运用想象力将它们连接起来,有一半是在古时候已命名,另一半是近代开始
命名的。
两千多年前古希腊的天文学家希巴克斯命名十二星座,依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座。
给出二维数据存储CSV文件(SunSign.csV,内容
如下:
星座,开始月日,结束月日,Unicode
水瓶座,120,218,9810
双鱼座,219,320,9811
白羊座,321,419,9800
金牛座,420,520,9801
双子座,521,621,9802
巨蟹座,622,722,9803
狮子座,723,822,9804
处女座,823,922,9805
天秤座,923,1023,9806
天蝎座,1024,1122,9807
射手座,1123,1221,9808
魔蝎座,1222,119,9809
请编写程序,读入CSV文件中数据,循环获得用户输入,直至用户输入
"exit"退出。
根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。
如果输入的星座名称有误,请输出“输入星座名称有误!
”。
习题讲解
参考代码
#读入CSV格式数据到列表中
fo=open("SunSign.csv","r",encoding='utf-8')
ls=[]forlineinfo:
line=line.replace("\n","")
ls.append(line.split(","))
fo.close()
whileTrue:
InputStr=input()#请输入星座名称,例如双子座
InputStr.strip()
flag=FalseifInputStr=='exit':
breakforlineinls:
ifInputStr==line[0]:
print("{}座的生日位于{}-{}之间".format(chr(eval(line[3])),line[1],line[2]))flag=Trueifflag==False:
print("输入星座名称有误!
")