广东省广州市全国计算机等级考试Python语言程序设计专项练习(含答案)学校:________班级:________姓名:________考号:________
一、单选题(30题)1.以下关于Python字典的描述中,错误的是()。
A.在Python中,用字典来实现映射,通过整数索引来查找其中的元素
B.在定义字典对象时,键和值用冒号连接
C.字典中的键值对之间没有顺序并且不能重复
D.字典中引用与特定键对应的值,用字典名称和方括号中包含键名的格式
2.在Python中,能够处理图像的第三方库是()。
A.pyinstallerB.pyserialC.pygameD.PIL
3.执行以下代码的结果是()A.12B.24C.36D.48
4.以下程序的输出结果是()。deffun(x):try:returnx*4except:returnxprint(fun(“5”))
A.20B.5555C.5D.9
5.下面代码的输出结果是()。defadd(x):ifx>0:returnx+add(x一1)else:return0result=add(10)print(result)
A.0B.10C.55D.45
6.以下程序的输出结果是()。lis1=[1,2,[‘python’]]lis2=[‘loves’]lis1[1]=lis2print(lis1)
A.[lis2,2,[‘python’]]
B.[1,[‘love’],[‘python’]]
C.[1,2,‘python’,‘loves']
D.[1,2,[‘python’,‘loves’]
7.在Python中,用于数据分析的第三方库是()。
A.OpenCVB.matplotlibC.NumPyD.Scrapy
8.下面代码的输出结果是()。n=2deff(a):n=bool(a一2)returnnb=f(2)print(n,b)
A.20B.0TrueC.2FalseD.0False
9.S和T是两个集合,对S&T的描述正确的是()。
A.S和T的交运算,包括同时在集合S和T中的元素
B.S和T的并运算,包括在集合S和T中的所有元素
C.S和T的差运算,包括在集合S但不在T中的元素
D.S和T的补运算,包括S和T中的几个非相同元素
10.下面代码的输出结果是()。deffun(x,y,z):u=x+y—zprint(u)fun(1+2j,5,4一1j)
A.NameErrorB.(2+3j)C.2D.3j
11.以下关于Python字典变量的定义中,正确的是()。
A.d={[1,2]:1,[3,4]:3}
B.d={l:as,2:sf}
C.d={(l,2):l,(3,4):3}
D.d={'python':1,2:[tea,cat]}
12.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。
A.18B.33C.19D.32
13.关于以下代码的描述中,正确的是()。deffact(n):s=1foriinrange(1,n+1):s*=ireturns
A.代码中n是可选参数
B.fact(n)函数功能为求n的阶乘
C.s是全局变量
D.range()函数的范围是[1,n+1]
14.数据库应用系统中的核心问题是()。
A.数据库的设计B.数据库系统的设计C.数据库的维护D.数据库管理员的培训
15.执行以下代码的结果是A.300B.400C.500D.600
16.在Python中,使用for-in方式形成的循环不能遍历的类型是()。
A.复数B.列表C.字典D.字符串
17.以下程序的输出结果是()。sum=1foriinrange(1,11):sum+=iprint(sum)
A.1B.56C.67D.56.0
18.在Python中,读入CSV文件保存的二维数据,按特定分隔符抽取信息,最可能用到的函数是()。
A.read()B.join()C.replace()D.split()
19.下面哪一种定义是类的私有成员()
A._xxB._xx_C._xxxD.xxx
20.表达式divmod(40,3)的结果是()。
A.13,1B.(13,1)C.13D.1
21.以下对Python文件处理的描述中,错误的是()。
A.当文件以文本方式打开时,读/写按照字节流方式
B.Python能够以文本和二进制两种方式处理文件
C.Python通过解释器内置的open()函数打开一个文件
22.以下的程序的输出结果是()。Is=["Python”,"family”,"miss”]deffunc(a):Is.append(a)func(”pink")print(Is)
A.['pink']
B.['Python','family','miss','pink1]
C.["Python”,”family"miss"]
D.程序报错
23.以下关于Python分支的描述中,错误的是()。
A.Python分支结构使用保留字if、elif及else来实现,每个if后面必须有elif或else
B.if-elSe结构是可以嵌套的
C.if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后的语句块
D.缩进是Python分支语句的语法部分,缩进不正确会影响分支功能
24.算法的空间复杂度是指()。
A.算法在执行过程中所需要的计算机存储空间
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的临时工作单元数
25.以下关于Python列表的描述中,正确的是()。
A.列表的长度和内容都可以改变,但元素类型必须相同
B.不可以对列表进行成员运算操作、长度计算和分片
C.列表的索引是从1开始的
D.可以使用比较操作符(如>或<等)对列表进行比较
26.若I,j均为整形数值对象,以下哪个语句计算i被j除后的余数()
A.imodjB.i/jC.i%jD.i//j
27.下载但不安装一个第三方库的命名格式是()。
A.pipdownload<第三方库名>
B.pipuninstall<第三方库名>
C.pipinstall<第三方库名>
D.pipsearch<第三方库名>
28.面向对象程序设计的三要素不包含()。
A.封装B.公有C.继承D.多态
29.以下关于文件的打开和关闭的描述中,正确的是()。
A.二进制文件不能使用记事本程序打开
B.二进制文件可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容
C.使用内置函数openO且以w模式打开文件,若文件存在,则会引发异常
D.使用内置函数open()打开文件时,只要文件路径正确就总可以正确打开
30.在Python语言中,不属于组合数据类型的是()。
A.浮点数类型B.列表类型C.字典类型D.字符串类型
二、判断题(10题)31.一个数字5也是合法的Python表达式。
A.是B.否
32.定义类时如果实现了__contains__()方法,该类对象即可支持成员测试运算in。
33.定义类时实现了__eq__()方法,该类对象即可支持运算符==。
34.如果只需要math模块中的sin()函数,建议使用frommathimportsin来导入,而不要使用importmath导入整个模块。
35.在Python中可以为自定义类的对象动态增加新成员。
36.当作为条件表达式时,{}与None等价。
37.已知x为非空字符串,那么表达式“.join(x.split())==x的值一定为True。A.是B.否
38.为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。
39.正则表达式元字符“\s”用来匹配任意空白字符。
40.只能对列表进行切片操作,不能对元组和字符串进行切片操作。
三、填空题(10题)41.表达式sum(range(10))的值为________________。
42.Python3.x语句print(1,2,3,sep=',')的输出结果为________________。
43.可以使用内置函数___________________查看包含当前作用域内所有局部变量和值的字典。
44.Python标准库random中的___________方法作用是从序列中随机选择1个元素。
45.Python扩展库______________中封装了Windows底层几乎所有API函数。
46.表达式'C:\\windows\\notepad.exe'.endswith('.exe')的值为________。
47.已知x={'a':'b','c':'d'},那么表达式'b'inx的值为______________。
48.表达式'a'.join('abc'.partition('a'))的值为________________。
49.代码print(re.match('^[a-zA-Z]+$','abcDEFG000'))的输出结果为_________。
50.已知x=[1,2,3],那么执行语句x[len(x)-1:]=[4,5,6]之后,变量x的值为_________________________________。
四、操作题(3题)51.考生文件夹下存在一个文件“PY201.py”,请写代码替换横线,不修改其他代码,实现以下功能。使用turtle库中的pencolor()和fillcolor()方法为图形着色(画笔颜色为黑色,填充颜色为红色),使用set-up()方法在桌面(400,400)的位置创建600像素×600像素的画布窗体,效果如下所示。试题程序#请在_____处使用一行代码或表达式替换#注意:请不要修改其他已给出代码fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()_____(1)_____('black')_____(2)_____("red")pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(-27,85)pendown()done()
52.考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:随机选择一个手机品牌屏幕输出。
试题程序:
#请在程序的…处使用一行或多行代码替换
#请在程序的______处使用一行代码替换#注意:请不要修改其他已给出代码
import________brandlist=[’三星’,’苹果’,’vivo’,’OPPO’,’魅族’]random.seed(0)
……
print(name)
53.考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:使用循环输出从1到50之间的奇数。
#请在_____处使用一行代码或表达式替换
#注意:请不要修改其他已给出代码______whilecount<50:
ifcount%2==0:
print(count,end=”,”)
参考答案
1.A在Python中,字典是存储可变数量键值对的数据结构,通过字典类型实现映射。字典使用花括号({})建立,每个元素是一个键值对,使用方式为{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>},其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典具有和集合类似的性质,即键值对之间没有顺序且不能重复。通过键可以索引值,并可以通过键修改值,因此可以直接利用键值对关系索引元素。索引模式:<值>=<字典变量>[<键>]。本题选择A选项。
3.B
4.Bfun(“5”)是将字符“5”赋给形参x,由于‘5’是字符类型,不是数字类型,不能进行数值运算,因此“x*4”是把字符“5”连续复制4次输出。本题选择B选项。
5.C该函数是一个递归函数,用来计算1到10之间的所有数的和,使用函数时必须调用函数,即函数名(<参数>),也可以将函数对象实例化。结果为55,选C项。
6.B列表索引从0开始,lisl[1]=lis2是为列表lis2赋值并覆盖lisl[1]位置上的元素,运算后lis1=[1,[‘loves’],[‘python’]]。本题选择B选项。
7.CA选项是Python计算机视觉方面的库,B选项是Python数据可视化方面的库,D选项是Python网络爬虫领域的库。本题选择C选项。
8.C这段代码是全局变量和局部变量以及Python内置函数bool()的一个结合。在函数内部的局部变量名和函数外部全局变量名相同时,调用函数时,总是先找到函数内部的局部变量名,所以当a为2时,经过布尔型转换之后的a一2,即b为False,而在函数外部只能访问全局变量名,所以n仍为2,C项正确。
9.AS&T返回一个新集合,包括同时在集合S和T中的元素。本题选择A选项。
10.Bfun()函数进行加减计算,输入为复数,按复数加减运算法则计算结果为(2+3j)。
11.C在Python中,字典是存储可变数量键值对的数据结构。通过字典类型实现映射,键必须是唯一的,必须是不可变数据类型,值可以是任何数据类型。选项A、D错误。字典使用花括号({})创建,每个元素是一个键值对,语法格式为{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>},其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典具有集合类似的性质,即键值对之间没有顺序且不能重复。本题选择C选项。
12.C设叶子结点数为〃,则该树的结点数为n+9+5=n+\n14,根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。本题选择C选项。
13.B函数定义时的语法如下:\ndef<函数名>(<非可选参数列表>,<可选参数>=<默认值>):\n<函数体>\nreturn<返回值列表>\n可选参数一般都放置在非可选参数的后面。本题代码中,n为非可选参数,fact(n)函数的功能为求n的阶乘。s在函数内部定义,为局部变量。根据range函数的定义,range(1,n+1)的范围是[1,n],不包含n+1。
14.A数据库应用系统中的核心问题是数据库的设计。本题选择A选项。
15.B
16.Afor-in遍历结构可以是字符串、文件、range()函数及组合数据类型。本题选择A选项。
17.Bforiinrange(1,11)是将1,2,3,4,5,6,7,8,9,10依次赋给变量i,用变量sum累加每一次变化的i的值,最终sum=56。本题选择B选项。
18.D在Python中,读取CSV文件中的二维码数据采用遍历循环和字符串的split()方法相结合,方法如下:f=open('cpi.csv”,”r”)ls=[]forlineinf:Is.append(line,strip(“\\n').split(“,”))f.close()本题选择D选项。
19.C在Python中,类的定义中以一个下划线开头是成员的保护成员,以两个下划线开头和结束的成员是系统定义的特殊成员,以两个或多个下划线开头但不以两个或多个下划线结束的成员是私有成员,所以选C。
20.Bdivmod(x,y)函数用来计算x和y的除余结果,返回两个值,分别是:x与y的整数除,即x//y,以及x与y的余数,即x%y。返回的两个值组成了一个元组类型,即小括号包含的两个元素(x//y,x%y)。40//3=13,40%3=1,故答案为B项。
22.B该程序将字符串pink传递给形参a,函数体中通过append()方法将a添加到列表Is中,最后输出列表,IS=\n[‘Python’、’family’,’miss’、’pink]。本题选择B选项。
23.APython分支结构使用关键字if、elif及else来实现,每个if后面不一定要有elif或else,A项错误;if-else结构是可以嵌套的,B项正确;if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后的语句块,C项正确;缩进是Python分支语句的语法部分,缩进不正确会影响分支功能,D选项正确。本题选择A选项。
24.A算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A项。
25.D列表是包含0个或多个元素的有序序列,属于序列类型。列表用中括号([])表示,由于列表属于序列类型,故继承了序列类型的所有属性和方法。索引是列表的基本操作,用于获得列表中的一个元素,该操作沿用序列类型的索引方式,即正向递增序号或反向递减序号,使用中括号作为索引操作符,索引号不得超过列表的元素范围,否则将产生lndexError错误。索引下标从0开始。列表可以进行元素增加、删除、替换、查找等操作。列表没有长度限制,元素类型可以不同,能够包含其他的组合数据类型,可以使用比较操作符(如>或<等)对列表进行比较,也可以对列表进行成员运算操作、长度计算和分片。故D项正确。
26.C
27.Apipdownload<第三方库名>用于下载第三方库的安装包,但并不安装;pipuninstall<第三方库名>用于卸载一个已经安装的第三方库;pipinstall<第三方库名>用于安装第三方库;pipsearch<第三方库名>用于联网搜索库名或摘要中的关键字。本题选择A选项。
28.B面向对象程序设计的三要素分别为封装、继承、多态。
29.B二进制文件可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容;用内置函数open()且以w模式打开文件,若文件存在,则会覆盖原来的内容而不会引发异常。本题选择B选项。
30.APython中组合数据类型包括元组、列表、字典和集合等。
31.Y
32.Y
33.Y
34.Y
35.Y
36.Y
37.N
38.N
39.Y
40.N
41.45
42.1,2,3
43.locals()
44.choice()
45.pywin32
46.True
47.False
48.'aaabc'
49.None
50.[1,2,4,5,6]
51.fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,