全国计算机等级考试二级Python真题及解析12.docx

上传人:b****6 文档编号:4579086 上传时间:2022-12-06 格式:DOCX 页数:27 大小:26.13KB
下载 相关 举报
全国计算机等级考试二级Python真题及解析12.docx_第1页
第1页 / 共27页
全国计算机等级考试二级Python真题及解析12.docx_第2页
第2页 / 共27页
全国计算机等级考试二级Python真题及解析12.docx_第3页
第3页 / 共27页
全国计算机等级考试二级Python真题及解析12.docx_第4页
第4页 / 共27页
全国计算机等级考试二级Python真题及解析12.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级Python真题及解析12.docx

《全国计算机等级考试二级Python真题及解析12.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Python真题及解析12.docx(27页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级Python真题及解析12.docx

全国计算机等级考试二级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

 

1

 

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连接点

 

2

 

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)

 

3

 

except:

print('请输入整数')

Ala

B请输入整数

Cpythonpython

Dpython

正确答案:

C

 

13.执行以下程序,输入qp,输出结果是:

k=0

whileTrue:

s=input('请输入q退出:

')

ifs=='q':

k+=1

continue

else:

k+=2

break

print(k)

A2

B请输入q退出:

C3

D1

正确答案:

A

 

14.以下程序的输出结果是:

s=0

deffun(num):

try:

s+=num

returns

except:

return0

 

4

 

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=10

 

5

 

print(ss,hub(ss,3))

A22.0None

B10None

C22None

D10.022.0

正确答案:

B

 

18.以下表达式,正确定义了一个集合数据对象的是:

Ax={200,

’flg’,20.3}

Bx=(200,

’flg’,20.3)

Cx=[200,

’flg’,20.3]

Dx={‘flg’:

20.3}

正确答案:

A

 

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='')

Ahtslbht

Bhlbst

6

 

C

tsblh

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

D4*******044404896904

正确答案:

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

 

7

 

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,93

C‘[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格式可以表示比二维数据还复杂的高维数据

 

8

 

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()语句,来画一个圆圈

 

9

 

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硬件资源

 

10

 

C通信资源

D支持软件正确答案:

A

 

35.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是

A错误推测法

B白箱测试法

C黑箱测试法

D安装测试法正确答案:

C

 

36.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有

A特定的数据模型

B数据无冗余

C专门的数据管理软件

D数据可共享正确答案:

A

 

37.下列有关数据库的描述,正确的是

A数据库是一个关系

B数据库是一个DBF文件

C数据库是一个结构化的数据集合

D数据库是一组文件正确答案:

C

 

38.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性

A可重用性差

 

11

 

B冗余性

C非持久性

D安全性差正确答案:

B

 

39.软件开发的结构化生命周期方法将软件生命周期划分成

A定义、开发、运行维护

B设计阶段、编程阶段、测试阶段

C总体设计、详细设计、编程调试

D需求分析、功能定义、系统设计正确答案:

A

 

40.下列不属于结构化分析的常用工具的是

A判定树

B数据字典

C数据流图

DPAD图

正确答案:

C

 

二、操作题

101

描述

参照代码模板完善代码,实现下述功能。

从键盘输入一个整数和一个字符,以逗号隔开,在屏幕上显示输出一条信

息。

示例1:

输入:

请输入1个整数和1个符号,逗号隔开:

10,@

输出:

@@@@@@@@@@10@@@@@@@@@@

 

12

 

示例2:

请输入1个整数和1个符号,逗号隔开:

8,#

########8########

 

输入输出示例

 

输入输出

 

示例110,@@@@@@@@@@

@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

描述

 

13

 

参照代码模板完善代码,实现下述功能。

输入一个正整数n,自动生成n个1-100范围内的随机浮点数,计算输出每个随机数,并显示平均值。

 

输入格式

输入一个正整数n

 

输出格式

输出n个1-100范围内的随机浮点数,并显示平均值

 

输入输出示例

输入

输出

示例1

4

27.337682138808397

25.469857251321084

86.76520259704735

3.6817383527287464

theaverageis:

35.81362008497639

 

习题讲解

答案:

importrandom

random.seed()

n=eval(input())

sum=0

foriinrange(n):

random.uniform(1,100)

sum+=f1

print(f1)

print(‘theaverageis:

’,sum/n)

讲解:

1.要使用random随机库,所以要importrandom

 

14

 

2.题目限制了程序框架,所以主要考核uniform(),题目并不难

3.要能读懂程序,最后就知道求平均数,是用sum/n

103

描述

参照代码模板完善代码,实现下述功能。

输入一个字符串,检查并统计字符串中包含的英文单引号的对数。

如果没

有找到单引号,就在屏幕上显示“没有单引号”;每统计到2个单引号,就算一对,如果找到2对单引号,就显示“找到了2对单引号”;如果找到3个单引号,就显示“有1对配对单引号,存在没有配对的单引号”。

示例如下:

输入:

dfd'dfa'fd'

输出:

有1对配对单引号,存在没有配对的单引号输入格式

输入一个字符串

 

输出格式

检查并统计字符串中包含的英文单引号的对数。

如果没有找到单引号,就

在屏幕上显示“没有单引号”;每统计到2个单引号,就算一对,如果找到2对单引号,就显示“找到了2对单引号”;如果找到3个单引号,就显示“有1对配对单引号,存在没有配对的单引号”。

 

输入输出示例

 

输入输出

 

示例1dfd'dfa'fd'有1对配对单引号,存在没有

配对的单引号

 

习题讲解

答案:

 

15

 

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个像素递增,效果如下图所示。

 

输出格式

 

16

 

本题暂不支持自动评阅,检查绘制图形无误后,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.二重循环,第一道循环控制画的圈数,内循环控制六边形的边数

2.六边形,所以每次画笔旋转的角度是360/edge,或者直接写60也可以

3.k用来控制不断增加的边长,根据题目给的增量是3

 

17

 

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.txt501:

[9500,9000,9200,9233]

502:

[8500,8000,8200,8233]

503:

[7500,7000,7200,7233]

 

18

 

附件

序号

名称程序内使用说明

1

data.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]=v

fi.close()

 

#print(scores)

so=list(salarys.items())

so.sort(key=lambdax:

x[0],reverse=False)forlinso:

print('{}:

{}'.format(l[0],l[1]))

讲解:

 

19

 

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

描述

参照代码模板完善

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1