湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)_第1页
湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)_第2页
湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)_第3页
湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)_第4页
湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

湖北省十堰市全国计算机等级考试Python语言程序设计知识点汇总(含答案)学校:________班级:________姓名:________考号:________

一、单选题(30题)1.当在命令行中以pythonmy.pyv1v2形式运行python脚本时,通过fromsysimportargv如何获得v2的参数值?

A.argv[0]B.argv[1]C.argv[2]D.argv[3]

2.以下程序的输出结果是()。Is=[‘book’,666,[2018,‘python’,314],20]print(ls[2][1][-2])

A.nB.pythonC.oD.结果错误

3.文件family.txt在当前代码所在目录内,其内容是一段文本Wearefamily,以下程序的输出结果是()。txt=open(“family.txt”,“r”)print(txt)txt.close()

A.txtB.family.txtC.非其他答案D.Wearefamily

4.下面程序的输出结果是()。L1=[4,5,6,8]print(L1.reverse())

A.[8,6,5,4]B.[4,5,6,8]C.NoneD.[4,5,6,8,]

5.软件详细设计产生的图如下:

该图是()。

A.N-S图B.PADC.程序流程图D.E-R图

6.关于字典的描述,错误的是()。

A.字典的元素以键为索引进行访问

B.字典的一个键可以对应多个值

C.字典长度是可变的

D.字典是键值对的结合,键值对之间没有顺序

7.以下代码的输出结果是()。test={“age”:”18”,”score”:“[89,95]”,”name”:”Hawking”}print(test[“score”],test.get(“name”,“Rose”))A.89,95Hawking

B.[89,95]Hawking

C.[89,95]Rose

D.[89,95]name

8.对于循环队列,下列叙述中正确的是()。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

9.在进行CSV文件读写时,最不可能使用的字符串处理方法是()。

A.strip()B.join()C.index()D.split()

10.下面关于对象和类的关系描述错误的是()。

A.每个对象都是由其对应的类创建出来的

B.对象是类的实例化

C.如果直接使用类名修改其属性,不会影响到已经实例化的对象

D.类是具有相同属性和方法的对象的集合

11.下面的排序算法中初始数据集的排列顺序对算法的性能无影响的是()A.插入排序B.堆排序C.冒泡排序D.快速排序

12.下列叙述中正确的是()。

A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上3种说法都不对

13.算法的空间复杂度是指()。

A.算法在执行过程中所需要的计算机存储空间

B.算法所处理的数据量

C.算法程序中的语句或指令条数

D.算法在执行过程中所需要的临时工作单元数

14.下面说法错误的是()。

A.在UTF-8编码中一个汉字需要占用3个字节

B.在GBK和CP936编码中一个汉字需要占用2个字节

C.Python运算符“%”不仅可以用来求余数,还可以用来格式化字符串

D.Python字符串方法replace()对字符串进行原地修改

15.以下程序的输出结果是()。a=10b=1try:c=b//(b/a)print(c)except(IOError,ZeroDivisionError):print(“calculationerror”)else:print(“noerror”)A.calculationerrorB.noerrorC.10.0D.9.0

16.以下代码的输出结果是()。CLis=list(range(5))print(5inCLis)

A.TrueB.FalseC.0D.一1

17.下面代码的输出结果是()。a=0foriinrange(1,5):a+=iprint(a)

A.0B.10C.11D.15

18.以下关于Python全局变量和局部变量的描述中,错误的是()。

A.当函数退出时,局部变量依然存在,下次函数调用可以继续使用

B.全局变量一般指定义在函数之外的变量

C.使用global保留字声明后,变量可以作为全局变量使用

D.局部变量在函数内部创建和使用,函数退出后变量被释放

19.设栈与队列初始状态为空。首先A、B、C、D、E依次人栈,再F、G、H、I、J依次人队;然后依次出找至栈空,再依次出队至队空。则输出序列为()。

A.F,G,H,I,J,A,B,C,D,E

B.F,G,H,I,J,E,D,C,B,A

C.E,D,C,B,A,J,I,H,G,F

D.E,D,C,B,A,F,G,H,I,J

20.以下代码的输出结果是()。deffibRate(n):ifn<=0:Return-1elifn==1:return-1elifn==2:return1else:L=[1,5]foriinrange(2,n):L.append(L[-1]+L[-2])returnL[-2]%L[-1]print(fibRate(7))A.0.6B.28C.-1D.1

21.定义学生选修课程的关系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)该关系可进一步规范化为()。

A.S(S#,Sn,C#,Cn,Cr),SC(S#,C#,G)

B.S(S#,Sn),C(C#,Cn,Cr),SC(S#,C#,G)

C.C(C#,Cn,Cr),SG(S#,Sn,C#,G)

D.S(S#,Sn),C(C#,Cn),SC(S#,C#,Cr,G)

22.以下关于Python函数的描述中,正确的是()。

A.函数eval()可以用于数值表达式求值,例如eval(”2*3+1”)

B.Python中,def和return是函数必须使用的保留字

C.Python函数定义中没有对参数指定类型,这说明参数在函数中可以当作任意类型使用

D.一个函数中只允许有一条return语句

23.以下代码的输出结果是()。s=[4,2,9,1]s.insert(3,3)print(s)

A.[4,2,9,l,2,3]B.[4,3,2,9,l]C.[4,2,9,2,l]D.[4,2,9,3,l]

24.以下程序的输出结果是()。ls1=[1,2,3,4,5]ls2=ls1ls2.reverse()print(ls1)

A.5,4,3,2,1B.[1,2,3,4,5]C.[5,4,3,2,1]D.1,2,3,4,5

25.当用户输入2时,下面代码的输出结果是()。try:n=input(“请输入一个整数:”)defpow2(n):returnn**5pow2(n)except:print(”程序执行错误”)

A.32B.2C.程序没有任何输出D.程序执行错误

26.在Python3下输入100000000L,会得到()

A.100000000LB.100000000C.SyntaxError:invalidsyntaxD.1e8

27.下面哪一种定义是类的私有成员?()

A._xxB._xx_C._xxxD.xxx

28.以下变量名中,符合Python语言变量命名规则的是()。

A.33_keywordB.key@word33_C.nonlocalD._33keyword

29.采用表结构来表示数据及数据间联系的模型是()。

A.层次模型B.概念模型C.网状模型D.关系模型

30.下面关于Python的说法正确的是()。

A.Python不支持面向对象程序设计

B.Python中使用的所有函数库,都是采用Python编写的

C.Python中的内置函数需要用关键字import来导入,而不能直接使用

D.Python中若导入了某个模块,在后面的代码中就可以使用它的所有公共函数、类和属性

二、判断题(10题)31.函数是代码复用的一种方式。

A.是B.否

32.不可以在同一台计算机上安装多个Python版本。

A.是B.否

33.在Python3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的连接和集合的并集运算。

A.是B.否

34.不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。

A.是B.否

35.集合可以作为字典的键。

A.是B.否

36.表达式list('[1,2,3]')的值是[1,2,3]。

A.是B.否

37.同一个列表对象中所有元素必须为相同类型。A.是B.否

38.对于Python类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。

A.是B.否

39.当作为条件表达式时,[]与None等价。

A.是B.否

40.可以使用del删除集合中的部分元素。

A.是B.否

三、填空题(10题)41.已知x,y=3,5,那么执行x,y=y,x之后,x的值为__________。

42.表达式type(3.0)in(int,float,complex)的值为____________。

43.表达式isinstance('abc',str)的值为________________。

44.表达式chr(ord('a')-32)的值为___________。

45.表达式'{0:#d},{0:#x},{0:#o}'.format(65)的值为_____________。

46.表达式range(10)[-1]的值为____________。

47.已知x='123'和y='456',那么表达式x+y的值为______________。

48.已知x=[3,5,7],那么执行语句x[len(x):]=[1,2]之后,x的值为______________。

49.已知vec=[[1,2],[3,4]],则表达式[[row[i]forrowinvec]foriinrange(len(vec[0]))]的值为_________________________。

50.表达式(1,)+(2,)的值为_____________。

四、操作题(3题)51.考生文件夹下存在一个文件“PY102.py”,请写代码替换横线,不修改其他代码,实现以下功能。a和b是两个列表变量,列表a为[11,3,8]已给定,输入列表b,计算a中元素与b中对应元素乘积的累加和。例如:输入的列表b为[4,5,2],累加和为11*4+5*3+8*2=75,因此,屏幕输出的计算结果为75。试题程序:#请在程序的_____处使用一行代码或表达式替换#注意:请不要修改其他已给出代码a=[11,3,8]b=eval(input())#例如..[4,5,2]—(1)—foriin(2):s+=a[i]*b[i]print(s)

52.某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:

1820161043

郑珉镐68668377567361696678

1820161044

沈红伟91708l919680789l8994

从这些学生中选出奖学金候选人,条件是:①总成绩排名在前10名;②全部课程及格(成绩大于等于60)。

问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candidate0.txt,每行记录一个学生的信息,分别为学生学号、姓名以及10门课成绩。补充考生文件夹下文件PY301一1.py,完成这一功能。试题程序:

#请在…处使用多行代码替换

##注意:其他已给出代码仅作为提示,可以修改L=[]

#L中的元素是学生原始成绩和总成绩

…#此处可多行

L.sort(key=lambdax:x[一1],reverse=True)拌按学生总成绩从大到小排序

…#此处可多行

问题2:读取文件candidate0.txt,从中选出候选人,并将学号和姓名写入文件candidate.txt,格式如下:

1010112161722

张三

1010112161728

李四

补充考生文件夹下文件PY301—2.py,完成这一功能。

试题程序:'''输入文件:candidate0.txt输出文件:candidate.txt'''

53.考生文件夹下存在一个文件PY202.py,该文件是本题目的代码提示框架,其中代码可以任意修改,请在该文件中编写代码,以实现如下功能:

编写程序,实现将列表[51,33,54,56,67,88,431,111,141,72,45,2,78,12,15,5,69]中的素数去除,并输出去除素数后列表的元素个数,结果保存在考生文件夹下,命名为“PY202.txt”。。请结合程序整体框架,补充横线处代码。

试题程序:

#以下代码为提示框架

#请在程序的…处使用一行或多行代码替换

#请在程序的______处使用一行代码替换

#注意:提示框架代码可以任意修改,以完成程序功能为准

fo=open(”PY202.txt”,“w”)

defprime(num):

……#此处可以是多行代码

ls=[51,33,54,56,67,88,431,111,141,72,45,2,78,12,15,5,69]

lis=[]foriinls:

ifprime(i)==False:

________#处为一行代码fo.write(”>>>(),列表长度为{}".format(_______,_________)))fo.close()

参考答案

1.C

2.C列表索引从0开始,列表遵循正向递增索引和反向递减索引,故ls[2][1][-2]是字符o。本题选择C选项。

3.Copen()函数打开一个文件,并返回可以操作这个文件的变量txt,并且open()函数有两个参数:文件名和打开模式。本题只是打开了文件,并没有对文件进行操作,因此不会输出文件的内容。print(txt)语句输出的是变量txt代表的文件的相关信息:<_io.TextIOWrappername=‘family.txt’mode=‘r’encoding=‘cp936’>。若想要输出文件的内容,需要把文件的内容读入,如txt1=txt.read()。本题选择C选项。

4.Creverse()方法的作用是将整个列表中的元素反转,第一个元素放在最后一个元素位置上,最后一个元素放在第一个元素位置上,第二个元素放在倒数第二个元素位置上,倒数第二个元素放在第二个元素位置上,最终列表为[8,6,5,4],但此方法本身无返回值。本题选择C选项。

5.CN-S图提出了用方框图来代替传统的程序流程图,所以A选项不对。问题分析图(Prob-lemAnalysisDiagram,\nPAD)\n是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形,所以B选项不对。E-R图是数据库中的用于表示E-R模型的图示工具,所以D选项不对。根据图中所示的表示方法可知,是进行软件详细设计时使用的程序流程图。本题选择C选项。

6.B在Python中,字典是存储可变数量键值对的数据结构,通过字典类型实现映射,一个键对应一个值,键必须是唯一的,且必须是不可变数据类型,值可以是任何数据类型。字典具有和集合类似的性质,即键值对之间没有顺序且不能重复。字典可以通过”字典[’键’]”的形式访问对应的元素,即以键为索引进行访问。故描述错误的是B项。

7.Bscore键对应的值是列表类型[89,95],字典的get(key,default)方法在key键存在时返回对应值,否则返回默认值键存在于字典中,所以返回的是对应值而不是默认值。本题选择B选项。

8.D循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。本题选择D选项。

9.CCSV文件中以英文逗号分隔数据,形成一行。在进行CSV文件读写时,常用的字符串处理方法有strip()、join()、split()。strip()方法用于删除文件开头和结尾的给定字符序列,参数为空时,默认删除空白符(包括’\n’、’\r’、’\t’、'')。join()方法用于将数据以指定的字符(分隔符)连接成一个新的序列。split()方法用于将数据按某一个字符或字符串进行分割。index()方法用于检测字符串中是否包含指定子字符串,在进行CSV文件读写时,相较于前面三种方法,最不可能使用。

10.CA、B、D三项的论述都正确,符合类和对象的定义;C项当直接使用类名修改属性,会影响到已经实例化的对象,错误。

11.B

12.D栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。本题选择D选项。

13.A算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A项。

14.D字符串方法replace()用来替换字符串中指定字符或子字符串的所有重复出现,每次只能替换一个字符或一个字符串,把指定的字符串参数作为一个整体对待。该方法并不修改原字符串,而是返回一个新字符串。本题选择D选项。

15.D只有当程序未引发异常顺利执行完try中的代码后,else语句块内的代码才会执行。本题中,try中无异常,输出变量c的值,再执行else中的代码。本题选择D选项。

16.Brange()函数的语法:range(start,stop,step),作用是生成一个从start参数的值开始,到stop参数的值结束的数字序列(注意不包含数stop),step是步进参数。cLis=list(range(5)),生成一个列表,包含0,1,2,3,4。因为5不在CLis列表中,故返回False。

17.B定义一个变量a=0,for循环遍历[1,5)区问的数,计算该区间的累加和,最后将结果输出。

18.A根据程序中变量所在的位置和作用范围,变量分为局部变量和全局变量。局部变量指在函数内部定义的变量,仅在函数内部有效,且作用域也在函数内部,当函数退出时变量将不再存在。全局变量一般指在函数之外定义的变量,在程序执行全过程有效。全部变量在函数内部使用时,需要提前使用保留字global声明,语法形式:global<全局变量>。使用global对全局变量声明时,该变量要与外部全局变量同名。

19.D找称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。A、B、C、D、E依次入栈,则依次出栈顺序为E、D、C、B、A;F、G、H、I、J依次入队,则依次出队顺序为F、G、H、I、J。故输出序列为E,D,C,B,A,F,G,H,I,J。本题选择D选项。

20.B将实参7传递给函数形参变量n,之后进入多分支结构,依次判断后,执行else后面的语句。for语句为foriin\r\nrange(2,7),i从2依次变化到6,循环5次,将L[-1]+L[-2]的值通过append()方法加入列表L中。当i=2时,L[-1]+L[-2]=5+1=6,将6添加到列表[中,此时L=[1,5,6];当i=3时,L[-1]+L[-2]=6+5=11,将11添加到列表L中,此时L=[l,5,6,ll];当i=4时,L[-1]+L[-2]=11+6=17,将17添加到列表L中,此时L=[l,5,6,ll,17];当i=5时,L[-1]+L[-2]=17+11=28,将28添加到列表L中,此时L=\r\n[1,5,6,11,17,28];当i=6时,L[-1]+L[-2]=28+17=45,将45添加到列表L中,此时L=\r\n[1,5,6,11,17,28,45]。最后L[-2]%L[-1]=28%45=28,故程序输出28。本题选择B选项。

21.B关系SC的主键为复合键(学号,课程号),但明显存在课程号→课程名,课程号→学分等,存在非主属性对主属性的部分依赖。对关系SC进行如下的分解,就可以消除对非主属性的部分依赖,满足第二范式:S(S#,Sn),C(C#,Cn,Cr),SC(S#,C#,G)。本题选择\nB选项。

22.A在Python语言中,return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,可以同时将0个、1个或多个函数运算结果返回给函数被调用处的变量。函数可以没有return,此时函数并不返回值。B、D两项错误。Python函数定义中没有对参数指定类型,则函数内的默认参数是对函数的默认参数属性_defaults_的引用,C项错误。\neval()函数将去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容,使用方式:<变量>=eval(<字符串>),其中变量用来保存对字符串内容进行Python运算的结果,故函数eval()可以用于数值表达式求值,如eval(”2*3+1”)=7。

23.D在Python中,想要在列表中的任意位置插入元素,一般使用insert()方法。insert()方法有两个参数:第一个参数代表在列表中的位置,第二个参数是在这个位置处插入的元素。注意:插人时,是插入该位置之前。列表下标从0开始,S\n=[4,2,9,1],s[3]=1,则执行s.insert(3,3)后,S=[4,2,9,3,1],最后print(s),本题选择D选项。

24.C在Python中,列表对象的赋值就是简单的对象引用。本题中,ls1和ls2是一样的,他们指向同一片内存,ls2不过是ls1的别名,是引用。对l2做修改,11也会跟着变化。ls2.reverse()是指将列表ls2中的元素反转,结果为[5,4,3,2,1],则ls1的值也为[5,4,3,2,1]。

25.Dinput()函数从控制台获得用户的一行输入,无论用户输入什么内容,inPut()函数都以字符串类型返回结果。当用户输入2时,n=’2’,这是字符2,不是数字,不能进行数值运算,故程序会执行except后面的语句,输出程序执行错误。本题选择D选项。

26.C

27.C在Python中,类的定义中以一个下划线开头是成员的保护成员,以两个下划线开头和结束的成员是系统定义的特殊成员,以两个或多个下划线开头但不以两个或多个下划线结束的成员是私有成员,所以选C。

28.DPython采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。变量名不能与保留字相同。

29.D关系模型采用二维表来表示,简称表。本题选择D选项。

30.DA选项,Python是支持面向对象程序设计的;B选项,并不是所有的函数库都是采用Python编写的,很多采用C、C++、Java等语言编写的专业库可以经过简单的接口封装供Python程序调用;C选项,Python中的内置函数可以直接使用而不需要用import来导入。本题选择D选项。

31.Y

32.N

33.N

34.Y

35.N

36.N

37.N

38.Y

39.Y

40.N

41.5

42.True

43.True

44.'A'

45.'65,0x41,0o101'

46.9

47.'123456'

48.[3,5,7,1,2]

49.[[1,3],[2,4]]

50.(1,2)

51.a=[11,3,8]b=eval(input())S=0foriinrange(3):s+=a[i]*b[i]print(s)本题用变量S收集两个列表中对应元素乘积的和,因此要先定义变量S,第1空应填入s=0。两个列表中对应元素乘积可表示为a[i]*b[i],再求和S\r\n+=a[i]*b[i];由于列表中只有3个元素,索引从0开始,所以for循环遍历中i的取值依次为0、1、2,因此第2空应填入range(3)。

52.(1)L=[]\r\n

fo=open("score.txt","r")\r\n

fi=open("candidate0.txt","w")\r\n

lines=fo.readlines()\r\n

forlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

sum=0\r\n

foriinrange(1,11):\r\n

sum+=int(student[-i])\r\n

studene.append(str(sum))\r\n

L.append(student):\r\n

L.sort(key=lambda.x:x[一1],reverse=True)\r\nforiinrange(10):\r\nfi.write('',join(L[i][:-1])+'\\n')\r\nfo.close()\r\nfi.close()(2)'''\r\n输入文件:candidate0.txt\r\n输出文件:candidate.txt\r\n'''\r\nfo=open("candidate0.txt","r")\r\nfi=open("candlidate.txt","w")\r\nL=[]#存储候选人\r\nlines=fo.readlines()\r\nforlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

foriinstudent[-10:]:\r\n

ifint(i)<60:\r\n

break\r\n

else:\r\n

I:append(student[:2])\r\nforiinL:\r\n

fi.write(''.join(i)+'\\n')\r\nfo.close()\r\nfi.close()(1)本题涉及”score.txt”和”candidate0.txt”两个文件。首先要读取”score.txt”文件中的信息,通过程序求出每个学生的总成绩,然后按总成绩从大到小排序,将总成绩排名前10的学生的学号、姓名以及10门课成绩写入到”candidate0.txt”文件中。打开文件用open()函数,用”r”只读模式打开文件”score.txt”,用”w”模式创建文件”cand:idate0.txt”。\r\n

”score.txt”文件中每行为一个学生的信息,需要用readlines()函数读入所有行,以每行为元素形成列表lines,然后用for循环遍历该列表中的每个元素。在遍历每个元素时,用strip()方法删除元素首尾出现的空格,用split()方法以空格分隔学生的学号、姓名以及10门课成绩得到列表student。由于要求出总成绩,因此要使用for遍历每个学生的10门课成绩,将其累加赋值给sum,并将sum追加到student中。最后将student中所有元素追加到列表L中。\r\n

随后,对列表L中的元素进行排序,用到sort()方法,参数”key=lambdax:x[一1]”中lambda是一个隐函数,是固定写法,不能写成别的

温馨提示

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

评论

0/150

提交评论