版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年计算机等级考试-二级Python历年真题一、单项选择题(每小题1分,共40分)1.下列叙述中正确的是()。A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是队列的一种链式存储结构D.栈与队列都是线性表2.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()。A.3B.4C.6D.73.软件生命周期中,确定软件系统“要做什么”的阶段是()。A.需求分析B.软件设计C.软件测试D.软件维护4.下面不属于软件设计原则的是()。A.抽象B.模块化C.自底向上D.信息隐蔽5.在数据库设计中,将E-R图转换为关系模式的过程属于()。A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段6.有三个关系R、S和T如下:R(A,B,C)S(A,B,C)T(A,B,C)则由关系R和S得到关系T的操作是()。A.自然连接B.交C.并D.差7.算法的时间复杂度是指()。A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数8.一个栈的初始状态为空。现将元素A、B、C、D、E、F依次入栈,然后三次退栈,再将元素G、H入栈,最后两次退栈。则栈中剩余元素的个数为()。A.2B.3C.4D.59.设循环队列的存储空间为Q(0:35),初始状态为front=rear=0。现经过一系列入队与退队操作后,front=15,rear=10。则该循环队列中的元素个数为()。A.5B.30C.31D.3510.下列数据结构中,能够按照“关键字”进行高效查找的是()。A.顺序线性表B.链式线性表C.有序线性表D.二叉排序树11.以下关于Python语言特点的描述中,错误的是()。A.Python是一种解释型、通用、跨平台的编程语言B.Python强制要求通过缩进对齐来划分代码块C.Python支持函数式编程,但不支持面向对象编程D.Python拥有丰富的标准库和第三方库12.表达式`divmod(20,3)`的结果是()。A.6B.2C.(6,2)D.[6,2]13.下列选项中,不是Python合法的变量名是()。A._countB.2nd_placeC.total$D.Python_Version14.设有列表`ls=[10,20,30,40,50]`,则`ls[1:4]`的结果是()。A.[20,30,40]B.[20,30,40,50]C.[10,20,30]D.[10,20,30,40]15.关于Python中的字符串,下列说法错误的是()。A.字符串是不可变序列B.可以使用`len()`函数获取字符串长度C.字符串支持切片操作D.字符串可以直接通过索引修改其中的字符16.执行语句`x,y=y,x`的前提条件是()。A.x和y必须是整数B.x和y必须已经定义C.x和y必须类型相同D.不需要任何前提条件17.下列表达式的值为True的是()。A.3>5or0B.3and5C.not(3and5)D.3<5and018.在Python中,用于导入模块的关键字是()。A.includeB.importC.requireD.using19.若`k=10`,则`whilek>1:k//=2`循环体执行的次数是()。A.3B.4C.5D.1020.关于Python函数的参数,下列描述正确的是()。A.可变数量参数必须放在位置参数之前B.关键字参数必须放在位置参数之前C.默认值参数必须放在非默认值参数之后D.函数定义时参数的顺序可以任意排列21.下列代码的输出结果是()。```pythondeffunc(a,b=2,c=3):print(a,b,c)func(1,c=5)```A.125B.153C.123D.语法错误22.在Python中,`lambdax,y:x+y`返回的是一个()。A.整数B.函数对象C.元组D.字符串23.下列关于字典的描述,错误的是()。A.字典中的键必须是不可变类型B.字典中的值可以是任意类型C.字典是无序的(Python3.6+版本插入有序)D.可以通过`dict[key]`访问值,如果key不存在会抛出异常24.设有集合`s={1,2,3}`,则`s.add(3)`后,`s`的值为()。A.{1,2,3}B.{1,2}C.{1,2,3,3}D.报错25.下列代码执行后,列表`lt`的内容是()。```pythonlt=[1,2,3]lt.append([4,5])```A.[1,2,3,4,5]B.[1,2,3,[4,5]]C.[[1,2,3],[4,5]]D.[1,2,3,4]26.使用`open()`函数打开文件时,若希望以二进制写入模式打开,应使用的模式字符串是()。A.'w'B.'r'C.'wb'D.'a'27.下列关于异常处理的语句结构中,`try`代码块后面必须紧跟的是()。A.exceptB.finallyC.elseD.except或finally28.`random`库中,用于生成[0.0,1.0)范围内随机小数的函数是()。A.randint(a,b)B.random()C.randrange(a,b)D.uniform(a,b)29.在`turtle`库中,用于设置画笔向前移动距离的函数是()。A.forward()B.backward()C.penup()D.pendown()30.下列代码的输出结果是()。```pythonls=['a','b','c']foriinrange(len(ls)):print(ls[i],end='-')```A.a-b-cB.a-b-c-C.a-b-c-D.abc31.下列选项中,能够正确读取文件中所有行并返回一个列表的方法是()。A.read()B.readline()C.readlines()D.readall()32.关于Python中的全局变量和局部变量,下列说法正确的是()。A.全局变量在函数内部可以直接被修改B.局部变量的生命周期从函数调用开始到函数结束C.函数内部定义的同名变量会覆盖全局变量,且无法访问全局变量D.使用`global`关键字可以在函数内部声明一个局部变量33.表达式`pow(2,3,5)`的结果是()。A.8B.3C.6D.134.下列代码的输出结果是()。```pythondeff(x):returnx2returnx2print(list(map(f,[1,2,3])))```A.[2,4,6]B.[1,2,3]C.[f(1),f(2),f(3)]D.24635.若要判断一个变量`x`是否是列表类型,应使用()。A.type(x)==listB.isinstance(x,list)C.x.__class__==listD.以上都可以36.下列关于递归函数的描述,错误的是()。A.递归函数必须有一个明确的结束条件B.递归函数通常包含调用自身的语句C.递归深度过大可能会导致栈溢出D.递归函数的效率一定比循环函数高37.在`time`库中,用于获取当前时间戳的函数是()。A.time()B.ctime()C.gmtime()D.sleep()38.下列代码的输出结果是()。```pythond={'a':1,'b':2,'c':3}print(sorted(d.values()))```A.[1,2,3]B.['a','b','c']C.(1,2,3)D.{1,2,3}39.`jieba`库主要用于中文分词,若要精确模式分词,应使用的函数是()。A.jieba.cut()B.jieba.lcut()C.jieba.cut_for_search()D.jieba.lcut_for_search()40.下列关于`PyInstaller`的描述,正确的是()。A.它是一个用于将Python源代码编译成C代码的工具B.它可以将Python程序打包成可执行文件C.它只能在Windows操作系统上运行D.它是Python的标准库,无需安装二、基本操作题(共3题,共18分)41.根据斐波那契数列的定义:F(注意:请勿改动已有代码,仅在`______`处填入代码。```pythondeffib(n):ifn==0:return0elifn==1:return1else:return______n=int(input())print(fib(n))```42.输入一个字符串,统计其中数字字符的个数。请补充程序。注意:请勿改动已有代码,仅在`______`处填入代码。```pythons=input()count=0forcins:if______:count+=1print(count)```43.使用`turtle`库绘制一个半径为50的红色实心圆。请补充程序。注意:请勿改动已有代码,仅在`______`处填入代码。```pythonimportturtleturtle.begin_fill()turtle.______(50)绘制圆形turtle.fillcolor("red")turtle.end_fill()turtle.done()```三、简单应用题(共2题,共24分)44.获得用户输入的一个整数列表,列表中的元素通过逗号分隔。请编写程序,将列表中的所有偶数筛选出来,并保存到一个新的列表中,最后输出新列表。例如:输入:1,2,3,4,5,6输出:[2,4,6]```python请在此处编写代码```45.已知文件`data.txt`中存放了若干行文本,每行包含一个学生的姓名和成绩(空格分隔)。请编写程序,读取文件内容,计算所有学生的平均成绩,并保留两位小数输出。假设文件内容如下:张三80李四90王五85```python请在此处编写代码```四、综合应用题(共1题,共18分)46.某商店进行促销活动,规则如下:1.购物金额小于100元,不打折。2.购物金额在100元(含)到300元(不含)之间,打9折。3.购物金额在300元(含)到500元(不含)之间,打8折。4.购物金额在500元及以上,打7折。请编写一个完整的程序,要求如下:1.定义一个函数`calculate_discount(amount)`,根据购物金额返回折后金额。2.主程序中循环接收用户输入的购物金额(输入"end"结束),调用该函数计算折后金额,并统计输入的有效交易次数和总折后金额。3.程序结束时输出总交易次数和总折后金额的平均值(保留两位小数)。```python请在此处编写完整代码```参考答案及解析一、单项选择题1.D解析:栈是“先进后出”,队列是“先进先出”。两者都是线性表。循环队列通常是顺序存储结构,为了解决假溢出问题。2.D解析:二叉树性质:对任意非空二叉树,为叶子结点数,为度为2的结点数,则=+1。题目中=1,则=0。总结点数n=在二叉树中,度为1的结点只贡献一条边,度为2的贡献两条边。总结点数n,边数为n−n−这种树退化为了链表。深度为结点数,即7。3.A解析:需求分析阶段确定软件系统要做什么。4.C解析:软件设计原则包括抽象、模块化、信息隐蔽、模块独立性等。通常设计过程是自顶向下进行的。5.B解析:E-R图转换为关系模式属于数据库逻辑设计阶段。6.D解析:T中的元组是R中有但S中没有的,这符合“差”运算的定义。7.D解析:算法的时间复杂度是指算法执行过程中所需要的基本运算次数,它是一个关于问题规模n的函数,而非绝对时间。8.B解析:入栈:A,B,C,D,E,F(栈底->栈顶)退栈3次:F,E,D出栈。剩余:A,B,C入栈G,H:A,B,C,G,H退栈2次:H,G出栈。剩余:A,B,C个数为3。9.C解析:循环队列元素个数计算公式:(r这里MaxSize=36(下标0~35)。(1010.D解析:二叉排序树(BST)可以进行高效的查找,平均时间复杂度为O(lo11.C解析:Python既支持函数式编程,也支持面向对象编程。12.C解析:`divmod(a,b)`返回一个元组`(a//b,a%b)`。20//3=6,20%3=2。13.C解析:变量名不能包含特殊字符如`$`。可以包含字母、数字和下划线,且不能以数字开头。14.A解析:列表切片`ls[start:stop]`包含start,不包含stop。`ls[1:4]`取下标1,2,3。15.D解析:字符串是不可变对象,不能通过索引修改字符,如`s[0]='a'`会报错。16.B解析:交换变量值前,变量必须已经被定义并赋值,否则会抛出`NameError`。17.B解析:A:`3>5`为False,`or0`,结果为0(False)。B:`3and5`,3为真,返回5。在布尔上下文中5为True。C:`not(3and5)`->`not5`->False。D:`3<5`为True,`and0`,结果为0(False)。18.B解析:Python使用`import`导入模块。19.B解析:k=10,10>1,k=5k=5,5>1,k=2k=2,2>1,k=1k=1,1>1False。循环结束。共执行3次?不对,仔细看:1.k=10->k=52.k=5->k=23.k=2->k=1此时k=1,不满足条件。执行了3次。等等,让我重新算。k=10,conditiontrue,kbecomes5.(Count1)k=5,conditiontrue,kbecomes2.(Count2)k=2,conditiontrue,kbecomes1.(Count3)k=1,conditionfalse.所以是3次?题目选项如果是3,4,5,10。让我检查一下题目逻辑`k//=2`。10//2=55//2=22//2=11//2=0(如果循环继续)循环条件是`k>1`。10>1(T)->55>1(T)->22>1(T)->11>1(F)->Stop.确实是3次。但我看选项A是3。让我再看一遍题目。题目选项:A.3B.4C.5D.10。选A。修正:通常这类题目可能会有陷阱,比如`k`初始值。如果`k=16`,则是4次。这里`k=10`,确实是3次。修正:通常这类题目可能会有陷阱,比如`k`初始值。如果`k=16`,则是4次。这里`k=10`,确实是3次。等等,我看错了吗?等等,我看错了吗?10->5(1)5->2(2)2->1(3)结束。答案A。20.C解析:Python函数定义中,非默认值参数必须放在默认值参数之前;位置参数必须放在关键字参数之前(在调用时,定义时只需非默认在前)。21.A解析:`func(1,c=5)`。`a`赋值为1。`b`没传值,使用默认值2。`c`赋值为5。输出`125`。22.B解析:`lambda`表达式返回一个匿名函数对象。23.C解析:在Python3.7及以后版本中,字典保持插入顺序。选项C说“字典是无序的”在现代Python语境下通常被视为错误描述,或者特指“无序集合”的概念,但在考试中,若强调“无序”通常指逻辑上不是通过索引访问,但现代Python字典是有序的。不过,选项D说“不存在会抛出异常”是正确的。选项A、B都是正确的。选项C是传统说法,但在Python3.6+官方已保证有序。如果在旧语境下C算对,那这就多选了。但在NCRE二级Python中,通常认为字典是“无序”的(尽管实现变了),或者更准确地说,它不是序列。重新审视:实际上,NCRE大纲可能尚未完全更新到强调字典有序。但更明显的错误点可能在于其他选项?重新审视:实际上,NCRE大纲可能尚未完全更新到强调字典有序。但更明显的错误点可能在于其他选项?选项A:键不可变。正确。选项B:值任意。正确。选项D:`dict[key]`不存在抛出KeyError。正确。选项C:字典是无序的。这是Python3.6之前的特性。如果在2026年的模拟题中,可能需要考虑这一点。但通常考试中,字典被视为“键值对集合,无序”是经典定义。等等,是否有更明显的错误?等等,是否有更明显的错误?让我们看选项A。键必须是不可变。正确。选项D。不存在的key抛出异常。正确。选项C。如果题目是基于最新Python,C是错的。如果基于旧大纲,C是对的。让我们找找其他选项的漏洞。也许题目设计意图是C为错误,因为Python3.7+字典有序。或者,题目有其他陷阱。让我们假设这是一套“2026”的模拟题,应该反映新特性。选C。24.A解析:集合中的元素是唯一的。`add(3)`添加已存在的元素,集合不变。25.B解析:`append()`方法将参数作为一个元素添加到列表末尾。`[4,5]`作为一个整体被添加。26.C解析:'w'文本写入,'wb'二进制写入。27.D解析:`try`后面必须紧跟`except`或`finally`。不能直接跟`else`。28.B解析:`random.random()`生成[0.0,1.0)。`randint`生成整数,`uniform`生成指定范围浮点数。29.A解析:`forward`(或`fd`)前进。`backward`后退。`penup`抬笔。`pendown`落笔。30.B解析:`range(3)`产生0,1,2。i=0,print'a-',end='-'i=1,print'b-',end='-'i=2,print'c-',end='-'结果:`a-b-c-`31.C解析:`readlines()`读取所有行并返回列表。`read()`返回整个字符串。`readline()`读一行。32.B解析:A:错,全局变量在函数内若要修改需声明`global`。B:对,局部变量作用域仅限函数体。C:错,若没声明`global`,是新建同名局部变量,覆盖了全局的可见性,但全局变量本身没变。D:错,`global`是声明引用全局变量。33.B解析:`pow(x,y,z)`等价于()。=8,34.A解析:`map`函数将函数`f`应用到列表每个元素,返回迭代器。`list()`转换为列表。1->2,2->4,3->6。35.D解析:三种方式都可以判断类型。`isinstance`更常用,因为它支持继承关系。36.D解析:递归效率通常低于循环,因为涉及函数调用开销和栈操作。37.A解析:`time.time()`返回时间戳(浮点秒数)。`ctime`返回字符串。`gmtime`返回结构体。`sleep`休眠。38.A解析:`d.values()`获取值视图`dict_values([1,2,3])`。`sorted()`对其排序,返回列表`[1,2,3]`。39.B解析:`jieba.lcut()`返回列表。`jieba.cut()`返回迭代器。题目通常考察列表操作以便直接输出或查看。40.B解析:PyInstaller是第三方库,用于将源码打包成.exe(Windows)或可执行文件,支持跨平台打包。二、基本操作题41.fib(n-1)+fib(n-2)解析:根据斐波那契数列定义,第n项等于前两项之和。42.c.isdigit()解析:遍历字符串中的每个字符,使用字符串的`isdigit()`方法判断是否为数字字符。43.circle解析:`turtle.circle(radius)`用于绘制圆形。三、简单应用题44.参考代码:```pythontry:获取输入字符串,按逗号分割input_str=input()处理可能存在的空格,并转换为整数列表使用列表推导式,strip()去除空格original_list=[int(x.strip())forxininput_str.split(',')]筛选偶数result_list=[xforxinoriginal_listifx%2==0]输出结果print(result_list)except:pass```45.参考代码:```pythontry:total_score=0count=0打开文件,假设文件名为data.txt,使用utf-8编码withopen('data.txt','r',encoding='utf-8')asf:forlineinf:去除行尾换行符line=line.strip()ifline:按空格分割parts=line.split()确保分割后有内容,取最后一部分作为成绩(或者取下标1)iflen(parts)>=2:score=float(parts[1])total_score+=scorecount+=1ifcount>0:a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年IT项目验收利益相关者沟通
- 2026 学龄前自闭症指令跟随课件
- 幼儿在家的表现家长评语
- 光伏项目售后服务承诺书
- 生产安全隐患排查治理闭环自查报告
- 2026年食品加工厂电气消防隐患排查培训计划
- 2026年企业CRM系统操作应用培训计划
- 2026年数据分析师可视化工具应用培训方案
- 机电管线保温施工工艺流程
- 2026年4月26日贵州省市遴选面试真题及解析
- 成人先天性心脏病相关肺动脉高压诊断与治疗指南(2026年)解读课件
- 护理专科护士角色定位与发展
- 化学品MRSL培训教材
- 2025年甘肃省甘南州第三批高层次和急需紧缺专业技术人才引进52人(公共基础知识)综合能力测试题附答案解析
- 抖音运营团队建设与管理方案
- 静脉采血注意事项
- 呼吸机依赖患者脱机方案
- 2025至2030中国人用狂犬病疫苗行业项目调研及市场前景预测评估报告
- 林地联营协议合同范本
- 2025年浙江省温州市辅警招聘考试题题库(含参考答案)
- T-CS 111-2025 建设工程 施工周边工程监测技术规程
评论
0/150
提交评论