陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)_第1页
陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)_第2页
陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)_第3页
陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)_第4页
陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

陕西省延安市全国计算机等级考试Python语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(30题)1.在Python中,包含矩阵运算的第三方库是()。

A.NumPyB.PyQt5C.wordcloudD.wxPython

2.下列关于Python内置函数的使用描述错误的是()。

A.int(x)是将x转换为一个整数

B.print(“6+5”)的输出是11

C.die.clear()的结果是清空字典dic

D.使用aPPend()函数可以向列表添加元素

3.设str1=‘*@python@*’,语句print(str1[2:].strip(‘@’))的执行结果是()。

A.python@*B.python*C.*@python@*D.*python*

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

5.以下描述中,正确的是()。

A.如果s是一个序列,s=[l,”kate”,Tme],s[3]返回True

B.如果x不是s的元素,xnotins返回True

C.如果x是s的元素,xins返回1

D.如果s是一个序列,s=[l,”kate”,False],s[-1]返回True

6.下面不能创建一个集合的语句是()

A.s1=set()

B.s2=set(“abcd”)

C.s3={1,2,3,4}

D.s4=frozenset(('string'),(1,2,3))

7.下面代码的输出结果是()。foriinrange(3):forjin”dream”:ifj=="e":continueprint(j,end="")

A.dramdramdramB.drdrdrC.dreamdreamdreamD.dream

8.下面关于递归函数,描述错误的是()。

A.递归函数必须有一个明确的结束条件

B.递归函数就是一个函数在内部调用自身本身

C.递归效率不高,递归层次过多会导致栈溢出

D.每进入更深一层的递归时,问题规模相对于前一次递归是不变的

9.设元素集合为D={1,2,3,4,5,6}。B=(D,R)为线性结构所对应的R是()。

A.R={(6,1),(5,6),(1,3),(2,4),(3,2)}

B.R={(4,5),(6,1),(5,6),(1,3),(2,4),(3,2)}

C.R={(6,1),(5,6),(1,3),(3,4),(3,2)}

D.R={(6,1),(5,6),(2,3),(2,4),(3,2)}

10.下列说法正确的是()。

A.set()可以将任何类型转换为集合类型

B.remove()方法删除集合中的元素,不管元素存不存在都不报错

C.集合中的元素不可重复,元素类型只能是不可变数据类型

D.集合元素是有序的

11.以下程序的输出结果是()。imgl=[12,34,56,78]img2=[1,2,3,4,5]defmodi():img1=img2print(img1)modi()print(img1)

A.[12,34,56,78][1,2,3,4,5]

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

C.[12,34,56,78][12,34,56,78]

D.[1,2,3,4,5][12,34,56,78]

12.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

13.下面关于CSV文件描述错误的是()。

A.CSV文件格式是一种通用的文件格式,应用于程序之间转移表格数据

B.CSV文件的每一行是一维数据,可以使用Python中的列表类型表示

C.CSV文件通过多种编码表示字符

D.整个CSV文件是一个二维数据

14.将E-R图转换为关系模式时,实体和联系都可以表示为()。

A.属性B.键C.关系D.域

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

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

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

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

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

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

17.下面属于“对象”成份之一的是()。

A.封装B.规则C.属性D.继承

18.以下代码的输出结果是()。lis=list(range(4))print(lis)

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

19.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

20.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书

21.以下关于Python的描述中,正确的是()。A.条件4<=5<=6是合法的,输出False

B.条件4<=5<=6是不合法的

C.条件4<=5<=6是合法的,输出True

D.条件4<=5<=6是不合法的,拋出异常

22.面向对象方法中,继承是指()。

A.—组对象所具有的相似性质B.—个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制

23.下面代码的输出结果是()。try:print(8/9/(8//9))except:print(”计算错误”)

A.0B.1C.计算错误D.8

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

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

25.在Python中,使用for—n…方式形成的循环不能遍历的类型是()。

A.列表B.复数C.字符串D.字典

26.下面代码的输出结果是()。deff(n):ifn==1:return1else:returnn*f(n—1)print(f(4))

A.24B.4C.0D.10

27.执行以下代码的结果是?A.(1,2,3,4)B.(1,2,3,[1,2,4])C.异常报错D.(1,2,3,[1,2,3],4)

28.对于Python中的复数,下列说法错误的是()A.表示复数的语法是real+imagej

B.实部和虚部都是浮点数

C.虚部必须后缀j,且必须是小写

D.复数对象之间无法进行比较

29.以下代码的输出结果是()。print(1.5+2.1==3.6)

A.3.6B.TrueC.1.5+2.1==3.6D.False

30.以下程序的输出结果是()。d={}foriinrange(26): d[chr(i+ord(“A”))]=chr((i+13)%26+ord(“A”))forcin“Python”: print(d.get(c,c),end=“”)

A.PlgubaB.CabuglC.PythonD.Cython

二、判断题(10题)31.在函数内部直接修改形参的值并不影响外部实参的值。

A.是B.否

32.假设已导入random标准库,那么表达式max([random.randint(1,10)foriinrange(10)])的值一定是10。

A.是B.否

33.执行语句frommathimportsin之后,可以直接使用sin()函数,例如sin(3)。

A.是B.否

34.Python采用的是基于值得自动内存管理方式。

A.是B.否

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

A.是B.否

36.无法删除集合中指定位置的元素,只能删除特定值的元素。

A.是B.否

37.通过对象不能调用类方法和静态方法。

A.是B.否

38.元组可以作为字典的“键”。

A.是B.否

39.如果仅仅是用于控制循环次数,那么使用foriinrange(20)和foriinrange(20,40)的作用是等价的。

A.是B.否

40.在GBK和CP936编码中一个汉字需要2个字节。

A.是B.否

三、填空题(10题)41.正则表达式元字符________用来表示该符号前面的字符或子模式1次或多次出现。

42.表达式[1,2]+[3]的值为__________________。

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

44.已知列表x=[1.0,2.0,3.0],那么表达式sum(x)/len(x)的值为___________。

45.表达式3//5的值为_______________。

46.表达式len(range(1,10))的值为___________。

47.语句sorted([1,2,3],reverse=True)==reversed([1,2,3])执行结果为_________。

48.表达式'aaasdf'.lstrip('as')的值为________________。

49.Python运算符中用来计算整商的是_________。

50.已知x={1,2,3},那么执行语句x.add(3)之后,x的值为__________。

四、操作题(3题)51.考生文件夹下存在3个Python源文件,分别对应3个问题;1个文本文件,作为本题目的输入数据,请按照源文件内部说明修改代码,实现以下功能。《卖火柴的小女孩》是丹麦童话故事作家安徒生写的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富人阖家欢乐、举杯共庆的大年夜冻死在街头的故事。这里给出《卖火柴的小女孩》的一个网络版本文件,文件名为“小女孩.txt”。问题1:在“PY301-1.py”文件中修改代码,对“小女孩.txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号(:)分隔,将输出结果保存在考生文件夹下,命名为“PY301-l.txt”。示例格式如下。的:83试题程序:#以下代码为提示框架#请在...处使用一行或多行代码替换#请在处使用一行代码替换#注意:提示框架的代码可以任意修改,以完成程序功能为准…fo=open("PY301-1.txt","w")d={}fo.write("{}:{}".format(_____))fo.close()问题L在“PY301-2.Py”文件中修改代码,对“小女孩.txt”文件进行字符频次统计,按照频次由高到低,输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,将输出结果保存在考生文件夹下,命名为“PY301-2.txt”。示例格式如下。,的一...(共10个字符)试题程序:#以下代码为提示框架#请在...处使用一行或多行代码替换#注意:提示框架的代码可以任意修改,以完成程序功能为准fo=open("PY301-2.txt",”w”)…d={}…Is=list(d.items())ls.sort(key=lambdax:x[l],reverse=True)#此行可以按照字符频次由高到低排序…问题3:在PY301-3.py文件中修改代码,对“小女孩.txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等,但不包含空格符和回车符。将排序后的字符及频次输出到考生文件夹下,文件名为“小女孩-频次排序.txt”。字符与频次之间采用英文冒号(:)分隔,各字符之间采用英文逗号(,)分隔,参考CSV格式,最后无逗号,文件内部示例格式如下。着:30,那:29,火:29试题程序:#以下代码为提示框架#请在...处使用一行或多行代码替换#注意:提示框架的代码可以任意修改,以完成程序功能为准…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1]#reverse=True)#此行可以按照字符频次由高到低排序

52.考生文件夹下存在一个文件“PY201.py”,请写代码替换横线,不修改其他代码,实现以下功能。使用turtle库中的pencolor()和fillcolor()方法为图形着色(画笔颜色为黑色,填充颜色为红色),使用set-up()方法在桌面(400,400)的位置创建600像素×600像素的画布窗体,效果如下所示。试题程序#请在_____处使用一行代码或表达式替换#注意:请不要修改其他已给出代码fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()_____(1)_____('black')_____(2)_____("red")pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(-27,85)pendown()done()

53.考生文件夹下存在一个文件“PY202.py”,该文件是本题目的代码提示框架,其中代码可以任意修改。请在该文件中编写代码,以实现如下功能。使用Python的异常处理结构编写对数计算,要求底数大于0且不等于1,真数大于0,且输入的必须为实数,否则拋出对应的异常。试题程序:#以下代码为提示框架#请在...处使用一行或多行代码替换#请在_____处使用一行代码替换#注意:提示框架的代码可以任意修改,以完成程序功能为准try:a=eval(input(‘请输入底数:’))b=eval(input(‘请输入真数:’))c=_____exceptValueError:…exceptZeroDivisionError:print(‘底数不能为1’)exceptNameError:Prints(‘输入必须为实数’)else:print(C)

参考答案

1.ANumPy是Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组,简称“数组”。NrnnPy可以用来存储和处理大型矩阵,其提供了许多髙级的数组编程工具,如矩阵运算、矢量处理、N维数据变换等。本题选择A选项。

2.BB选项中正确的输出应为6+5,当Print()函数圆括号内的变量被引号标注,则该变量被视为字符串。本题选择B选项。

3.Astr1[2:]表示对字符串str1进行切片,即从序号为2的字符开始切片直到字符串结尾(字符串最左侧的字符序号为0),其结果为“npython@*”;strip(Chars)方法是从字符串中去掉其左侧和右侧chars中列出的字符,“python@*”.strip(‘@’)表示将字符串左侧和右侧的”字符去掉,由于字符串左侧和右侧均无“@”字符,因此结果为“python@*”。本题选择A选项。

4.A

5.B序列的索引从0开始,所以s=[1,”kate”,True]时,s[3]=0,返回False,A选项错误。Xin\ns(如果x是s的元素,返回True;否则返回False);xnotin\nS(如果X不是S的元素,返回True;否则返回False),B选项正确、C选项错误。序列类型使用的索引可以是正向递增索引(从0开始递增),也可以是反向递减索引(从-1开始递减),所以s[-1]=FalSe,返回的是False,D选项错误。本题选择B选项。

6.D

7.Acontinue语句只结束本次循环,不终止整个循环的执行,而break语句具备结束循环的能力。本题外层循环用来计数,内层循环用来遍历字符串,当满足判断条件时,就会结束本次循环进入下一循环,字符串遍历完成之后,外层循环进入下一循环。本题选择A选项。

8.DA选项正确,递归函数必须要有一个明确的结束条件作为递归的出口;B选项正是递归函数的含义,正确;C选项正确,在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧,由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出;D选项,每当进入更深一层的递归时,问题规模显然会相对前一次递归减小。

9.A一个非空的数据结构如果满足两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。B项不满足条件①,不止一个根结点;C项,结点3有两个后件4和2,不满足条件②;D项,既不满足条件①,也不满足条件②。故答案为A项。

10.Cset()函数将其他组合数据类型变成集合类型;remove()删除集合中指定的元素,不存在则产生KeyError异常;集合元素是无序的,集合的输出顺序与定义顺序可以不一致。

11.D程序先调用函数modi(),函数体内进行赋值操作,列表对象的赋值就是简单的对象引用。函数体内,img1和img2是一样的,他们指向同一片内存,img1不过是img2的别名。因此,函数调用执行后输出[1,2,3,4,5]。然后执行print(img1),此处的img1是外部变量,与函数体内img1不是同一个变量,仍输出[12,34,56,78]。故正确答案为D项。

12.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

13.CCSV文件采用纯文本格式,通过单一编码表示字符。以行为单位,开头不留空行,行之间没有空行。每行表示一个一维数据,多行表示多维数据。以逗号分隔每列数据,列数据为空也要保留逗号。本题选择C选项。

14.C从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-\nR图中属性也可以转换成关系的属性。本题选择C选项。

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

16.B

17.C面向对象方法中的对象由两部分组成:①数据,也称为属性,即对象所包含的信息,表示对象的状态;②方法,也称为操作,即对象所能执行的功能、所能具有的行为。本题选C选项。

18.B用中括号([])表示列表类型,也可以通过list(x)函数将集合或字符串类型转换成列表类型。此代码生成列表lis=[0,1,2,3],最后通过print()函数输出。本题选B选项。

19.CE-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。

20.D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。

21.C判断条件4<=5<=6是成立的,故输出True。本题选择C选项。

22.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。本题选择D选项。

23.C“x/y”返回x和y的商,产生的结果为浮点数;“x//y”返回不大于x与y之商的最大整数。try—except是异常处理机制,当try中的代码报错时执行except后面的语句,不报错则继续执行同级语句。由于8//9=0,则8/9/0产生了除以0的操作,会报错。

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

25.B在Python中,使用for…in…方式形成的循环能遍历的类型有字符串、文件、range()函数或组合数据类型,不能遍历复数。本题选择B选项。

26.A该代码的功能是根据传人的参数求取该数的阶乘,经过一系列的运算将结果返回,4的阶乘为24。

27.B

28.C

29.B“1.5+2.1”表达式的结果与3.6比较是否相等,返回的结果为布尔值,即True或False,结果相等,所以代码输出的结果应为True。

30.Dord()函数是把字符转换成对应的ASCII值,chr()函数是ord()函数的逆运算,即把ASCII值转换成对应的字符输出,所以ord(“A”)为65。第一个for循环的作用是生成键值对存储在字典变量d中。例如,当i=0,d[A]=N;i=1,d[B]=0……—直到i=13,d[N]=A,后面的键和值与前面的是互换位置的,如i=14,d[0]=B;i=15,d[P]=C……依次循环赋值,直到i=25时结束for循环。第二个for循环的作用是输出字典的值,get(key,default=None)函数有两个参数:第一个参数是字典的键;第二个参数是默认值,作用是返回字典中key对应的值,如果key不存在,则返回默认值,如d={“A”:“N”,“0”:“B”,“Z”:“M”},d.get(“A”,“C”)返回的是N。当c=“P”时,在字典中查找是否存在键为“P”的值,遍历后发现存在这样的值,所以返回C。for循环继续遍历剩下的字符,在字典中找不到对应的键,则返回默认值,所以结果返回为Cython。本题选择D选项。

31.Y

32.N

33.Y

34.Y

35.Y

36.Y

37.N

38.Y

39.Y

40.Y

41.+

42.[1,2,3]

43.10

44.2.0

45.0

46.9

47.False

48.'df'

49.//

50.{1,2,3}

51.(1)fi=open("小女孩.txt","r")fo=open(”PY301—1.txt”,”w”)txt=fi.read()d={}\r\nexclude=",。!?、()【】<>《》=:+-*-“”…"forwordintxt:ifwordinexclude:continueelse:d[word]=d.get(word,0)+1ls=list(d.items())ls.sort(key=lambda\r\nx:x[1],reverse=True)fo.write(”{}:{}”format(ls[0][0],ls[0][1]))fo.close()(2)fi=open("小女孩.txt","r")fo=open(”PY301—2.txt”,”w”)txt=fi.read()d={}forwordintxt;d[word]=d.get(word,0)+1deld["\\n"]ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照词频由高到低排序foriinrange(10);fo.write(ls[i][0])fi.close()fo.close()(3)fi=open("小女孩.txt","r")fo=open(小女孩-频次排序。txt","w")txt=fi.read()d={}forwordintxtd[word]=d.get(word,0)+1deld[""]deld["\\n"]ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照词频由高到低排序foriin\r\nrange(len(ls)):ls[i]="{}:{}".format(ls[i][0],ls[i][1])fo.write(",".join(ls))fi.close()fo.close()(1)首先使用open()函数打开文件“小女孩.txt”,把文件的内容通过read()方法保存到变量txt中;定义一个字符串变量exclude用来存放标点符号。然后用for循环遍历txt中的每个字符(word),并使用if条件进行判断,若该字符在变量exclude中,说明该字符为标点符号,跳出该循环;否则将该字符作为字典d中的一个键,该键所对应的值置为1,在后面循环中只要遍历的字符与该键相同,就将该键对应的值加1。ls=list(d.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,对列表ls中的元组进行排序,用到sort()方法,参数“key=lambda.x:x[1]”中lambda是一个隐函数,是固定写法,不能写成别的单词;x表示列表中的一个元素,在这里表示一个元组,x只是临时起的一个名字,也可以使用任意的名字;x[1]表示以元组中第二个元素排序。sort()方法的第二参数表示是按哪种方式排序,若为“reverse=True”表示按降序排序;若该参数缺省或“reverse=False”,表示按升序排序。排序后,列表ls中第一个元组中即为频次最高的中文字符和频次,ls[0][0]表示该字符,ls[0][1]表示

温馨提示

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

最新文档

评论

0/150

提交评论