山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)_第1页
山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)_第2页
山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)_第3页
山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)_第4页
山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

山东省菏泽市全国计算机等级考试Python语言程序设计专项练习(含答案)学校:________班级:________姓名:________考号:________

一、单选题(30题)1.表格类型数据的组织维度最可能是()。

A.多维数据B.一维数据C.二维数据D.高维数据

2.下面关于Python中的变量描述错误的是()。

A.全局变量和局部变量两者的本质区别就是在于作用域

B.全局变量在函数内部和函数外部都可以访问使用

C.局部变量也可以在函数外部使用

D.在函数内部要对全局变量进行修改,需要加上global声明

3.若I,j均为整形数值对象,以下哪个语句计算i被j除后的余数()

A.imodjB.i/jC.i%jD.i//j

4.关于以下代码的描述中,正确的是()。deffact(n):s=1foriinrange(1,n+1):s*=ireturns

A.代码中n是可选参数

B.fact(n)函数功能为求n的阶乘

C.s是全局变量

D.range()函数的范围是[1,n+1]

5.s和T是两个集合,对S&T。的描述正确的是()。

A.S和T的交运算,包括同时在集合S和T中的元素

B.S和T的并运算,包括在集合S和T中的所有元素

C.S和T的差运算,包括在集合S但不在T中的元素

D.S和T的补运算,包括几个S和T中的非相同元素

6.以下关于Python二维数据的描述中,错误的是()。

A.表格数据属于二维数据,由整数索引的数据构成

B.二维数据由多条一维数据构成,可以看作一维数据的组合形式

C.一种通用的二维数据存储文件是CSV文件

D.CSV文件的每行表示一个一维数据,用英文逗号分隔

7.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

8.请问以下代码执行的结果是()whileTrue:i=0print(i)ifi==7:breakA.死循环,一直输出0B.输出到6后,结束循环C.输出到7后,结束循环D.输出到8后,结束循环

9.在Python中,读入CSV文件保存的二维数据,按特定分隔符抽取信息,最可能用到的函数是()。

A.read()B.join()C.replace()D.split()

10.Python使用缩进作为语法边界,一般建议怎样缩进?

A.TABB.两个空格C.四个空格D.八个空格

11.以下不是Python所使用特殊含义符号的是()。

A.$B.**C.&D.+=

12.以下不属于Python开发用户界面第三方库的是()。

A.PyGObjectB.PyQtC.timeD.PyGTK

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

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

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

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

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

14.有两个关系R、S如下:

由关系R通过运算得到关系S,则所使用的运算为()。

A.选择B.投影C.插入D.连接

15.下列哪个语句在Python中是非法的?()

A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD.x+=y

16.某完全二叉树有256个节点,则该二叉树的深度为()。

A.7B.8C.9D.10

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

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

18.以下程序的输出结果是()。11=[’aa’,[2,3,3.0]]print(11.index(2))

A.2B.3.0C.3D.ValueError

19.表达式divmod(40,3)的结果是()。

A.13,1B.(13,1)C.13D.1

20.下列选项中不属于结构化程序设计原则的是()。

A.可封装B.自顶向下C.模块化D.逐步求精

21.以下关于组合类型的描述,正确的是()。

A.空字典可以用大括号来创建

B.可以用set创建集合,用中括号和赋值语句增加新元素

C.字典数据类型里可以用列表做键

D.字典的items()函数返回一个键值对,并用元组表述

22.对以下代码的输出描述正确的是()。lis=list(range(6))print(lis)

A.[0,1,2,3,4,5]

B.[0,1,2,3,4,5,6]

C.0,1,2,3,4,5

D.0,1,2,3,4,5,6

23.Python中匿名函数的关键字是()。

A.lambdaB.globalC.withD.I)ass

24.下面代码的输出结果是()。foriinreversed(range(7,4,-1)):print(i,end=””)

A.7654B.765C.567D.4567

25.以下选项中不是Python文件目录操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

26.以下关于分支结构的描述中,错误的是()。

A.if语句中语句块执行与否依赖于条件判断

B.if语句中条件部分可以使用任何能够产生True和False的语句和函数

C.二分支结构有一种紧凑形式,使用保留字if和else实现

D.多分支结构用于设置多个判断条件及其对应的多条执行路径

27.关于以下程序的描述中,正确的是()。deffact(n): s=1 foriinrange(1,n+1): s*=i returns

A.代码中n是可选参数

B.fact(n)函数功能为求n的阶乘

C.s是全局变量

D.range()函数的范围是[1,n+1]

28.以下关于turtle库的描述,错误的是()。

A.在importturtle之后,可以用turtle.circle()语句画一个圆圈

B.seth(x)是setheading(x)函数的别名,其作用是让画笔旋转x角度

C.可以用importturtle来导入turtle库函数

D.home()函数用于设置当前画笔位置为原点,方向朝上

29.下列算法中,最坏情况下时间复杂度最低的是()。

A.堆排序B.寻找最大项C.顺序查找D.有序表的对分查找

30.以下属于Python网络爬虫框架领域的第三方库的是()。

A.pandasB.grabC.xpinyinD.SnowNLP

二、判断题(10题)31.Python字典支持双向索引。

A.是B.否

32.在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法。

A.是B.否

33.Python3.x支持使用中文作为变量名。

A.是B.否

34.x=9999**9999这样的语句在Python中无法运行,因为数字太大了超出了整型变量的表示范围。

A.是B.否

35.只可以动态为对象增加数据成员,而不能为对象动态增加成员方法。

A.是B.否

36.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。A.是B.否

37.lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式。

A.是B.否

38.只能通过切片访问列表中的元素,不能使用切片修改列表中的元素。

A.是B.否

39.放在一对三引号之间的任何内容将被认为是注释。

A.是B.否

40.在Python中可以为自定义类的对象动态增加新成员。

A.是B.否

三、填空题(10题)41.已知x={1:1,2:2},那么执行语句x[2]=4之后,len(x)的值为____________。

42.表达式isinstance('4',(int,float,complex))的值为_____________。

43.执行语句x,y,z=map(str,range(3))之后,变量y的值为___________。

44.已知函数定义deffunc(*p):returnsum(p),那么表达式func(1,2,3)的值为______。

45.表达式'Helloworld!'[-4]的值为________________。

46.表达式type('3')in(int,float,complex)的值为__________。

47.表达式-13//4的值为__________。

48.在Python中关键字__________表示空类型。

49.转义字符’\n’的含义是___________________。

50.语句print(re.match('abc','defg'))输出结果为_____________。

四、操作题(3题)51.考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:列表中有四个元素,将其倒序输出。试题程序:

#请在______处使用一行代码或表达式替换

#注意:请不要修改其他已给出代码

animals=[’cow’,’duck’,’cat’,’dog’]

print(______)

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.考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:

键盘输入正整数n,按要求把n输出到屏幕,格式要求:宽度为25个字符,等号字符(=)填充,右对齐,带千位分隔符。如果输入正整数超过25位,则按照真实长度输出。

例如:键盘输入正整数n为1234,屏幕输出===================1,234

试题程序:

#请完善如下代码

s=input()

print(”{________(1)_________}”.format(________(2)_________))

参考答案

1.C一维数据由对等关系的有序或无序数据构成,采用线性方式组织;二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织;高维数据由键值对类型的数据构成,采用对象方式组织。故答案为C项。

2.C局部变量是指在函数内部使用的变量,仅在函数内部有效,当函数使用过后,变量从内存中释放,所以C选项错误。

3.C

4.B函数定义时的语法如下:\ndef<函数名>(<非可选参数列表>,<可选参数>=<默认值>):\n<函数体>\nreturn<返回值列表>\n可选参数一般都放置在非可选参数的后面。本题代码中,n为非可选参数,fact(n)函数的功能为求n的阶乘。s在函数内部定义,为局部变量。根据range函数的定义,range(1,n+1)的范围是[1,n],不包含n+1。

5.AS&T返回一个新集合,包括同时在集合S和T中的元素。

6.A二维数据也称表格数据,由关联关系数据构成,A选项错误。二维数据由多个一维数据构成,可以看作一维数据的组合形式,B选项正确。CSV文件是二维数据的存储文件,C选项正确。CSV文件的每行是一维数据,用逗号分隔,D选项正确。本题选择A选项。

7.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

8.A

9.D在Python中,读取CSV文件中的二维码数据采用遍历循环和字符串的split()方法相结合,方法如下:f=open('cpi.csv”,”r”)ls=[]forlineinf:Is.append(line,strip(“\\n').split(“,”))f.close()本题选择D选项。

10.C

11.A在Python中,有特殊含义的符号:+、-、*、/、%、**、//、==、!=、<>、>、<、>=、<=、=、+=、-=、*=、/=、%=、**=、//=、&、|、^、~、<<、>>、&=、|=、^=、~=。本题选择A选项。

12.CPyGObject、PyQt(QT开发库)和PyGTK(GTK+库)均是Python开发用户界面的第三方库。而time库是Python提供的处理时间标准库。本题选择C选项。

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

14.B投影运算是指对于关系内的域指定可引入新的运算。本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。本题选择B选项。

15.B赋值运算的一般形式:变量=表达式,左边只能是变量。A选项是连续赋值,C选项是序列赋值,D选项可以写为x=x+y。本题选择B选项。

16.C

17.A链式存储结构既可以针对线性结构也可以针对非线性结构,所以选项B,C错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D选项错误。本题选择A选项。

18.D列表的index()方法用于从列表中找出某个对象第一个匹配项的索引位置,如果这个对象不在列表中会报一个异常。本题中11.index(2)是指在列表11中查找对象2,但列表中并不存在元素2,因此会异常。故答案为D项。

19.Bdivmod(x,y)函数用来计算x和y的除余结果,返回两个值,分别是:x与y的整数除,即x//y,以及x与y的余数,即x%y。返回的两个值组成了一个元组类型,即小括号包含的两个元素(x//y,x%y)。40//3=13,40%3=1,故答案为B项。

20.AA。【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句等。

21.A集合中可以使用add()方法增加新元素,不能使用中括号来添加,B项错误;字典数据类型必须用不可变的元素做键,而列表是可变的,不能做键,C项错误;字典的items()函数返回的是所有的键值对,D项错误。故正确答案为A项。

22.Arange(6)取到的是0,1,2,3,4,5这六个数,这些数均为int类型,使用list()方法将其存储在列表变量lis中。

23.AB项是定义全局变量的关键字,C项是with…as用来代替传统的try…finally语法,D项的意思是程序什么都不做。

24.Crange([start,]stop[,step=1\n])函数有3个参数,用来生成一个从start参数的值开始,到stop参数的值结束的数字序列,步长step默认为1,区间为左闭右开。而reVerSed()函数用于反转列表中的元素。本题选择C选项。

25.Arename():给文件重命名;getcwd():得到当前工作目录,即当前Python脚本工作的目录路径;rmdir():删除目录。split():按给出的分隔符分隔字符串,返回的是列表类型。

26.CPython的单分支结构使用if关键字对条件进行判断,语法格式如下:if〈条件>:<语句块>Python的二分支结构使用if-else关键字对条件进行判断,语法格式如下:if<条件>:<语句块1>else:〈语句块2>Python的多分支结构使用if-elif-else关键字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径,语法格式如下:if<条件1>:〈语句块1>elif<条件2>:<语句块2>else:〈语句块3>本题选择C选项。

27.B函数定义时的语法如下。def<函数名>(<非可选参数列表>,<可选参数>=<默认值>):\t<函数体>return<返回值列表>可选参数一般都放置在非可选参数的后面。本题代码中,n为非可选参数,fact(n)函数的功能为求n的阶乘。s在函数内部定义,为局部变量。根据range()函数的定义,range(1,n+1)的范围是[1,n],不包含n+1。本题选择B选项。

28.Dturtle库的home()函数用于设置当前画笔位置为原点,朝向东。本题选择D选项。

29.D对于长度为n的有序线性表,在最坏情况下,二分法查找(对分查找)需比较log2n次。对于长度为n的线性表,最坏情况下顺序查找需要n次,寻找最大项需要n一1次,堆排序需要nlog2n次。故D项的时间复杂度最低。

30.BA选项是Python数据分析方向的一个库,C选项是Python中一个用于把汉字转换成拼音的库,D选项是Python中用来处理中文文本的库。本题选择B选项。

31.N

32.Y

33.Y

34.N

35.N

36.Y

37.Y

38.N

39.N

40.Y

41.2

42.False

43.'1'

44.6

45.'r'

46.FalseTrue

47.-4

48.None

49.回车换行

50.None

51.animals=[’cow’,’duck’,’cat’,’dog’]\r\n

animals.reverse()\r\n

print(animals)列表的操作方法reverse()用于将列表中的元素反转。

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是一个隐函数,是固定写法,不能写成别的单词;x表示列表中的一个元素,在这里表示一个列表(即一个学生的信息),x只是临时起的一个名字,也可以使用任意的名字;x[一1]表示以列表中的最后一个元素(即总成绩)排序。参数”reverse=True”表示按降序排序;若该参数缺省或”reverse=False”,表示按升序排序。\r\n

最后,通过for循环在列表L中提取出前10个元素(即前10名的学生信息,但不包含总成绩),用空格分隔每个元素,并添加换行符,写入到文件”candidate0.txt”中,再关闭所有文件。\r\n

(2)本题涉及”candidate0.txt”和”candidate.txt”两个文件。首先要读取”candidate0.txt”文件中的信息,通过程序判断每个学生的所有课程成绩是否都大于等于60,满足条件的将该学生的学号和姓名写入到”candidate.txt”文件中。打开文件用open()函数,用”r”只读模式打开文件”candidate0.txt”,用”w”模式创建文件”candidate.txt”,并定义一个列表L来存储学号和姓名(做中转)。\r\n”candidate0.txt”文件中有10行数据,需要用readlines()函数读入所有行,以每行为元素形成列表lines,

温馨提示

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

最新文档

评论

0/150

提交评论