《全国计算机等级考试二级Python真题及解析【最新版】.pdf》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Python真题及解析【最新版】.pdf(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级全国计算机等级考试二级 PythonPython 真题及解析真题及解析1.下面不属于软件工程的 3 个要素的是 _。A 过程B 方法C 环境D 工具正确答案: C2.下面不属于软件设计原则的是 _。A 模块化B 自底向上C 信息隐蔽D 抽象正确答案: B3.在关系数据库中,用来表示实体之间联系的是 _。A 网结构B 二维表C 线性表D 树结构正确答案: B4.一般情况下, 当对关系 R 和 S 进行自然连接时, 要求 R 和 S含有一个或者多个共有的 _。A 属性B 元组C 记录D 行正确答案: A5.有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司c(公司
2、号,公司名,地址,注册资本,法人代表,员工数 ),职员s(职员号,姓名,性别,年龄,学历),工作 w(公司号,职员号,工资),则表 w 的键(码)为 _。A 公司号,职员号,工资B 职员号C 职员号,工资D 公司号,职员号正确答案: D6. 下列叙述中正确的是 _。A 栈是一种先进先出的线性表B 栈与队列都是非线性结构C 队列是一种后进先出的线性表D 栈与队列都是线性结构正确答案: D7. 下列叙述中正确的是 _。A 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C线性表的链式存储结构与顺序存储结构所需要的存储方式是相同
3、的D 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的正确答案: B8. 算法的有穷性是指 _。A 算法只能被有限的用户使用B 算法程序所处理的数据量是有限的C 算法程序的运行时间是有限的D 算法程序的长度是有限的正确答案: C9.软件设计中划分模块的一个准则是 _。A 高内聚高耦合B 低内聚高耦合C 高内聚低耦合D 低内聚低耦合正确答案: C10.耦合性和内聚性是对模块独立性度量的两个标准。下面叙述中正确的是 A 降低耦合性提高内聚性有利于提高模块的独立性B 耦合性是指一个模块内部个元素间彼此结合的紧密程度C 提高耦合性降低内聚性有利于提高模块的独立性D 内聚性是模块间相互连接的紧
4、密程度正确答案: A11.每个程序都具有的统一的运算模式是:A 顺序计算模式B 输入输出模式C 函数调用模式DIPO 模式正确答案: D12.以下不是 Python 语言关键字的选项是:ANoneCraiseDfunction正确答案: D13.以下关于同步赋值语句描述错误的选项是:A 同步赋值能够使得赋值过程变得更简洁B 判断多个单一赋值语句是否相关的方法是看其功能上是否相关或相同C 设 x, y 表示一个点的坐标,则 x=a;y=b 两条语句可以用 x,y = a,b 一条语句来赋值D 多个无关的单一赋值语句组合成同步赋值语句, 会提高程序可读性正确答案: D14.以下代码的输出结果是:p
5、rint(:*10.4.format(Flower)AFlowBFlowerCFlowD*Flow*正确答案: D15.表达式print(float(complex(10+5j).imag)的结果是:B5C10.0D5.0正确答案: D表达式print(:.2f.format(20-2*3+10/3*2*5)的结果是:A17.55B67.56C12.22D17.56正确答案: D17. 如果 p=ord( a:A97 dB97 cC97 x),表达式 print(p,chr(p+3)%26+ord(a)的结果是D97 w正确答案: D18.以下程序的输出结果是:chs = |-|for i i
6、n range(6):for ch in chsi:print(ch,end=)A|-B|-|C|-|D|-|正确答案: D19.以下关于随机运算函数库的描述,错误的是:Arandom 库 里 提 供 的 不 同 类 型 的 随 机 数 函 数 是 基 于random.random() 函数扩展的B 伪随机数是计算机按一定算法产生的,可预见的数,所以是“伪”随机CPython 内置的 random 库主要用于产生各种伪随机数序列Duniform(a,b) 产生一个 a 到 b 之间的随机整数正确答案: D以下关于分支和循环结构的描述,错误的是:Apython 的在分支和循环语句里使用例如 xB
7、 分支结构的中的代码块是用冒号来标记的Cwhile 循环如果设计不小心会出现死循环D 二分支结构的 if else 形式,适合用来控制程序分支正确答案: D以下程序的输出结果是:for i in CHINA:for k in range(2):print(i, end=)if i = N:breakACCHHIINNAABCCHHIIAACCCHHIAADCCHHIINAA正确答案: D22.以下程序的输出结果是:x= 10while x:x-= 1if not x%2:print(x,end = )print(x)A86420B975311C97531D864200正确答案: D23.用户输
8、入整数的时候不合规导致程序出错,为了不让程序异常中断,需要用到的语句是:Aif 语句Beval 语句C 循环语句Dtry-except 语句正确答案: D24.以下关于 python 内置函数的描述,错误的是:Aid() 返回一个变量的一个编号,是其在内存中的地址Ball(ls) 返回 True,如果 ls 的每个元素都是 TrueCtype() 返回一个对象的类型Dsorted() 对一个序列类型数据进行排序,将排序后的结果写回到该变量中正确答案: D25.以下关于函数的描述,正确的是:A 函数的全局变量是列表类型的时候, 函数内部不可以直接引用该全局变量B 如果函数内部定义了跟外部的全局变
9、量同名的组合数据类型的变量,则函数内部引用的变量不确定Cpython 的函数里引用一个组合数据类型变量, 就会创建一个该类型对象D 函数的简单数据类型全局变量在函数内部使用的时候, 需要在显式声明为全局变量正确答案: D26.以下程序的输出结果是:s1 =QQs2 =Wechatprint(:*10.format(s1,s2)A*QQWechat=BQQWechatDQQ*=Wechat正确答案: D27.关于以下程序输出的两个值的描述正确的是:da = 1,2,3print(id(da)def getda(st):fa = da.copy()print(id(fa)getda(da)A 两个
10、值相等B 每次执行的结果不确定C 首次不相等D 两个值不相等正确答案: D28.以下不是组合数据类型的是:A 集合类型B 序列类型C 映射类型D 引用类型正确答案: D29.以下关于组合类型的描述,错误的是:A 可以用大括号创建字典,用中括号增加新元素B 嵌套的字典数据类型可以用来表达高维数据C 字典的 pop 函数可以返回一个键对应的值, 并删除该键值对 D空字典和空集合都可以用大括号来创建正确答案: D30.以下程序的输出结果是:x= 90,87,90n= 90print(x.count(n)A1B2CNoneD正确答案: D31.以下程序的输出结果是:dict = Name: baby,
11、 Age: 7print(dict.items()A(Age, 7), (Name, baby)B(Age, 7), (Name, baby)CAge:7, Name: babyDdict_items(Age, 7), (Name, baby)正确答案: D32.以下程序的输出结果是:dat=1, 2, 3, 0, 0, 0for item in dat:if item = 0:dat.remove(item)print(dat)A1, 2, 3B1, 2, 3, 0, 0C1, 2, 3, 0, 0, 0D1, 2, 3, 0正确答案: D以下程序的输出结果是:L2 = 1,2,3,4,5,
12、6,7,8L2.sort(reverse = True)print( L2)A5, 6, 7, 8, 1, 2, 3, 4B8,7,6,5, 4,3,2,1C8,7,6,5, 4,3,2,1D5, 6, 7, 8, 1, 2, 3, 4正确答案: D34.关于数据维度的描述,错误的是:A 一维数据采用线性方式组织,对应于数组概念C 高维数据由键值对类型的数据组成,采用对象方式组织D 一维数据是由对等关系的有序数据构成, 无序数据不是一维数据正确答案: D35.以下程序的输出结果是:fo = open(text.txt,w+)x,y =this is a test,hellofo.write(+
13、n.format(x,y)print(fo.read()fo.close()Athis is a test helloBthis is a testCthis is a test,hello.Dthis is a test+hello正确答案: D36.文件 dat.txt 里的内容如下:QQWechatGoogle Baidu以下程序的输出结果是:fo = open(tet.txt,r)fo.seek(2)print(fo.read(8)fo.close()AWechatBWechat GCWechat GoDWechat正确答案: D37.以下属于 Python HTML 和 XML 解析
14、的第三方库的是:ADjangoBNetworkxCRequestsDBeautiful Soup正确答案: D38.以下属于 Python 打包源文件为可执行文件的第三方库的是:APILBMatplotlibCSklearnDPyinstaller正确答案: D39.以下属于 Python Web 开发框架第三方库的是:AWeRoBotBWheelCPygameDDjango正确答案: D40.以下关于 Python 内置库、 标准库和第三方库的描述, 正确的是:A 第三方库需要单独安装才能使用B 内置库里的函数不需要 import 就可以调用C 第三方库有三种安装方式,最常用的是 pip 工
15、具D 标准库跟第三方库发布方法不一样,是跟 python 安装包一起发布的正确答案: D二、操作题1.101参照代码模板完善代码,实现下述功能。从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信息。示例如下:输入10,输出 10 输入输出示例输入输出示例 110, 10习题讲解答案 :a,x = input().split(,) # 请输入 1 个整数和 1 个符号,逗号隔开print(x*eval(a),a,x*eval(a)要点:1.输入两个值组成的字符串,要用 split()分割开2.同时赋值给两个变量3.利用 eval 得到数值做运算,给字符做乘法,得到需要的格式2.10
16、2参照代码模板完善代码, 实现下述功能。 从键盘输入一个由 1 和0 组成的二进制字符串 s,转换为八进制数输出显示在屏幕上,示例如下:输入:1100输出:转换成八进制数是: 14输入输出示例输入输出示例 1110014习题讲解答案:s= input() # 请输入一个由 1 和 0 组成的二进制数字串d= 0whild= d*2 + (ord(s0)-ord(0)s= s1:print( 转换成八进制数是: :o.format(d)要点:1.print 和 format 的格式用法,字符串的内置处理函数,切片2.理解数据类型及其转换3.103参照代码模板完善代码,实现下述功能。文件data.
17、txt 文件中有多行数据,打开文件,读取数据,并将其转化为列表。统计读取的数据,计算每一行的总和、平均值,在屏幕上输出结果。文件内容示例如下:Chinese: 80,Math:85,English:92, Physical: 81,Art:85,Chemical:88屏幕输出结果示例如下:总和是: 511.0,平均值是: 85.17输入输出示例输入输出示例 1 从文件 data.txt中读取总和是:511.0,平均值是: 85.17习题讲解答案:fi = open(data.txt, r)for l in fi:l= l.split(,)s= 0.0n= len(l)for cours in
18、l:items = cours.split(:)s+= eval(items1)print( 总和是: ,平均值是: :.2f.format(s,s/n)fi.close()4.201参照代码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制同心圆套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素,效果如下图所示。自动评阅说明使用字符串形式输出 _,_,_ _中应填代码即可以自动评阅得分例如,如果代码为:#代码模板| # 你的代码 import turtle|import tu
19、rtled= 0| d = 0for i in range(_1_): |for i in range(1):turtle.fd(_2_) |turtle.fd(100)turtle._3_|turtle.fd(100 + (i * 3)turtle.seth(d)|turtle.seth(d)则在提交代码页面输入:print(1, 100, fd(100 + (i * 3)提交后即可以查看得分注:如果有运算符,请在运算符两侧加上空格习题讲解答案:#请在 _处填写一行代码 # 请不要修改其他代码import turtler= 10dr = 40head = 90for i in range (
20、4):turtle.pendown()turtle.circle(r)r+= drturtle.penup()turtle.seth(-head)turtle.fd(dr)turtle.seth(0)turtle.done()要点:1. 同心圆主要问题是要挪动画笔,用到 pendown 和 penup2.用循环来处理重画的个数5.202参照代码模板完善代码,实现下述功能。从键盘输入一个中文字符串变量s,内部包含中文标点符号。问题 1:( 8 分)用 jieba 分词, 计算字符串 s 中的中文词汇个数,不包括中文标点符号。显示输出分词后的结果,用”/ 分”隔,以及中文词汇个数。示例如下:输入:
21、工业互联网”实施的方式是通过通信、 控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。输出:工业 / 互联网 /实施 / 的/ 方式 /是/ 通过 / 通信 /控制 /和 / 计算技术 /的/ 交叉 / 应用/建造 / 一个 / 信息 /物理 / 系统 / 促进 /物理 / 系统 /和/数字 / 系统 / 的/融合 / 中文词语数是: 27问题 2:( 7 分)在问题 1 的基础上,统计分词后的词汇出现的次数,用字典结构保存。显示输出每个词汇出现的次数,以及出现次数最多的词汇。如果有多个词汇出现次数一样多,都要显示出来。示例如下:继续输出:控制 : 1物理 : 2通
22、信 : 1交叉 : 1互联网 : 1和: 2是: 1计算技术 : 1一个 : 1的: 3数字 : 1促进 : 1信息 : 1方式 : 1建造 : 1应用 : 1系统 : 3通过 : 1实施 : 1融合 : 1工业 : 1出现最多的词是(的系统):3 次输入输出示例输入输出问题 1“工业互联网”实施中文词语数是:27的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。问题 2 控制: 1物理 : 2通信 : 1交叉 : 1互联网 : 1和: 2是: 1计算技术 : 1一个 : 1的: 3数字 : 1促进 : 1信息 : 1方式 : 1建造 : 1应用
23、: 1系统 : 3通过 : 1实施 : 1融合 : 1工业 : 1出现最多的词是(的系统): 3 次习题讲解答案:#请在 .处填写多行表达式或语句#可以修改其他代码import jieba#s = 工“业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。s= input(请输入一个中文字符串,包含逗号和句号:)s=s.replace( , ,).replace( 。 ,).replace( 、,).replace(“ ,).replace(” ,) k=jieba.lcut(s)d1 = maxc = 0wo = for i in k:
24、print(i, end= / )d1i = d1.get(i,0) + 1print(n 中文词语数是: .format(len(k)for key in d1:if maxcwo = keymaxc = d1keyelif maxc = d1key:wo += + keyprint(: .format(key,d1key)print( 出现最多的词是( ): 次 .format(wo, maxc)要点:1.用 jieba 分词处理词汇统计2.要处理掉输入的各种标点符号,用到 replace()3.用字典保存各个词出现次数4.要遍历字典的键值对,找到最大的值,及其对应的键6.301一个人脸识
25、别研究小组对若干名学生做了人脸识别的测试, 将测试结果与被测试者的现场照片组合成文件名,写到了一个文件dir_100.txt中,每行是一个文件名的信息,示例如下:1709020621, 0_116.jpg1709020621_115.jpg1770603107, 1770603105, 0, 0_1273.jpg文件名各部分含义如下:识别出学号 1,识别出学号 2 , ,表0 示检测到人脸但未识别出人 照片的顺序编号 .jpg测试过程中,一个学生可能被抓拍到多张照片中, 所以会在多个文件名中被识别,学号出现在多个文件名中;一张照片中,可能有多个人脸,但有些分辨率不够而识别不出来,文件名位置用0
26、 代替学号。使用字典和列表型变量进行数据分析, 最终获取实际参加测试的学生人数和人均被测次数。(1)读入 dir_300.txt 文件的内容,处理每一行文件名信息。将文件名中的学号内容以列表形式保存,丢掉0 的字串;照片的顺序编号作为字典的关键字,学号列表作为字典的值。转换后,显示字典中的每行信息,示例如下:116:1709020621115:1709020621117:17090206211273: 1770603107,1770603105(2)将该字典中的学号提取出来, 构造另一个字典, 以学号作为字典的关键字,累计学号出现的次数,将累计值作为字典的值。格式示例如下:1709020621
27、:31770603107:11770603105:1(3)累计字典中关键字的个数,即为实际参加测试的学生人数 ;累加每个关键字对应的值,即为所有学号测试次数 ;与实际测试人数之比,即为人均被测次数。将实际参加测试人数和人均被测次数显示输出在屏幕上,示例如下:实际参加测试的人数是:1024人均被测次数是: 2.7输入输出示例输入输出问题 1 从文件 dir_50.txt 读实际参加测试的人入数是: 1024人均被测次数是:自动评阅提示:输出最终结果即可,中间结果不需要输出习题讲解答案:#P301-1.py#请在 .处填写多行表达式或语句#可以修改其他代码picd = numd = fi = op
28、en(dir_50.txt,r)for l in fi:l=l.replace(n,).split(_)#print(l1)if l0 != :lkey,lvalue = l1:-4,eval(l0)lval = for v in lvalue:if v != 0:lval.append(v)if lval:lv= ,.join(lval)print(:.format( lkey,lv)picdlkey = lvfi.close()idd = for key in picd:ids = picdkey.split(,)for num in ids:iddnum = idd.get(num,0)
29、 +1#print(num,iddnum)s= 0for key in idd:s+= int(iddkey)#print(:.format(key, iddkey)count = len(idd)print( 实际参加测试的人数是:,count)print( 人均被测次数是: :.1f.format(s/count)要点:1.这是一个实际问题,解决问题的方法有实际的推广意义。问题的关键是要完成数据提取,然后才是分析统计2.文件的读写,打开关闭是基础3.读入文件要进行字符串的处理,按行,分割成列表3.数据提取:先取得文件里的有效内容, 转换成列表,利用列表的切片,提取出照片编号和学号,放到字典 picd 里4.第二步数据分析,需要先从字典里把学号提取出来,为了便于统计每个学号被测的次数,再建一个字典 idd5. idd 字典的键是学号,所以字典的 len 就是参加测试的人数6.为了计算平均测试次数,需要累计每个学号被测的次数,最后除以参加测试人数就得到结果。