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

下载本文档

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

文档简介

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

一、单选题(30题)1.表达式3**2*4//6%7的计算结果是()。

A.3B.5C.4D.6

2.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精

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

A.代码中n是可选参数

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

C.s是全局变量

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

4.以下关于Python函数的描述中,错误的是()。

A.Python程序的main函数可以改变为其他名称

B.如果Python程序包含一个函数main(),这个函数与其他函数地位相同

C.Python程序可以不包含main函数

D.Python程序需要包含一个主函数且只能包含一个主函数

5.设栈与队列初始状态为空。将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为()。

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

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

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

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

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

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

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

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

7.以下程序的输出结果是().img1=[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]

8.概念模型是()。

A.用于现实世界的建模,与具体的DBMS有关

B.用于信息世界的建模,与具体的DBMS有关

C.用于现实世界的建模,与具体的DBMS无关

D.用于信息世界的建模,与具体的DBMS无关

9.在Python中,将二维数据写入CSV文件,最可能使用的函数是()。

A.write()B.split()C.join()D.exists()

10.下面代码的输出结果是()。list=[“1””3”,”5”]defapp(x):list,append(x)app(“7”)print(list)

A.[‘1’,’3’,’5’]

B.[‘1’,’3’,’5’,'7']

C.[‘7’]

D."l,3,5,7"

11.在Python中,使用open()打开Windows操作系统D盘下的一个文件,路径名错误的是()。

A.D:\PythonTest\a.txt

B.D:\\PythonTest\\a.txt

C.D:/PythonTest/a.txt

D.D://PythonTest//a.txt

12.在面向对象方法中,不属于“对象”基本特点的是A.一致性B.分类性C.多态性D.标识唯一性

13.以下程序的输出结果是()。foriinrange(3): forjin“dream”: ifj==“e” continue print(j,end=“”)

A.dramdramdramB.drdrdrC.dreamdreamdreamD.dream

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

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

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

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

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

15.下面程序的输出结果是()。Is=[“橘子”,“芒果”,“草毒”,“西瓜”,“水蜜桃”]ForkinIs:print(k,end=“”)A.橘子芒果草莓西瓜水蜜桃B.橘子芒果草莓西瓜水蜜桃C.西瓜D.”橘子”芒果"草莓”"西瓜"”水蜜桃”

16.以下代码的输出结果是()。fo=open(”book.txt”,”w”)ls=[’C语言’,’Java’,’C#’,’Python’]fo.writelines(ls)fo.close()

A.’C语言“Java”C#”Python’

B.C语言JavaC#Python

C.[C语言,Java,C#,Python]

D.[’C语言’,’Java’,’C#’,’Python’]

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

A._xxB._xx_C._xxxD.xxx

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

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

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

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

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

19.下面代码的输出结果是()。foriin”football":ifi==”t”:continueprint(i,end=“”)

A.无输出B.llC.footbaD.fooball

20.下列代码的结果是()A.A.numgreaterthan4B.numlessthan4C.TrueD.False

21.下面程序的输出结果是()。lisl=[1,2,['python1]]lis2=['loves']lisl[1]=lis2print(lisl)

A.[lis2,2,[‘python’]]

B.[1,['loves'],['python']]

C.[1,2,'python','loves']

D.[1,2,[‘python1,’loves’]]

22.以下关于Python字典变量的定义中,正确的是()。

A.d={[1,2]:1,[3,4]:3}

B.d={l:as,2:sf}

C.d={(l,2):l,(3,4):3}

D.d={'python':1,2:[tea,cat]}

23.下载但不安装一个第三方库的命名格式是()。

A.pipdownload<第三方库名>

B.pipuninstall<第三方库名>

C.pipinstall<第三方库名>

D.pipsearch<第三方库名>

24.以下选项不属于组合数据类型的是()。

A.字典类型B.复数类型C.列表类型D.集合类型

25.time库的time.time()函数的作用是()。

A.以数字形式返回当前系统时间

B.以字符串形式返回当前系统时间

C.以struct_time形式返回当前系统时间

D.根据format格式定义返回当前系统时间

26.以下代码的输出结果是()。t=10.5defabove_zero(t):returnt>0

A.TrueB.FalseC.10.5D.没有输出

27.实体电影和实体演员之间的联系是()。

A.—对一B.多对多C.多对一D.一对多

28.以下关于列表变量Is操作的描述中,错误的是()。

A.ls.copy():生成一个新列表,复制Is的所有元素

B.ls.remove(x):删除Is中所有的x元素

C.ls.apperid(x):在Is最后增加一个元素

D.ls.reverse():反转列表Is中所有元素

29.以下代码的输出结果是()。defHello(famlyName,age):ifage>50:print("您好!”+famlyName+”奶奶”)elifage>40:print(“您好!”+famlyName+”阿姨”)elifage>30:print(”您好!”+famlyName+”姐姐”)else:print(“您好!”+”小”+famlyname)Hello(age=43,famlyName="赵")

A.您好!赵奶奶B.您好!赵阿姨C.您好!赵姐姐D.函数调用出错

30.下列叙述中正确的是()。A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

二、判断题(10题)31.在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果。

A.是B.否

32.集合可以作为字典的值。

A.是B.否

33.形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。

A.是B.否

34.表达式{1,3,2}>{1,2,3}的值为True。

A.是B.否

35.Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做。

A.是B.否

36.假设re模块已成功导入,并且有pattern=pile('^'+'\.'.join([r'\d{1,3}'foriinrange(4)])+'$'),那么表达式pattern.match('03')的值为None。

A.是B.否

37.在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。

A.是B.否

38.对于大量列表的连接,extend()方法比运算符+具有更高的效率。

A.是B.否

39.Python使用缩进来体现代码之间的逻辑关系,对缩进的要求非常严格。

A.是B.否

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

A.是B.否

三、填空题(10题)41.表达式''.join(re.split('[sd]','asdssfff'))的值为_______________。

42.已知f=lambdax:5,那么表达式f(3)的值为_____________。

43.当在字符串前加上小写字母_____或大写字母_____表示原始字符串,不对其中的任何字符进行转义。

44.执行代码x,y,z=sorted([1,3,2])之后,变量y的值为______。

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

46.可以使用内置函数___________________查看包含当前作用域内所有局部变量和值的字典。

47.表达式[indexforindex,valueinenumerate([3,5,7,3,7])ifvalue==max([3,5,7,3,7])]的值为__________________。

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

49.正则表达式元字符________用来表示该符号前面的字符或子模式0次或多次出现。

50.已知x=range(1,4)和y=range(4,7),那么表达式sum([i*jfori,jinzip(x,y)])的值为__________。

四、操作题(3题)51.考生文件夹下存在一个文件PY301.py,该文件是本题目的代码提示框架,其中代码可以任意修改。请按照源文件内部说明修改代码,实现以下功能:

设计一个猜字母的程序,程序随机给出26个小写字母中的一个,答题者输入猜测的字母,若输入的不是26个小写字母之一,让用户重新输入;若字母在答案之前或之后,程序给出相应正确提示;若答错5次,则答题失败并退出游戏;若回答正确,程序输出回答次数并退出游戏。

试题程序:

#以下代码为提示框架

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

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

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

import_________

letter_list=[’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,

'o','p','q','r','s','t','u','v','w','x','y','z']

etter=letter_list[random.______(0,25)]

count=0

whileTrue:…

52.考生文件夹下存在一个文件“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)

53.某班学生评选一等奖学金,学生的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'''

参考答案

1.D先计算幂,3**2=9,9*4=36,36//6=6,6%7=6。//是整除运算,%是求余运算。本题选D选项。

2.A结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

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

4.DPython是一种脚本解释语言,与C/C++和Java有很大的区别,没有主函数的说法。当运行单个Python文件时,如文件名为a.py,则a的属性__name_==‘_main_’,并不是首先执行所谓的main函数。Python整个程序自顶向下顺序执行。本题选D选项。

5.B栈是先进后出的线性表,队列是先进先出的线性表。将元素A,B,C,D,E,F,G,H依次轮流人栈和入队,这时栈中的元素为ACEG,队列中的元素为BDFH;然后依次轮流退队和出栈,即队列中B元素退队,然后栈中G元素出栈,队列中D元素退队,栈中E元素出栈,以此顺序,完成所有元素退队和出栈,则输出序列为B,G,D,E,F,C,H,A。本题选择B选项。

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

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

8.C概念模型,着重于对客观世界复杂事物的描述及对它们内在联系的刻画,与具体的DBMS(数据库管理系统)无关。

9.C在Python中,二维列表对象输出CSV文件时,采用遍历循环和字符串的join()方法相结合的方法。方法如下:#ls代表二维列表,此处省略f=open('cpi.csv','w')forrowinIs£.write(“,'.join(row)\\n')f.close()本题选择C选项。

10.Bappend()是向列表元素的结尾增加元素。本题选择B选项。

11.A在Python中,使用open()打开文件的操作过程中需要注意,由于\\是字符串中的转义字符,所以表示路径时,使用\\\\、/或//代替\\,本题选择A选项。

12.A对象具有如下特性:标识唯一性、分类性、多态性、封装性、模块独立性。

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

14.BB项中正确的输出应为6+5,当print()函数括号内的变量被引号括起,则视为字符串。

15.Bfor循环遍历列表Is,依次把Is中的元素赋值给变量k,并使用函数Print()输出各元素(格式为元素间用空格符分隔)。本题选择B选项。

16.B文件打开模式中w表示覆盖写模式,文件不存在则创建,存在则完全覆盖原文件。文件写入方法中,writelines表示直接将列表类型的各元素连接起来写入文件中。此代码就是将列表ls中的内容整体写入文件中,本题选B选项。

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

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

19.Dcontinue语句只结束本次循环,不终止整个循环的执行,而break具备结束循环的能力。本题选择D选项。

20.A

21.B列表索引从0开始,lisl[l]=lis2是将列表lis2赋值并覆盖lisl[l]位置上的元素,运算后lisl=[1,[\nloves'],[’python']]。本题选择B选项。

22.C在Python中,字典是存储可变数量键值对的数据结构。通过字典类型实现映射,键必须是唯一的,必须是不可变数据类型,值可以是任何数据类型。选项A、D错误。字典使用花括号({})创建,每个元素是一个键值对,语法格式为{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>},其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典具有集合类似的性质,即键值对之间没有顺序且不能重复。本题选择C选项。

23.Apipdownload<第三方库名>用于下载第三方库的安装包,但并不安装;pipuninstall<第三方库名>用于卸载一个已经安装的第三方库;pipinstall<第三方库名>用于安装第三方库;pipsearch<第三方库名>用于联网搜索库名或摘要中的关键字。本题选择A选项。

24.B能够表示多个数据的类型称为组合数据类型。Python语言中最常用的组合数据类型有3大类:集合类型、序列类型(典型代表是字符串类型和列表类型)和映射类型(典型代表是字典类型)。复数类型不属于组合数据类型。本题选择B选项。

25.Atime.time()返回的是当前时间的时间戳,是一个浮点数,以秒为单位。本题选择A选项。

26.D在Python中,return语句用来结束函数并将程序返回到函数被调用的位置继续执行。re-turn\n语句可以出现在函数中的任何部分,可以同时将0个、1\n个或多个函数运算结果返回给函数被调用处的变量。函数可以没有return语句,此时函数并不返回值。return语句返回的是值而不是表达式,故程序无输出。本题选择D选项。

27.B一部电影可由多名演员参演,一名演员可以参演多部电影,因此实体电影和实体演员之间的联系是多对多。本题选择B选项。

28.BIs.Remove(x)是删除列表Is中出现的第一个元素X,而不是删除列表Is中所有的x元素。本题选择B选项。

29.B将实参age=43、famlyName=\n”赵”分别赋给形参age和famlyName,之后进入多分支结构进行判断。因为40

30.B线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。

31.Y

32.Y

33.Y

34.N

35.Y

36.N

37.Y

38.Y

39.Y

40.Y

41.'afff'

42.5

43.r、R

44.2

45.FalseTrue

46.locals()

47.[2,4]

48.2.0

49.*

50.32

51.importrandom\r\nletter_list=[’a’,’b’,’c’,’d’,’e’,’f’,’g’,\r\n‘h’,’i’,’j’,’k’,‘l’,’m’,’n’,\r\n’o’,’p’,’q’,’r’,’s’,’t’,\r\n’u’,’v’,’w’,’x’,’y’,’z’]

letter=letter_list[random.randint(0,25)]

count=0\r\nwhileTrue:\r\n

letter_input=input('请输入26个小写英文字母中的任一个:’)\r\n

count+=1\r\n

ifletter_inputnotinletter_list:\r\n

print('请重新输入字母')\r\nelse:\r\n

ifcount>=5:\r\n

print('猜测超过5次,答题失败')\r\n

break\r\nelse\r\n

ifletter_input==letter:\r\n

print('恭喜你答对了,总共猜了{}次',format(count))\r\n

break\r\nelifletter_input>letter\r\n

prinr('你输入的字母排在该字母之后')\r\nelifletter_input<letter:\r\n

print('你输入的字母排在该字母之前')\r\nelse\r\n

print('未知错误')随机抽取26个小写字母,需要使用Python的random库中的函数。randint(a,b)方法生成一个[a,b]之间的整数,用来随机抽取列表中的字母。根据题目要求总体分为两个方向:①输入的字符不是小写字母中的任一个字符,则输出“请重新输人字母”;②若输入的字符在列表中,则判断输入的次数是否大于5,大于5则输出“猜测超过5次,答题失败”并退出循环,在输人次数之内,对输入的字符与随机抽取的字符进行比较,即大于、小于和等于,不同的比较范围对应不同的输出。

52.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)。

53.(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”文件中

温馨提示

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

评论

0/150

提交评论