2026年计算机等级考试-二级Python考试真题及答案_第1页
2026年计算机等级考试-二级Python考试真题及答案_第2页
2026年计算机等级考试-二级Python考试真题及答案_第3页
2026年计算机等级考试-二级Python考试真题及答案_第4页
2026年计算机等级考试-二级Python考试真题及答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年计算机等级考试-二级Python考试真题及答案一、单项选择题(每小题1分,共40分)1.关于Python语言的特点,以下选项描述错误的是()。A.Python语言是脚本语言B.Python语言是非开源语言C.Python语言是多模型语言D.Python语言是跨平台语言2.以下选项中,不符合Python语言变量命名规则的是()。A._tempB.3_numC.num_3D.I3.已知x=10,y=20,那么表达式xandy的值为()。A.10B.20C.TrueD.False4.以下关于Python字符串的描述中,错误的是()。A.字符串是字符的有序集合B.字符串可以索引和切片C.字符串是不可变数据类型D.字符串支持in操作符,但不支持notin操作符5.设s="PythonProgramming",想要获取子串"gram",以下切片操作正确的是()。A.s[10:14]B.s[11:15]C.s[10:15]D.s[11:14]6.下列表达式中,值不是整数类型的是()。A.15//4B.15/4C.int(15.4)D.15%47.关于Python中的列表,以下说法正确的是()。A.列表创建后长度不可变B.列表中的元素类型必须相同C.列表是有序的元素集合D.列表不支持嵌套8.若ls=[1,2,3,4,5],则ls[-2]的结果是()。A.3B.4C.5D.29.执行语句list(range(5))的结果是()。A.0,1,2,3,4B.[1,2,3,4,5]C.[0,1,2,3,4]D.(0,1,2,3,4)10.以下关于Python循环结构的描述,错误的是()。A.for循环通常用于遍历序列类型B.while循环在条件为True时重复执行代码块C.continue语句用于跳出当前整个循环D.break语句用于跳出当前整个循环11.在Python中,用于导入模块的关键字是()。A.includeB.importC.requireD.using12.下列关于函数的描述,正确的是()。A.函数必须有return语句B.函数可以嵌套定义C.函数定义中,形参和实参的数量必须一致D.全局变量可以在函数内部直接修改而无需声明13.以下代码的输出结果是()。deffunc(a,b=2,c=3):returna+b+cprint(func(1,c=4))A.6B.7C.8D.914.关于字典,以下说法错误的是()。A.字典中的键必须是不可变类型B.字典中的值可以是任意类型C.字典是无序的集合(Python3.6+版本中插入有序)D.字典通过索引访问元素15.设d={'a':1,'b':2,'c':3},则d.get('d',4)的结果是()。A.3B.NoneC.报错D.416.Python内置库中,用于数学计算的是()。A.sysB.mathC.osD.re17.表达式`math.sqrt(16)+math.pow(2,3)`的值是()。A.10.0B.12.0C.8.0D.6.018.关于集合,以下操作不能去重的是()。A.set([1,2,2,3])B.{1,2,2,3}C.list(set([1,2,2,3]))D.[1,2,2,3].unique()19.以下关于文件操作的描述,正确的是()。A.open()函数打开文件后,文件会自动关闭B.readlines()方法返回的是一个字符串C.seek()方法用于移动文件指针位置D.write()方法只能写入字符串,不能写入字节流20.若要以二进制读模式打开文件,模式字符串应设为()。A.'r'B.'rb'C.'w'D.'wb'21.下列关于异常处理的语句,正确的是()。A.try-except-finallyB.try-catch-finallyC.do-whileD.if-else-endif22.代码`try:...exceptExceptionase:...`中,e代表()。A.异常类型B.异常对象实例C.错误行号D.错误信息字符串23.关于Python中的turtle库,以下说法错误的是()。A.turtle库是Python的标准库之一B.turtle.forward(100)用于前进100像素C.turtle.left(90)用于向左旋转90度D.turtle.penup()用于落下画笔24.下列关于random库的描述,正确的是()。A.random.randint(1,10)可能生成1.5B.random.choice([1,2,3])从列表中随机选择一个元素C.random.shuffle()返回一个新的打乱后的列表D.random.random()生成[0,1]之间的整数25.表达式`isinstance(3.14,float)`的结果是()。A.TrueB.FalseC.NoneD.026.以下代码的输出结果是()。ls=[1,2,3]ls.append(4)ls.extend([5,6])print(len(ls))A.4B.5C.6D.727.下列关于Python中lambda函数的描述,错误的是()。A.lambda函数只能包含一个表达式B.lambda函数也称为匿名函数C.lambda函数必须有return语句D.lambda函数可以作为参数传递28.使用`filter(lambdax:x>5,[1,6,3,8])`返回的结果类型是()。A.listB.tupleC.filter对象D.set29.代码`"Hello{0},yourscoreis{1:.1f}".format("Tom",95.567)`的输出结果是()。A.HelloTom,yourscoreis95.6B.HelloTom,yourscoreis95.567C.Hello{0},yourscoreis{1:.1f}D.HelloTom,yourscoreis95.5730.在Python中,`__init__`方法的作用是()。A.删除对象B.初始化对象属性C.对象的字符串表示D.对象的比较31.以下关于类的继承描述,正确的是()。A.Python不支持多继承B.子类会继承父类的所有属性和方法C.子类不能重写父类的方法D.父类可以访问子类的私有属性32.下列选项中,属于合法的十六进制整数表示的是()。A.0x1AB.0o16C.0b101D.1933.关于递归函数,以下说法错误的是()。A.递归函数必须有一个结束条件B.递归函数通常包含调用自身的过程C.递归深度不受限制D.递归可以简化某些问题的代码实现34.下列代码执行后,ls的值是()。ls=[iforiinrange(10)ifi%2==0]A.[1,3,5,7,9]B.[0,2,4,6,8]C.[0,1,2,3,4,5,6,7,8,9]D.[2,4,6,8]35.在jieba库中,用于精确分模式的函数是()。A.jieba.cutB.jieba.lcutC.jieba.cut_for_searchD.jieba.lcut_for_search36.下列关于时间处理库time的描述,正确的是()。A.time.time()返回当前时间的字符串格式B.time.ctime()返回当前时间的字符串格式C.time.sleep(5)表示暂停5毫秒D.time.localtime()返回的是struct_time对象,包含年月日时分秒等37.代码`f=lambdax:xx;print(f(5))`的结果是()。37.代码`f=lambdax:xx;print(f(5))`的结果是()。A.10B.25C.5D.lambda38.以下关于二进制文件的描述,错误的是()。A.二进制文件把数据内容以字节串进行存储B.图片、音频文件通常是二进制文件C.文本文件不能用二进制模式打开D.二进制文件通常比文本文件占用空间小39.表达式`[1,2,3]2`的结果是()。39.表达式`[1,2,3]2`的结果是()。A.[2,4,6]B.[1,2,3,1,2,3]C.[[1,2,3],[1,2,3]]D.报错40.下列哪个算法的时间复杂度是O(A.冒泡排序B.线性查找C.快速排序(平均情况)D.二分查找二、基本操作题(共3题,每题5分,共15分)41.程序填空题以下代码实现的功能是:计算1到100之间所有能被3整除但不能被5整除的整数的和。请在横线处补充代码。```pythons=0foriinrange(1,101):ifi%3==0________i%5!=0:s+=iprint(s)```42.程序填空题以下代码实现的功能是:将用户输入的字符串反转输出。例如输入"abc",输出"cba"。请在横线处补充代码。```pythons=input("请输入一个字符串:")res=""foriinrange(________(s)1,-1,-1):res+=s[i]print(res)```43.程序填空题以下代码实现的功能是:统计列表中各元素出现的次数,并以字典形式返回。请在横线处补充代码。```pythondefcount_items(lst):counts={}foriteminlst:ifitemincounts:counts[item]+=1else:________returncountsprint(count_items([1,2,1,3,2,1]))```三、简单应用题(共2题,每题10分,共20分)44.考生文件夹下存在一个文件data44.txt,文件内容包含若干行数字,每行一个数字。请编写程序,读取文件中的所有数字,计算这些数字的平均值,并将结果写入到result44.txt文件中,保留两位小数。如果文件为空,则写入0.00。注意:部分代码已给出,请补充完整。```python请在下方补充代码defcalculate_average(filename):try:withopen(filename,'r',encoding='utf-8')asf:lines=f.readlines()except:return0.00补充代码逻辑1.读取数字并转换为浮点数2.计算平均值3.返回平均值avg=calculate_average('data44.txt')withopen('result44.txt','w',encoding='utf-8')asf:f.write(str(round(avg,2)))```45.使用turtle库绘制一个红色的正方形,边长为200像素,然后绘制一个内切于该正方形的蓝色圆形。要求:1.正方形线条宽度为3。2.圆形线条宽度为2。3.最后隐藏海龟并保持窗口显示。```pythonimportturtle请在下方编写代码```四、综合应用题(共1题,共25分)46.模拟简单的通讯录管理系统。要求:1.定义一个类`Contact`,包含属性:姓名、电话号码。2.定义一个类`AddressBook`,包含以下方法:`add_contact(name,phone)`:添加联系人。如果联系人已存在(姓名相同),则更新电话号码;如果不存在,则添加新联系人。使用字典存储联系人数据,键为姓名,值为Contact对象。`delete_contact(name)`:删除指定姓名的联系人。如果不存在,提示“联系人不存在”。`search_contact(name)`:查询指定姓名的联系人。如果存在,打印姓名和电话;如果不存在,提示“未找到联系人”。`show_all()`:显示所有联系人信息,按姓名排序输出。3.编写主程序,循环显示菜单:1.添加联系人2.删除联系人3.查询联系人4.显示所有联系人5.退出根据用户输入执行相应操作。请完成类的定义和主程序逻辑。```pythonclassContact:def__init__(self,name,phone):初始化属性def__str__(self):返回格式化的字符串,例如"姓名:张三,电话classAddressBook:def__init__(self):初始化存储联系人的字典defadd_contact(self,name,phone):添加或更新联系人逻辑defdelete_contact(self,name):删除联系人逻辑defsearch_contact(self,name):查询联系人逻辑defshow_all(self):显示所有联系人逻辑主程序if__name__=='__main__':book=AddressBook()whileTrue:print("\n=====通讯录管理系统=====")print("1.添加联系人")print("2.删除联系人")print("3.查询联系人")print("4.显示所有联系人")print("5.退出")choice=input("请输入选项:")补充主程序逻辑```答案与解析一、单项选择题1.B解析:Python语言是开源语言,这是其重要特点之一。它是脚本语言、多模型语言(支持面向对象、函数式等)、跨平台语言。2.B解析:Python变量命名规则规定,变量名不能以数字开头。`3_num`以数字开头,故错误。3.B解析:在Python中,`and`运算符返回第一个为False的值,如果都为True则返回最后一个值。`x=10`(非零,真),`y=20`(非零,真),所以返回`y`,即20。4.D解析:Python字符串支持`in`和`notin`操作符,用于判断子串是否存在。5.B解析:Python切片索引从0开始。'P'是0,'y'是1...'g'在索引11处(PythonProgramming:0-P,1-y,2-t,3-h,4-o,5-n,6-P,7-r,8-o,9-g,10-r,11-a,12-m,13-m,14-i,15-n,16-g)。要获取"gram"(索引11,12,13,14),切片应为`[11:15]`(切片包前不包后)。6.B解析:`/`是除法,在Python3中结果总是浮点数。`15/4`结果是3.75。`//`是整除,`%`是取余,`int()`是强制转整型。7.C解析:列表是可变、有序的元素集合,长度可变,元素类型可以不同,支持嵌套。8.B解析:负数索引从列表末尾开始,-1是最后一个(5),-2是倒数第二个(4)。9.C解析:`range(5)`生成0,1,2,3,4的迭代器,`list()`将其转换为列表`[0,1,2,3,4]`。10.C解析:`continue`语句用于跳出当前循环的剩余语句,继续下一次循环,而不是跳出整个循环。`break`才是跳出整个循环。11.B解析:Python使用`import`关键字导入模块。12.B解析:Python支持函数嵌套定义。函数可以没有return语句(默认返回None);形参和实参数量可以不一致(如果有默认参数或可变参数);全局变量在函数内修改需要`global`声明。13.B解析:函数定义`a,b=2,c=3`。调用`func(1,c=4)`。`a`接收1,`c`接收4,`b`使用默认值2。结果`1+2+4=7`。14.D解析:字典通过键来访问元素,不能通过索引访问。15.D解析:`dict.get(key,default)`方法:如果键存在返回对应值,如果不存在返回default值。'd'不存在,故返回4。16.B解析:`math`是数学计算库,`sys`是系统相关,`os`是操作系统接口,`re`是正则表达式。17.B解析:`math.sqrt(16)`是4.0,`math.pow(2,3)`是8.0。相加得12.0。18.D解析:Python的列表对象没有`unique()`方法。去重通常使用`set()`。19.C解析:`open()`打开文件后需要手动关闭或使用`with`语句自动关闭;`readlines()`返回列表;`write()`可以写入字符串(文本模式)或字节流(二进制模式)。`seek()`确实用于移动文件指针。20.B解析:'r'是文本读,'rb'是二进制读,'w'是文本写,'wb'是二进制写。21.A解析:Python的异常处理结构是`try-except-finally`。Java等语言使用`try-catch`。22.B解析:`ase`将捕获的异常实例赋值给变量`e`,这样可以在代码块中访问异常信息。23.D解析:`turtle.penup()`是提起画笔(移动不绘图),`turtle.pendown()`才是落下画笔。24.B解析:`random.randint(a,b)`生成整数;`random.choice(seq)`随机选择元素;`random.shuffle(lst)`是原地打乱,返回None;`random.random()`生成[0.0,1.0)的浮点数。25.A解析:`3.14`是float类型,所以`isinstance`返回True。26.C解析:`append(4)`增加一个元素,`extend([5,6])`增加两个元素。原长度3,增加3个,长度变为6。27.C解析:lambda函数体中不能包含显式的`return`语句,表达式本身的值就是返回值。28.C解析:`filter`函数在Python3中返回一个迭代器对象(filter对象),不是直接的列表。29.A解析:`{1:.1f}`表示格式化第二个参数(95.567)为保留1位小数。四舍五入后为95.6。30.B解析:`__init__`是类的构造方法,用于初始化对象的属性。31.B解析:子类继承父类的所有公有属性和方法(私有属性通常也能继承但不可直接访问)。Python支持多继承;子类可以重写父类方法;父类无法访问子类属性。32.A解析:`0x`开头表示十六进制,`0o`表示八进制,`0b`表示二进制。33.C解析:递归深度受系统栈大小限制,过深会导致`RecursionError`。34.B解析:列表推导式,`range(10)`生成0-9,`ifi%2==0`筛选偶数。结果为`[0,2,4,6,8]`。35.B解析:`jieba.lcut`返回列表,`jieba.cut`返回迭代器。题目虽未指定返回类型,但`lcut`更常用于精确分词并直接得到列表。注意:精确模式主要函数是`cut`和`lcut`,`cut_for_search`是搜索模式。题目问精确分模式,`lcut`是符合的。36.D解析:`time.time()`返回时间戳;`time.ctime()`返回字符串;`time.sleep(5)`暂停5秒;`time.localtime()`返回`struct_time`对象。37.B解析:lambdax:xx定义了一个平方函数,f(5)即55=25。38.C解析:文本文件可以用二进制模式打开(读取的是bytes),只是通常我们用文本模式处理文本文件。39.B解析:列表与整数相乘,表示列表元素重复n次并拼接。40.C解析:冒泡排序O(),线性查找O(n)二、基本操作题41.and解析:题目要求“能被3整除并且不能被5整除”。逻辑关系是与,Python中使用`and`。42.len解析:需要从字符串最后一个字符开始遍历。`range(start,stop,step)`,start应为`len(s)1`。43.counts[item]=1解析:如果元素不在字典中,说明是第一次出现,应将其计数值初始化为1。三、简单应用题44.参考代码:```pythondefcalculate_average(filename):numbers=[]try:withopen(filename,'r',encoding='utf-8')asf:lines=f.readlines()except:return0.00ifnotlines:return0.00forlineinlines:line=line.strip()ifline:确保不是空行try:numbers.append(float(line))except:continueiflen(numbers)==0:return0.00returnsum(numbers)/len(numbers)```解析:1.读取文件所有行。2.判断文件是否为空(没有行)。3.遍历每一行,去除首尾空白,转换为浮点数存入列表。4.计算列表元素和除以元素个数得到平均值。5.处理可能的空列表除零错误。45.参考代码:```pythonimportturtlet=turtle.Turtle()t.pensize(3)t.color("red")绘制正方形foriinrange(4):t.forward(200)t.left(90)移动到圆心位置(正方形中心)正方形边长200,左上角假设为起点(0,0)或相对位置此时海龟在正方形起点,朝向右侧(假设)简单做法:利用几何关系,圆半径为100我们可以抬笔移动到正方形中心,或者利用相对坐标假设正方形画完后回到了起点t.penup()t.goto(100,-100)移动到正方形右下角相对坐标偏移,需根据初始位置定更通用的逻辑:从正方形左下角(假设)开始画重置一下思路,从中心开始画最方便,或者利用当前位置修正逻辑:画完正方形后,海龟回到原点,方向朝东。正方形中心在(100,-100)相对于原点(如果正方形向右上方延伸)让我们用最简单的相对移动t.goto(100,-100)移动到中心t.setheading(0)朝东t.pendown()t.pensize(2)t.color("blue")t.circle(100)半径为100的圆t.hideturtle()turtle.done()```解析:1.设置画笔颜色为红色,宽度3。2.循环4次绘制边长200的正方形。3.计算圆心位置。如果正方形从(0,0)开始向右画,中心在(100,-100)(假设y轴向下为正,turtle默认坐标系)。4.移动画笔到圆心,设置蓝色,宽度2。5.`circle(100)`绘制半径100的内切圆。6.隐藏海龟,保持窗口。四、综合应用题46.参考代码:```pythonclassContact:def__init__(self,name,phone):=nameself.phone=phonedef__str__(self):returnf"姓名:{},电话:{self.phone}"classAddressBook:def__init__(self):self.contacts={}defadd_contact(self,name,phone):ifnameinself.contacts:self.contacts[name].phone=phoneprint(f"联系人{name}已更新。")else:self.contacts[name]=Contact(name,phone)print(f"联系人{name}已添加。")defdelete_contact(self,name):ifnameinself.contacts:delself.contacts[name]print(f"联系人{name}已删除。")el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论