2025年最-新计算机等级考试(NCRE二级Python)试题与答案_第1页
2025年最-新计算机等级考试(NCRE二级Python)试题与答案_第2页
2025年最-新计算机等级考试(NCRE二级Python)试题与答案_第3页
2025年最-新计算机等级考试(NCRE二级Python)试题与答案_第4页
2025年最-新计算机等级考试(NCRE二级Python)试题与答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

2025年最新计算机等级考试(NCRE二级Python)试题与答案一、单项选择题(共20小题,每小题1分,共20分)1.下列关于算法时间复杂度的描述中,正确的是()A.算法的时间复杂度是指算法执行过程中所需的计算机实际物理时长B.时间复杂度为O(n²)的算法,执行耗时一定是O(n)算法的n倍C.时间复杂度是对算法运算工作量增长趋势的相对性评估指标,可用于同场景下算法效率对比D.对数阶时间复杂度的算法,运行效率一定高于常数阶O(1)的算法2.已知栈的初始状态为空,将元素1、2、3、4、5依次入栈,下列不可能得到的出栈序列是()A.23154B.34251C.15423D.435123.某二叉树的前序遍历序列为A-B-D-E-C-F-G,中序遍历序列为D-B-E-A-F-C-G,则该二叉树的后序遍历序列为()A.D-E-B-F-G-C-AB.A-B-C-D-E-F-GC.D-B-E-F-C-G-AD.A-C-B-G-F-E-D4.下列关于软件工程生命周期阶段的描述中,不属于需求分析阶段核心任务的是()A.确定软件的功能需求、性能需求B.梳理软件的数据流与数据逻辑结构C.编写软件的测试用例与执行测试D.输出软件需求规格说明书5.关系数据库中,有学生关系R(S#,姓名,院系)和成绩关系S(S#,课程号,分数),要查询所有学生的姓名、对应的课程号和分数,需要执行的关系运算是()A.选择运算B.连接运算C.投影运算D.并运算6.下列标识符中,符合Python语言变量命名规范的是()A.123_userB.classC.user_name_2025D.import@data7.执行代码段:a="Python等级考试",print(a[1:6:2]),输出的结果是()A.yhnB.PtoC.ytoD.程序报错8.下列关于Python生成器的描述中,错误的是()A.生成器是惰性执行的,仅在迭代时才生成对应元素B.生成器可以通过yield关键字定义,也可以通过生成器表达式创建C.生成器支持多次迭代遍历,遍历完成后所有元素会保留在内存中D.生成器的内存占用远低于同等元素规模的列表,适合处理超大规模数据流9.已知func=lambdax,y:x*y+2,执行语句print(func(3,4))后的输出结果是()A.14B.12C.34D.程序报错10.下列Python异常处理结构的描述中,可实现捕获所有类型异常、且无论程序是否发生异常都会执行对应代码块的关键字是()A.exceptB.elseC.finallyD.raise11.执行代码段:lst=[1,2,3,4,5],下列选项中可以得到[2,4,6,8,10]结果的代码是()A.list(map(lambdax:x*2,lst))B.list(filter(lambdax:x*2,lst))C.[x*2forxinlstifx*2>5]D.以上选项都不对12.下列关于Python字典类型的描述中,说法正确的是()A.字典的键可以是列表类型B.同一个字典中,同一个键可以重复出现多次C.字典的items()方法返回所有键值对组成的视图对象D.字典属于有序不可变序列类型13.使用Python内置的csv模块读取CSV格式表格数据,要将每行数据转换为以表头为键的字典对象,需要调用的类是()A.csv.readerB.csv.DictReaderC.csv.writerD.csv.DictWriter14.下列Python文件操作的描述中,打开文件时使用参数'w+'的含义是()A.只读模式打开文件,文件不存在则报错B.只写模式打开文件,文件不存在则创建,存在则覆盖原有内容C.读写模式打开文件,文件不存在则创建,存在则覆盖原有内容D.追加读写模式打开文件,文件指针默认指向文件末尾15.下列PEP8编码规范的要求中,描述错误的是()A.函数名、变量名推荐使用小写字母加下划线的蛇形命名法B.代码行的最大长度建议不超过128个字符C.函数之间、类的方法之间建议用两个空行分隔D.导入语句建议放在文件顶部,不要和其他业务代码混排16.执行代码段:d={"张三":90,"李四":85,"王五":92},下列选项中可以输出85的是()A.print(d["李四"])B.print(d.get("赵六",0))C.print(d.popitem())D.print(d.keys())17.使用matplotlib.pyplot绘制可视化图表时,解决中文标签显示为方块乱码的配置代码是()A.plt.rcParams['font.sans-serif']=['SimHei']B.plt.rcParams['axes.unicode_minus']=TrueC.plt.figure(figsize=(10,5))D.plt.title("中文标题")18.下列Python内置函数的用法中,返回结果为整数类型的是()A.str(123)B.float("3.14")C.sum([1,2,3])D.type([1,2,3])19.执行代码段:a=set([1,2,3,4]),b=set([3,4,5,6]),则a-b的运行结果是()A.{1,2,3,4,5,6}B.{3,4}C.{1,2}D.{5,6}20.下列关于Python第三方库安装的描述中,可实现安装指定版本号第三方库的命令是()A.pipinstalljiebaB.pipinstalljieba==0.42.1C.pipuninstalljiebaD.piplist【单项选择题答案与解析】1.答案:C。解析:时间复杂度是衡量算法工作量的增长趋势,并非实际物理运行时间,A错误;O(n²)和O(n)的算法时间复杂度仅描述增长阶,受系数、常量影响不存在固定倍数关系,B错误;当n的取值小于1时,log₂n的值小于1,此时对数阶算法效率低于常数阶O(1),D错误。2.答案:D。解析:若要最先输出元素4,需要先完成1、2、3、4依次入栈,此时栈内从栈底到栈顶顺序为1、2、3、4,4出栈后下一个可出栈元素是3,3出栈后栈内顺序为1、2,后续如果出栈5,需要将5入栈后出栈,此时栈内剩余元素为1、2,出栈序列不可能出现1在2之前、之后紧跟2的情况,因此D选项序列不合法。3.答案:A。解析:结合前序遍历根节点优先、中序遍历根节点分割左右子树的特性,可推导出根节点为A,左子树节点为B、D、E,右子树节点为C、F、G,后序遍历规则为左子树-右子树-根节点,因此输出序列为D-E-B-F-G-C-A。4.答案:C。解析:编写测试用例与执行测试属于软件测试阶段的核心任务,不属于需求分析阶段工作。5.答案:B。解析:两个不同关系通过公共字段S#拼接查询所需数据,属于关系运算中的连接运算。6.答案:C。解析:变量名不能以数字开头,不能是关键字,不能包含特殊符号@,仅C选项符合规范。7.答案:A。解析:Python字符串切片a[start:end:step]的区间是左闭右开,索引1到6对应的字符为'y'、't'、'h'、'o'、'n',步长为2时取索引1、3、5位置的字符,结果为'yhn'。8.答案:C。解析:生成器迭代完成后没有剩余元素,无法再次遍历,不会将所有元素保留在内存中。9.答案:A。解析:匿名函数接收x=3、y=4,执行3*4+2=14。10.答案:C。解析:finally关键字对应的代码块无论程序是否抛出异常都会执行,常用于释放文件资源、数据库连接等场景。11.答案:A。解析:map函数将序列每个元素传入指定函数处理后返回迭代器,转换为列表后得到每个元素乘2的结果;filter函数是过滤元素,返回符合条件的原序列元素。12.答案:C。解析:字典的键必须是不可变类型,列表是可变类型不能作为键,A错误;字典的键具有唯一性,同一个键不能重复出现,B错误;字典是可变无序映射类型,不属于序列,D错误。13.答案:B。解析:csv.DictReader会自动读取表格的第一行作为表头,后续每行数据转换为以表头为键的字典对象,是数据处理场景常用的读取方式。14.答案:C。解析:'w'模式是覆盖写入,'w+'是支持读写的覆盖模式,文件不存在时自动创建。15.答案:C。解析:PEP8规范要求顶级函数、类之间用两个空行分隔,类内部的方法之间用一个空行分隔。16.答案:A。解析:d["李四"]直接取对应键的值85;get方法取不存在的键返回默认值0;popitem方法返回字典末尾的键值对;keys()返回所有键的视图对象。17.答案:A。解析:配置字体为SimHei黑体即可解决中文乱码问题,B选项是配置负号正常显示,和中文显示无关。18.答案:C。解析:sum函数对数值序列求和返回整数;str返回字符串类型,float返回浮点类型,type返回类型对象。19.答案:C。解析:集合的差运算a-b返回属于a但不属于b的元素集合,结果为{1,2}。20.答案:B。解析:通过==拼接版本号即可安装指定版本的第三方库。二、基本操作题(共3小题,每小题10分,共30分)1.题目要求:编写Python程序,接收用户输入的正整数n(3≤n≤10),打印输出n行的居中星号金字塔图案,第1行有1个星号,第2行有3个星号,以此类推,每行星号两侧填充空格实现居中效果。【参考实现代码】```pythonn=int(input())foriinrange(1,n+1):space_num=n-istar_num=2*i-1print(''*space_num+'*'*star_num)```【得分要点说明】正确读取输入的整数占2分,循环逻辑覆盖n行输出占3分,星号数量计算正确占2分,空格填充实现居中效果占2分,无语法错误正常运行占1分。2.题目要求:编写Python程序,接收用户以空格分隔输入的10个整数,将这些整数存入列表,完成去重操作后按照从小到大的升序规则排序,最终逐行输出排序后的所有元素。【参考实现代码】```pythoninput_str=input()num_lst=list(map(int,input_str.split()))unique_lst=list(set(num_lst))unique_lst.sort()fornuminunique_lst:print(num)```【得分要点说明】正确读取并转换输入为整数列表占3分,去重逻辑实现占2分,sort方法升序排序占3分,逐行遍历输出结果占2分。3.题目要求:编写Python程序,读取当前目录下的data.txt文本文件,统计文件中中文字符、英文字母、数字字符、其他字符的四类数量,将统计结果写入到result.txt文件中,每行对应一类字符的统计结果。【参考实现代码】```pythoncn_char=0en_char=0digit_char=0other_char=0withopen("data.txt","r",encoding="utf-8")asf:content=f.read()forcincontent:if'\u4e00'<=c<='\u9fff':cn_char+=1elifc.isalpha():en_char+=1elifc.isdigit():digit_char+=1else:other_char+=1withopen("result.txt","w",encoding="utf-8")asf:f.write(f"中文字符数量:{cn_char}\n")f.write(f"英文字母数量:{en_char}\n")f.write(f"数字字符数量:{digit_char}\n")f.write(f"其他字符数量:{other_char}\n")```【得分要点说明】正确使用with上下文管理器读取文件占2分,中文字符的编码范围判断逻辑占3分,字母、数字的内置判断方法调用占2分,写入结果到目标文件的逻辑占2分,编码参数指定避免乱码占1分。三、简单应用题(共2小题,每小题15分,共30分)1.题目要求:自定义判断素数的函数is_prime(n),功能为接收正整数n,若n为素数返回True,否则返回False。基于该函数输出100到200之间所有的素数,统计素数的总数量,计算所有素数的累加和,最终逐行输出每个素数,最后一行输出素数总数量和累加和。【参考实现代码】```pythondefis_prime(n):ifn<=1:returnFalseforiinrange(2,int(n0.5)+1):ifn%i==0:returnFalsereturnTrueprime_lst=[]fornuminrange(100,201):ifis_prime(num):prime_lst.append(num)print(num)print(f"100到200之间素数总数量为{len(prime_lst)},累加和为{sum(prime_lst)}")```【得分要点说明】is_prime函数定义正确占6分,平方根优化素数判断逻辑占3分,遍历100到200区间筛选素数占3分,最后统计输出结果占3分。2.题目要求:编写Python程序,循环接收用户输入的学生信息,输入格式为“姓名语文成绩数学成绩英语成绩”,当用户输入字符#时结束输入。将所有学生信息存储为字典列表,每个字典包含name、chinese、math、english三个字段,计算每个学生的三科平均分,按照平均分从高到低降序排序,输出学生排名表,每行显示排名、姓名、平均分,平均分保留1位小数。【参考实现代码】```pythonstudent_lst=[]whileTrue:input_content=input()ifinput_content=='#':breakparts=input_content.split()student={"name":parts[0],"chinese":int(parts[1]),"math":int(parts[2]),"english":int(parts[3])}student_lst.append(student)student_lst.sort(key=lambdax:(x["chinese"]+x["math"]+x["english"])/3,reverse=True)foridx,stuinenumerate(student_lst):avg_score=(stu["chinese"]+stu["math"]+stu["english"])/3print(f"第{idx+1}名{stu['name']}平均分:{avg_score:.1f}")```【得分要点说明】循环接收输入、终止条件判断占4分,学生字典列表存储逻辑占4分,sort方法自定义排序规则占4分,格式化输出保留1位小数占3分。四、综合应用题(共1小题,20分)题目要求:当前目录下存在新闻文本文件news.txt和停用词文件stopwords.txt,编写Python程序完成以下任务:第一,读取停用词文件的所有内容,将每行的停用词存入停用词集合;第二,读取news.txt的全部文本内容,调用jieba库的lcut方法完成中文分词,过滤掉分词结果中的停用词和长度为1的单字字符;第三,统计所有有效词汇的出现频次,按照频次从高到低排序,取出出现频次最高的前10个词汇;第四,逐行输出前10个词汇和对应的频次,同时使用matplotlib.pyplot绘制横向柱状图,x轴为词汇出现频次,y轴为词汇名称,添加图表标题“新闻文本高频词统计”,配置中文正常显示,最终将图表保存为result.png图片文件。【参考实现代码】```pythonimportjiebaimportmatplotlib.pyplotaspltstopwords=set()withopen("stopwords.txt","r",encoding="utf-8")asf:forlineinf:word=line.strip()ifword:stopwords.add(word)withopen("news.txt","r",encoding="utf-8")asf:content=f.read()words

温馨提示

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

评论

0/150

提交评论