全国计算机等级考试二级Python真题及解析12.docx
《全国计算机等级考试二级Python真题及解析12.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Python真题及解析12.docx(24页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级Python真题及解析12
全国计算机等级考试二级Python真题及解析(12)
一、选择题
1.以下关于程序设计语言的描述,错误的选项是:
APython语言是一种脚本编程语言
B汇编语言是直接操作计算机硬件的编程语言
C程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段
D编译和解释的区别是一次性翻译程序还是每次执行时都要翻译程序正确答案:
C
2.表达式1001==0x3e7的结果是:
Afalse
BFalse
Ctrue
DTrue正确答案:
B
3.以下选项,不是Python保留字的选项是:
Adel
Bpass
Cnot
Dstring正确答案:
D
4.表达式eval('500/10')的结果是:
A‘500/10'
B500/10
C50
D50.0正确答案:
D
5.15.表达式type(eval('45'))的结果是:
A
B
CNone
D正确答案:
D
6.表达式divmod(20,3)的结果是:
A6,2
B6
C2
D(6,2)正确答案:
D
7.以下关于字符串类型的操作的描述,错误的是:
Astr.replace(x,y)方法把字符串str中所有的x子串都替换成y
B想把一个字符串str所有的字符都大写,用str.upper()
C想获取字符串str的长度,用字符串处理函数str.len()
D设x='aa,'则执行x*3的结果是‘aaaaaa'正确答案:
C
8.设str='python',想把字符串的第一个字母大写,其他字母还是小写,正确的选项是:
Aprint(str[0].upper()+str[1:
])
Bprint(str[1].upper()+str[-1:
1])
Cprint(str[0].upper()+str[1:
-1])
Dprint(str[1].upper()+str[2:
])
正确答案:
A
9.以下选项,不属于程序流程图基本元素的是:
A循环框
B连接点
C判断框
D起始框正确答案:
A
10.以下关于循环结构的描述,错误的是:
文件
A遍历循环使用for<循环变量>in<循环结构>语句,其中循环结构不能是
B使用range()函数可以指定for循环的次数
Cforiinrange(5)表示循环5次,i的值是从0到4
D用字符串做循环结构的时候,循环的次数是字符串的长度正确答案:
A
11.执行以下程序,输入”93python22,”输出结果是:
w=input(请‘输入数字和字母构成的字符串:
')forxinw:
if'0'<=x<='9':
continue
else:
w.replace(x,'')
print(w)
Apython9322
Bpython
C93python22
D9322正确答案:
C
12.执行以下程序,输入la,输出结果是:
la='python'
try:
s=eval(input('请输入整数:
'))
ls=s*2
print(ls)
except:
print('请输入整数')
Ala
B请输入整数
Cpythonpython
Dpython正确答案:
C
13.执行以下程序,输入qp,输出结果是:
k=0
whileTrue:
s=input('请输入q退出:
')
ifs=='q':
k+=1continue
else:
k+=2
break
print(k)
A2
B请输入q退出:
C3
D1
正确答案:
A
14.以下程序的输出结果是:
s=0
deffun(num):
try:
s+=numreturns
except:
return0
return5
print(fun
(2))
A0
B2
CUnboundLocalError
D5正确答案:
A
15.以下关于函数的描述,错误的是:
A函数是一种功能抽象
B使用函数的目的只是为了增加代码复用
C函数名可以是任何有效的Python标识符
D使用函数后,代码的维护难度降低了正确答案:
B
16.以下程序的输出结果是:
deftest(b=2,a=4):
globalz
z+=a*b
returnz
z=10
print(z,test())
A18None
B1018
CUnboundLocalError
D1818
正确答案:
B
17.以下程序的输出结果是:
defhub(ss,x=2.0,y=4.0):
ss+=x*yss=10print(ss,hub(ss,3))A22.0None
B10None
C22None
D10.022.0正确答案:
B
18.以下表达式,正确定义了一个集合数据对象的是:
Ax={200,
Bx=(200,
Cx=[200,
Dx={‘flg'正确答案:
A
flg',20.3}
flg',20.3)
flg',20.3]:
20.3}
19.以下程序的输出结果是:
ss=list(set("jzzszyj"))ss.sort()print(ss)A['z','j','s','y']B['j','s','y','z']C['j','z','z','s','z','y','j']D['j','j','s','y','z','z','z']正确答案:
B
20.以下程序的输出结果是:
ss=set("htslbht")sorted(ss)foriinss:
print(i,end='')
AhtslbhtBhlbsttsblh
D
hhlstt
正确答案:
B
21.已知id(ls1)=4404896968,以下程序的输出结果是:
ls1=[1,2,3,4,5]
ls2=ls1
ls3=ls1.copy()
print(id(ls2),id(ls3))
A44048969684404896904
B44048969044404896968
C44048969684404896968
D44048969044404896904正确答案:
A
22.以下程序的输出结果是:
ls=list({'shandong':
200,'hebei':
300,'beijing':
400})print(ls)
A['300','200','400']
B['shandong','hebei','beijing']
C[300,200,400]
D'shandong','hebei','beijing'
正确答案:
B
23.以下关于文件的描述,错误的是:
A二进制文件和文本文件的操作步骤都是“打开-操作-关闭”
Bopen()打开文件之后,文件的内容并没有在内存中
Copen()只能打开一个已经存在的文件
D文件读写之后,要调用close()才能确保文件被保存在磁盘中了正确答案:
C
24.以下程序输出到文件text.csv里的结果是:
fo=open("text.csv",'w')x=[90,87,93]z=[]foryinx:
z.append(str(y))fo.write(",".join(z))fo.close()A[90,87,93]B90,87,93C‘[90,87,93]'D‘90,87,93'正确答案:
B
25.以下程序的输出结果是:
img1=[12,34,56,78]img2=[1,2,3,4,5]
defdispl():
print(img1)
defmodi():
img1=img2
modi()
displ()
A([1,2,3,4,5])
B[12,34,56,78]
C([12,34,56,78])
D[1,2,3,4,5]
正确答案:
B
26.以下关于数据维度的描述,错误的是:
A采用列表表示一维数据,不同数据类型的元素是可以的
BJSON格式可以表示比二维数据还复杂的高维数据
C二维数据可以看成是一维数据的组合形式
D字典不可以表示二维以上的高维数据正确答案:
D
27.以下不属于Python的pip工具命令的选项是:
Ashow
Binstall
Cdownload
Dget
正确答案:
D
28.用Pyinstall工具把Python源文件打包成一个独立的可执行文件,使用的参数是:
A-D
B-L
C-i
D-F正确答案:
D
29.以下不是程序输出结果的选项是:
importrandomasr
ls1=[12,34,56,78]
r.shuffle(ls1)
print(ls1)
A[12,78,56,34]
B[56,12,78,34]
C[12,34,56,78]
D[12,78,34,56]
正确答案:
C
30.以下关于turtle库的描述,正确的是:
A在importturtle之后就可以用circle()语句,来画一个圆圈
B要用fromturtleimportturtle来导入所有的库函数
Chome()函数设置当前画笔位置到原点,朝向东
Dseth(x)是setheading(x)函数的别名,让画笔向前移动x正确答案:
C
31.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。
而实现递归调用中的存储分配通常用
A栈
B堆
C链表
D数组正确答案:
A
32.下列叙述中正确的是
A一个算法的空间复杂度大,则其时间复杂度必定小
B一个算法的空间复杂度大,则其时间复杂度也必定大
C算法的时间复杂度与空间复杂度没有直接关系
D一个算法的时间复杂度大,则其空间复杂度必定小正确答案:
C
33.为了提高测试的效率,应该
A随机选取测试数据
B在完成编码以后制定软件的测试计划
C取一切可能的输入数据作为测试数据
D集中对付那些错误群集的程序正确答案:
D
34.软件开发离不开系统环境资源的支持,其中必要的测试数据属于
A辅助资源
B硬件资源
C通信资源
D支持软件正确答案:
A
35.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是
A错误推测法
B白箱测试法
C黑箱测试法
D安装测试法正确答案:
C
36.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A特定的数据模型
B数据无冗余
C专门的数据管理软件
D数据可共享正确答案:
A
37.下列有关数据库的描述,正确的是
A数据库是一个关系
B数据库是一个DBF文件
C数据库是一个结构化的数据集合
D数据库是一组文件正确答案:
C
38.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和
A可重用性差
B冗余性
C非持久性
D安全性差正
确答案:
B
39.软件开发的结构化生命周期方法将软件生命周期划分成
A定义、开发、运行维护
B设计阶段、编程阶段、测试阶段
C总体设计、详细设计、编程调试
D需求分析、功能定义、系统设计
正确答案:
A
40.下列不属于结构化分析的常用工具的是
A判定树
B数据字典
C数据流图
DPAD图
正确答案:
C
二、操作题
101
描述
参照代码模板完善代码,实现下述功能。
从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信
示例1:
输入:
请输入1个整数和1个符号,逗号隔开:
10,@
输出:
@@@@@@@@@@10@@@@@@@@@@
示例2:
请输入1个整数和1个符号,逗号隔开:
8,#
输入输出示例
输入
输出
示例1
10,@
@@@@@@@@@@10@@@@@@@@@@
习题讲解
答案:
#在处填写一行代码
ls=input().split(',')
(1)print(ls[0].center(eval(ls[0])*2+len(ls[0]),ls[1]))
(2)
讲解:
1.理解input的结果是返回一个字符串
2.split是字符串的方法,能够以逗号把字符串分割成列表,但列表的元素都是字符串
3.用ls[0]和ls[1]分别取得输入的数字和后面的符号
4.题目要求用一行表达式来解决这个问题,所以增加了难度
5.此时要想起来用字符串的操作方法center,问题就迎刃而解了,这个方法str.center(x,y)会用字符串str构造一个新的字符串,新的字符串长度是x,两边填充y。
此处的x是数字,y是字符
6.要记得ls[0]里的10是一个字符串,所以要记得用eval把它变成数字,乘2,加上10自己的长度,就得到了所需的x;y就是ls[1]里的字符
7.这道题关键是深入理解,并灵活运用center
102描述
参照代码模板完善代码,实现下述功能。
输入一个正整数n,自动生成n个1-100范围内的随机浮点数,计算输出每
个随机数,并显示平均值。
输入格式输入一个正整数n
输出格式
输出n个1-100范围内的随机浮点数,并显示平均值
输入输出示例
输入
输出
示例1
4
27.337682138808397
25.469857251321084
86.76520259704735
3.6817383527287464
theaverageis:
35.81362008497639
习题讲解答案:
importrandomrandom.seed()n=eval(input())sum=0foriinrange(n):
random.uniform(1,100)sum+=f1print(f1)print(‘theaverageis:
',sum/n)讲解:
1.要使用random随机库,所以要importrandom
2.题目限制了程序框架,所以主要考核uniform(),题目并不难
3.要能读懂程序,最后就知道求平均数,是用sum/n103
描述参照代码模板完善代码,实现下述功能。
输入一个字符串,检查并统计字符串中包含的英文单引号的对数。
如果没有找到单引号,就在屏幕上显示“没有单引号”;每统计到2个单引号,就算一对,如果找到2对单引号,就显示“找到了2对单引号”;如果找到3个单引号,就显示“有1对配对单引号,存在没有配对的单引号”。
示例如下:
输入:
dfd'dfa'fd'
输出:
有1对配对单引号,存在没有配对的单引
号输入格式输入一个字符串
输出格式检查并统计字符串中包含的英文单引号的对数。
如果没有找到单引号,就在屏幕上显示“没有单引号”;每统计到2个单引号,就算一对,如果找到2对单引号,就显示“找到了2对单引号”;如果找到3个单引号,就显示“有1对配对单引号,存在没有配对的单引号”。
输入输出示例
输入
输出
示例1
dfd'dfa'fd'
有1对配对单引号,存在没有配对的单引号
习题讲解
答案:
st=input()
pair=0
count=0forsinst:
ifs=="'":
pair+=1
ifpair%2==0:
count+=1ifpair==0:
pro=
"没有单引号"elifpair%2==0:
pro=
"有{}对单引号".format(count)else:
pro=
"有{}对配对单引号,存在没有配对的单引号
".format(count)print(pro)
讲解:
多分支结构,分支语句的嵌套
利用对2求模运算,来判断单引号是否配对
利用pro变量来记录不同情况下的输出内容,最后只用一个print来输出显示
利用字符串的format操作,把合成要输出的变量和提示字符串
201
描述参照代码模板完善代码,实现下述功能,不得修改其它代码。
使用turtle库的turtle.fd()函数和turtle.seth()函数绘制嵌套六角形,六角形边长从1像素开始,第一条边从0度方向开始,边长按照3个像素递增,效果如下图所示。
输出格式
print('ok')即可得分
本题暂不支持自动评阅,检查绘制图形无误后,
习题讲解
答案:
#在处填写一行代码
#不允许修改其他代码
importturtle
edge=6
d=0
k=1
forjinrange(10):
foriinrange(edge):
turtle.fd(k
(1))
d+=360/edge或60
(2)
turtle.seth(d)
k+=3(3)
turtle.done()
讲解:
1.
60也可以
二重循环,第一道循环控制画的圈数,内循环控制六边形的边数
2.六边形,所以每次画笔旋转的角度是360/edge,或者直接写
3.k用来控制不断增加的边长,根据题目给的增量是3
202
描述
参照代码模板完善代码,实现下述功能。
实现下面的功能:
有一个文件data.txt内容如下:
{'sid':
'501','7月':
9000,'8月':
9500,'9月':
9200}
{'sid':
'502','7月':
8000,'8月':
8500,'9月':
8200}
{'sid':
'503','7月':
7000,'8月':
7500,'9月':
7200}将文件的数据内容提取出来,计算每个人的平均工资,将其转化为字典salary,按照key的递增序在屏幕上显示输出score的内容,内容示例如下:
501:
[9500,9000,9200,9233]
502:
[8500,8000,8200,8233]
503:
[7500,7000,7200,7233]
输入格式
有一个文件data.txt内容如下:
{'sid':
'501','7月':
9000,'8月':
9500,'9月':
9200}
{'sid':
'502','7月':
8000,'8月':
8500,'9月':
8200}
{'sid':
'503','7月':
7000,'8月':
7500,'9月':
7200}
输出格式
按照key的递增序在屏幕上显示输出score的内容,内容示例如下:
501:
[9500,9000,9200,9233]
502:
[8500,8000,8200,8233]
503:
[7500,7000,7200,7233]
输入输出示例
输入
输出
示例1
读文件data.txt
501:
[9500,9000,9200,9233]502:
[8500,8000,8200,8233]503:
[7500,7000,7200,7233]
附件
序号
名称程序内使用说明
1data.txt习题讲解salarys={}
fi=open("data.txt",'r',encoding='utf-8')forlinfi:
#print(l)
stud=eval(l)
sv=stud.items()
v=[]
k=''
foritinsv:
ifit[0]=='sid':
k=it[1]else:
v.append(it[1])
else:
v.append(sum(v)//len(v))salarys[k]=vfi.close()
#print(scores)
so=list(salarys.items())
so.sort(key=lambdax:
x[0],reverse=False)forlinso:
print('{}:
{}'.format(l[0],l[1]))
讲解:
1.有读文件,写入字典,取出到列表,排序,显示输出
2.先从文件中按行读取数据,通过eval()变换成字典,然后通过items()获取每个字典的键值对构成的列表
3.每个字典项的键值对有四个元组,对四个元组做遍历循环,构造所需要的新字典salarys
4.新字典的键是it[0]为‘sid对'应的it[1];而值则是其他it[0]对应的it[1],要将这些it[1]通过append()拼成一个新的列表v,
5.一组字典项处理完成之后,要用对v的求和函数和求长度函数返回的值,计算平均分,并且也append到v列表里
6.最后把k和v加到salarys里,生成新的字典
7.对新的字典提取items构成列表,对列表按照键sid的升序排序,并输出显示。
301描述参照代码模板完善代码,实现下述功能,可以修改其它代码。
附件文件question.txt中有若干道Python选择题目,第1行的第1个数据为题号,后续的4行是4个选项,接下来是第二道题。
示例内容如下:
1.以下关于字典类型的描述,错误的是:
A.字典类型中的数据可以进行分片和合并操作
B.字典类型是一种无序的对象集合,通过键来存取
C.字典类型可以在原来的变量上增加或缩短
D.字典类型可以包含列表和其他数据类型,支持嵌套的字典
24.以下属于Python图像处理第三方库的是:
A.PILB.mayaviC.TVTKD.pygame读取其中的内容,提取题干和四个选项的内容,利用jieba分词并统计出现频率最高的3个词,其中要删除以下的常用字和符号
的,:
:
可以是和中或一个以下“”了其时产生DBC(第一个字符是空格)作为该题目的主题标签,显示输出在屏幕上