版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
历年国家二级(Python)机试真题汇编及答案(171题)1.系统在创建一个进程时需要调用()。(A)阻塞进程原语(B)创建进程原语(C)唤醒进程原语(D)撤销进程原语【答案】B【解析】进程借助创建原语实现创建一个新进程。系统在创建一个进程时需要调用创建进程原语。本题答案为B选项。2.下列叙述中错误的是()。(A)虚拟存储器的空间大小就是实际外存的大小(B)虚拟存储器的空间大小取决于计算机的访存能力(C)虚拟存储器使存储系统既具有相当于外存的容量又有接近于主存的访问速度(D)实际物理存储空间可以小于虚拟地址空间【答案】A【解析】虚拟存储器是对主存的逻辑扩展,虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小。本题答案为A选项。3.设表的长度为n。下列查找算法中,在最坏情况下,比较次数最少的是()。(A)顺序查找(B)寻找最大项(C)寻找最小项(D)有序表的二分查找【答案】D【解析】最坏情况下比较次数:有序表的二分查找为㏒2n,而序查找为n,寻找最大项为n-1,寻找最小项为n-1。故比较次数最少的是有序表的二分查找。本题答案为D选项。4.设循环队列的存储空间为Q(1:100),初始状态为空。现经过一系列正常操作后,front=49,则循环队列中的元素个数为()。(A)49(B)51(C)50(D)不确定【答案】D【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。队列中的元素为从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素。所以,在循环队列中队尾指针rear和排头指针front共同确定了队列中元素的个数,只知道排队指针front无法确定元素个数。本题答案为D选项。5.某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为()。(A)HFDBGECA(B)ABCDEFGH(C)HGFEDCBA(D)ACEGBDFH【答案】A【解析】二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后),并且在遍历左右子树时也遵循同样的规则。本题中,二叉树的前序序列为ABDFHCEG,可确定该二叉树的根结点为A,后序序列最后访问的肯定是根结点A,排除B、D两项。再根据中序序列为HFDBACEG,可确定结点A的左子树的根结点是B,右子树的根结点是C,则后序序列倒数第2个访问的肯定是结点C,排除C选项。本题答案为A选项。6.将数据和操作置于对象统一体中的实现方式是()。(A)隐藏(B)抽象(C)封装(D)结合【答案】C【解析】对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。本题答案为C选项。7.数据流图(DFD)的作用是()。(A)支持软件系统功能建模(B)支持软件系统的面向对象分析(C)描述软件系统的控制流(D)描述软件系统的数据结构【答案】A【解析】数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为A选项。8.数据库管理系统(DBMS)是一种()。(A)应用软件(B)系统软件(C)计算机辅助设计(D)办公软件【答案】B【解析】数据库管理系统是数据库系统的核心,它位于用户与操作系统之间,从软件分类的角度来说属于系统软件。本题答案为B选项。9.在数据库的三级模式中,可以有任意多个()。(A)概念模式(B)内模式(C)外模式(D)物理模式【答案】C【解析】一个数据库可以有多个外模式(也称子模式或用户模式),但概念模式和内模式(物理模式)只能有一个。本题答案为C选项。10.设有课程关系模式如下:R(C#,Cn,T,Ta)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址)并且假定不同课程号可以有相同的课程名,每个课程号下只有一位任课教师,但每位教师可以有多门课程。该关系模式可进一步规范化为()。(A)R1(C#,Cn),R2(T,Ta)(B)R1(C#,Cn,Ta),R2(T,Ta)(C)R1(C#,T),R2(T,Ta)(D)R1(C#,Cn,T),R2(T,Ta)【答案】D【解析】本题关系模式R的主键为课程号,每个课程号下只有一位任课教师,因此课程号可决定教师名,而教师名又决定教师地址,这里有对主属性的传递依赖。可将该关系模式拆分为两个关系模式R1和R2,其中R1包含课程号、课程名、教师名,R2包含教师名、教师地址。其中R1的主键是课程号,R2的主键为教师名。这样两个关系都不会出现对主属性的传递依赖。本题答案为D选项。11.以下选项不属于Python语言特点的是()。(A)平台无关(B)第三方库丰富(C)适合编写系统软件(D)语法简洁【答案】C【解析】Python语言最重要的三个特点是语法简洁、生态丰富、多语言集成。除了这三个重要特点外,还有一些其他特点:平台无关、强制可读、支持中文、模式多样、类库便捷。系统软件一般使用静态语言编写(采用编译方式执行);Python语言属于脚本语言(采用解释方式执行),不适合编写系统软件。12.如果Python程序执行时产生了“TypeError”的错误,其原因是()。(A)代码中的数据类型不匹配(B)代码使用了错误的关键字(C)代码中缺少“:”符号(D)代码里的语句嵌套层次太多【答案】A【解析】TypeError指对类型无效的操作,也就是数据类型不匹配。13.以下选项,不是Python保留字的选项是()。(A)and(B)with(C)is(D)count【答案】D【解析】保留字也称关键字,指被编程语言内部定义并保留使用的标识符。Python3.x版本的保留字有35个,分别是是and,as,assert,async,await,break,class,continue,def,del,elif,else,except,False,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,return,True,try,while,with,yield。14.表达式eval(’500//10’)的结果是()。(A)50.0(B)50(C)500/10(D)500/10’【答案】B【解析】“x//y”是指x与y之整数商,即不大于x与y之商的最大整数。这里,500//10的结果为50,由于加了单引号,故结果为字符串类型。eval()函数将去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。故答案为B项。15.表达式type(type(’45’))的结果是()。(A)<class’type’>(B)<class’str’>(C)<class’float’>(D)None【答案】A【解析】type()函数用于对变量进行类型判断。’45’属于字符串类型,因此,type(’45’)返回的是<clss’str’>。<clss’str’>属于type类型,因此type(type(’45’))的结果为<class’type’>。16.x=2.6,表达式round(x)的结果是()。(A)2.6(B)2(C)3(D)2.0【答案】C【解析】round(x,d)函数是指对x四舍五入,保留d位小数,无参数d则返回四舍五入的整数值。因此round(2.6)=3。17.变量tstr=’kip520’,表达式eval(tstr[3:-1])的结果是()。(A)52(B)520(C)p520(D)p52【答案】A【解析】tstr[3:-1]是指对字符串’kip520’进行切片,其结果为’52’(字符串类型);eval()函数是将字符串最外侧的引号去掉,并按照Python语句方式执行去掉引号后的字符内容,因此eval(’52’)=52。18.设str1=’python’,语句print(str1.center(10,*))的执行结果是()。(A)python****(B)**python**(C)****python(D)SyntaxError【答案】D【解析】str.center(width,fillchar)方法返回长度为width的字符串。其中str处于新字符串中心位置,两侧新增字符串采用fillchar填充,当width小于字符串长度时,返回str;fillchar是单个字符。本题中,str1.center(10,*)中的*两侧没有引号,因此不是字符串类型,执行语句后会报错,故答案为D项。19.执行以下程序,输出结果是()。y=[’’,"]print(all(y).any(y))(A)FalseTrue(B)TrueFalse(C)FalseFalse(D)TrueTrue【答案】A【解析】对于any(x)函数,如果组合类型变量x中所有的值都是0、“或False时,那么结果为False;如果所有元素中有一个值非0、"或False,那么结果就为True。对于all(x)函数,只要组合类型变量x中存在值为0、“或False的元素,那么结果为False,否则结果为True。本题变量y中,’’和’’是不同的。’’表示空格字符串,’’表示为空的元素,因此all(y)的结果为False,any(y)的结果为True。20.ls=[’1’,’2’,’3’],以下关于循环结构的描述,错误的是()。(A)表达式foriinrange(len(ls))的循环次数跟forIinls的循环次数是一样的(B)表达式foriinrange(len(ls))跟foriinls的循环中i的值是一样的(C)表达式foriinrange(len(ls))的循环次数跟foriinrange(0,len(ls))的循环次数是一样的(D)表达式foriinrange(len(ls))的循环次数跟foriinrange(1,len(ls)+1)的循环次数是一样的【答案】B【解析】range()函数只有一个参数时表示会产生从0开始计数到输入参数的前一位整数结束的整数列表;有两个参数时,则将第一个参数作为起始位,第二个参数为结束位,输出从起始位到结束位的前一位的整数列表;有三个参数时,第三个参数表示步长,起始位按照步长递增或递减。len(ls)函数返回列表ls的元素个数3。B项,foriinrange(len(ls))中的值分别为0,1,2,而在foriinls中每一步的i为’1’,’2’,’3’,所以i的值不相同。21.以下关于随机运算函数库的描述,错误的是()。(A)random(a,b)产生一个a到b之间的随机小数(B)random.seed()函数初始化随机数种子,默认值是当前系统时间(C)random库的随机数是计算机按一定算法产生的,并非完全随机(D)Python内置的random库主要用于产生各种伪随机数序列【答案】A【解析】random()产生一个(0.0,1.0)之间的随机小数,uniform(a,b)产生一个[a,b]之间的随机小数,randint(a,b)产生一个[a,b]之间的整数。因此A项描述错误。22.以下代码的输出结果是()。print(’i:@>10.6}’.format(’Fog’))(A)@@@@Fog(B)@@@@@@@Fog(C)Fog@@@@@@@(D)Fog@@@@【答案】B【解析】{:@>10.6}’.format(’Fog’)表示输出时宽度为10,右对齐且填充@,若字符串长度大于6,只保留前6个字符,小于等于6全部输出。因此本题答案为@@@@@@@Fog。23.执行以下程序,输入ab,然后回车,结果是()。k=10whileTrue:s=input(’请输入q退出:’)ifs==’a’:k+=1continueelse:k+=2breakprint(k)(A)13(B)请输入q退出:(C)12(D)10【答案】C【解析】while循环用于判断输入的值是否与’a’相等,若相等则执行k+=1;若不相等则执行k+=2。本题中输入的是ab,与’a’不相等,因此执行k+=2,k=12。24.以下程序的输出结果是()。s=10defrun(n):globalsforiinrange(n):s+=ireturnsprint(s.run(5))(A)2020(B)1020(C)1010(D)UnboundLocalError【答案】B【解析】本题中,变量s为全局变量,函数内部改变了该变量的值,外部该变量的值不变,因此最后s的值仍为10。然后执行函数run(5),将实参5传递给形参n,函数体内for循环执行后,i的值依次为0、1、2、3、4,因此函数体内s=10+0+1+2+3+4=20,函数的返回值为20。故答案为B项。25.以下关于Python的函数的描述,正确的是()。(A)函数内部需要改变外部定义的一个简单类型变量,需要显式声明其为全局变量(B)函数内部改变了外部的简单类型,外部该变量的值也随之改变(C)函数内部定义了跟外部的全局变量同名的组合类型的变量,则函数内部引用的该名字的变量时不确定是外部的还是内部的(D)函数内部改变了外部定义的组合类型变量的值,外部该变量的值不随之改变【答案】A【解析】对于在函数外部定义的全局变量,若该变量为简单类型变量,在函数内部使用时需要提前使用保留字global声明其为全局变量;函数内部改变了该变量的值,外部该变量的值不变,因此A项正确、B项错误。若该变量为组合类型变量,在函数内部定义了跟该变量同名的变量,引用时该变量是内部的,函数内部改变了组合类型变量的值,外部该变量的值不能确定是否随之改变,因此C、D两项错误。26.以下程序的输出结果是()。ls=[10]defrun(n):ls.append(n)run(5)print(ls)(A)[10](B)UnboundLocalError(C)[10,5](D)None【答案】C【解析】在Python中,列表变量作为全局变量时,在函数中可以直接修改,不需要使用global声明。本题中,ls为列表类型,为全局变量;函数体中ls.append(n)方法是在列表最后增加一个元素;调用函数后,直接在列表ls中增加一个元素5,最后输出改变后的列表ls。故正确答案为C项。27.以下程序的输出结果是()。defhub(ss,x=2.0,y=4.0):ss+=x*yss=10print(ss,hub(ss,3))(A)22None(B)10None(C)10.022.0(D)22.0None【答案】B【解析】本题中,变量s为全局变量,函数内部改变了该变量的值,外部该变量的值不变,因此最后s的值仍为10。调用函数hub()后,由于函数数体内没有return语句,即无返回值,所以默认返回None。故答案为B项。28.以下程序的输出结果是()。ls=[12,44,23,46]foriinls:ifi==’44’:print(’foundit!i=’,i)breakelse:print(’notfoundit…’)(A)notfoundit…(B)foundit!i=44(C)foundit!i=44notfoundit…(D)foundit!i=’44’notfoundit…【答案】A【解析】由于列表ls中所有元素都是整数类型,不可能等于字符串类型的’44’,即if语句中的条件不成立,需执行else语句,输出notfoundit…。29.以下程序的输出结果是()。x=4ca=’123456’ifstr(x)inca:print(ca.replace(ca[x],.str(x-2))(A)123456(B)123426(C)5(D)2【答案】B【解析】str(4)=’4’,此字符在字符串ca中,满足if条件,执行输出语句。ca.replace(ca[4],str(4-2)是指返回字符串ca副本,ca[4]指字符串中序号为4的字符’5’,str(x-2)返回符’2’,也就是用字符’2’来替换字符’5’。故答案为B项。30.给以下程序填空,能输出{0:[90,’Aele’],1:[87,’Bob’],2:[93,’lala’]}结果的选项是()。x=[90,87,93]y=("Aele","Bob","1ala")z={}foriinrange(len(x)):________print(z)(A)z[i]=[x[i],y[i]](B)z[i]=x[i],y[i](C)z[i]=list(zip(x,y))(D)z[i]=x,y【答案】A【解析】由最后输出的字典可以看出,它由0,1,2作键,列表x的元素作为每个值的第一个元素,元组y的元素作为每个值的第二个元素,即字典z中键i对应的值为[x[i],y[i]]。故答案为A项。31.以下程序的输出结果是()。L1=[1,2,3,4]L2=L1.copy()L2.reverse()print(L1)(A)1,2,3,4(B)[4,3,2,1](C)[1,2,3.4](D)4,3,2,1【答案】C【解析】本题使用了copy()函数,在这种情况下,列表L1和L2是不同的对象,他们也不指向同一片内存空间,修改列表L2不会影响到列表L1。因此,L1仍然为[1,2,3,4]。32.以下程序的输出结果不可能的选项是()。importrandomls=[2,3,4,6]s=10k=random.randint(0,2)s+=ls[k]print(s)(A)12(B)14(C)13(D)16【答案】D【解析】randint(a,b)产生一个[a,b]之间的整数,因此random.randint(0,2)的返回值可能为0、1或者2(即k的值),ls[0]=2,ls[1]=3,ls[2]=4,所以s有三个可能的值s+=2,s+=3,s+=4,也就是l2、l3、l4。33.以下关于文件的描述,错误的是()。(A)open()函数的参数处理模式’b’表示以二进制数据处理文件(B)open()打开文件之后,文件的内容就被加载到内存中了(C)open函数的参数处理模式’+’表示可以对文件进行读和写操作(D)fo.readlines()函数是将文件的所有行读入一个列表【答案】B【解析】如果文件只被打开,文件内容是不会装入内存的,只有执行读取操作的时候才会把文件内容相应的长度(在read()函数中指定读取的字节长度)装入内存。故B项描述错误。34.以下程序输出到文件a.txt里的结果是()。fo=open("a.txt",’w’)x=[’春眠’,’处处’,’夜来’]fo.writelines(x)fo.close()(A)春眠处处夜来(B)春眠处处夜来(C)春眠’’处处’’夜来’(D)春眠’’处处’’夜来’【答案】A【解析】fo.writelines(x)是指直接将列表类型的各元素连接起来写入文件。fo。故答案为A项。35.以下方法能返回列表数据类型的选项是()。(A)s.center()(B)s.strip()(C)s.replace()(D)s.split()【答案】D【解析】s.center()是字符串居中函数;s.strip()函数是从字符串s中去掉其左右两侧指定的字符,返回的是字符串;s.replce(old,new)函数返回字符串s的副本,所有old子串被替换为new。s.split()函数返回一个列表,若有参数,由s根据参数被分隔的部分构成,省略参数默认以空白符分隔。36.以下关于数据维度的描述,正确的是()。(A)一维数据可以用列表表示,也可以用字典表示(B)JSON格式可以表示具有复杂关系的高维数据(C)采用列表表示一维数据,各个元素的类型必须是相同的(D)一维的列表a里的某个元素是一个一维的列表b,这个列表是二维数据【答案】B【解析】字典属于高维数据,A项错误;采用列表表示一维数据时,元素的数据类型可以不同,C项错误;D项说法片面,列表a还可能是高维的。故答案选B项。37.以下不属于Python的pip工具命令的选项是()。(A)get(B)install(C)show(D)download【答案】A【解析】install命令用于安装第三方库;download命令用于下载第三方库的安装包,但并不安装;show命令是列出某个已经安装的库的详细信息。get不属于pip工具的命令。38.用Pyinstaller工具把Python源文件打包成一个独立的可执行文件,使用的参数是()。(A)-L(B)-D(C)-F(D)-i【答案】C【解析】Pyinstaller工具没有-L参数。-D是默认值,生成dist目录;-F是指在dist文件夹中只生成独立的打包文件;-i是指定打包程序使用的图标文件。39.random库采用更多随机数生成算法是()。(A)梅森旋转算法(B)蒙特卡洛方法(C)线性同余法(D)平方取中法【答案】A【解析】random库是Python的标准库,用于产生各种分布的伪随机数序列。它采用梅森旋转算法生成伪随机数序列。40.turtle画图结束后,让画面停顿,不立即关掉窗口的方法是()。(A)turtle.setup()(B)turtle.done()(C)turtle.penup()(D)turtle.clear()【答案】B【解析】setup()函数用于设置主窗体的大小和位置;penup()函数指提起画笔;clear()函数清空当前窗口,但不改变画笔的位置。done()函数是让画面停顿,但不立即关掉窗口。基本编程题41.考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:键盘输入正整数n,按要求把n输出到屏幕,格式要求:宽度为14个字符,数字中间对齐,不足部分用=填充。例如:键盘输入正整数n为1234,屏幕输出=====1234=====#请在______处使用一行代码或表达式替换##注意:请不要修改其他已给出代码n=eval(input("请输入正整数:"))print("{______}".format(n))
【答案】n=eval(input("请输入正整数:"))print("{:=^14}".format(n))【解析】该题目主要考查Python字符串的格式化方法。Python语言推荐使用.format()格式化方法,其使用方式如下:<模板字符串>.format(<逗号分隔的参数>)其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。如果模板字符串中有多个槽,可以通过format()参数的序号在模板字符串槽中指定参数的使用,参数从0开始编号。例如:“{0}曰:学而不思则罔,思而不学{1}。”.format(“孔子”,”则殆”)其结果为:’孔子曰:学而不思则罔,思而不学则殆。’format()方法的槽除了包括参数序号,还可以包括格式控制信息,语法格式如下:{<参数序号>:<格式控制标记>}其中,格式控制标记包括:<填充><对齐><宽度><,><.精度><类型>6个字段,由引导符号(:)作为引导标记,这些字段都是可选的,可以组合使用。<填充>:指用于填充的单个字符。<对齐>:分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。<宽度>:当前槽的设定输出字符宽度。<,>:用于显示数字类型的千位分隔符。<.精度>:由小数点(.)开头,对于浮点数,精度表示小数部分输出的有效位数;对于字符串,精度表示输出的最大长度。<类型>:表示输出整数和浮点数类型的格式规则。本题格式要求为:宽度为14个字符,数字中间对齐,不足部分用=填充。因此模板字符串为:{:=^14}。42.考生文件夹下存在一个文件PY102.py,请写代码替换横线,不修改其他代码,实现以下功能:a和b是两个列表变量,列表a为[3,6,9]已给定,键盘输入列表b,将a列表的三个元素插入到b列表中对应的前三个元素的后面,并显示输出在屏幕上。例如:键盘输入列表b为[1,2,3],因此,屏幕输出计算结果为[1,3,2,6,3,9]#请在______处使用一行代码或表达式替换##注意:请不要修改其他已给出代码a=[3,6,9]b=eval(input())#例如:[1,2,3]j=1foriinrange(len(__(1)____)):b._____(2)_____j+=__(3)______print(b)【答案】a=[3,6,9]b=eval(input())#例如:[1,2,3]j=1foriinrange(len(a)):b.insert(j,a[i])j+=2print(b)【解析】for循环中,需要遍历列表a中的每一个元素,然后将每个元素插入到列表b中相应的位置,因此第一空填入:a。在列表中插入元素使用insert()方法,insert(j,x)表示在列表中索引序号为j的位置增加元素x。题目要求将a列表的每个元素插入到b列表中对应的元素的后面,即元素a[0]插入到列表b中索引序号为1的位置。因此第二空填入:insert(j,a[i])。b列表中插入一个元素后,该元素后面的元素的索引序号都将加1,再插入列表a中的第二个元素时,变量j应加2才是该元素的索引序号位置,因此第三空填入:2。43.考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:以100为随机数种子,随机生成3个在1(含)到9(含)之间的随机整数,计算这三个随机整数的立方和。#请在______处使用一行或多行代码替换##注意:请不要修改其他已给出代码importrandom____________#此处可多行s=0#____________#此处可多行print(s)【答案】importrandomrandom.seed(100)#此处可多行s=0#foriinrange(3):n=random.randint(1,9)#此处可多行s+=n**3print(s)【解析】题目要求以100为随机数种子,seed()函数用于初始化随机数种子,因此第一空应填入:random.seed(100)。题目要求随机生成3个在1(含)到9(含)之间的随机整数,再计算这三个随机整数的立方和。这需要使用for循环,3个数需遍历3次,代码为:foriinrange(3):;randint(a,b)函数用于生成一个[a,b]之间的整数(包含a和b),题目要求的是1(含)到9(含)之间的随机整数,则用random.randint(1,9)生成随机整数;一个数的立方用n**3表示,再求几个数的立方和用s+=n**3。简单应用题44.使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100像素的正五边形,在考生文件夹下给出了程序框架文件PY201.py,在横线处补充代码,不得修改其他代码。效果图如下图所示:
【答案】importturtleturtle.pensize(2)d=0foriinrange(1,6):turtle.fd(100)d+=72turtle.seth(d)【解析】本题要绘制一个多边形,需要使用turtle库(海龟),首先使用import保留字把turtle库导入。由于绘制的是正五边形,for循环遍历中,要对序号为1~5的每条边依次绘制,i的取值从1开始到5结束。因此第一空填入:6。题目要求使用turtle.fd()函数。turtle.fd()函数用于控制小海龟向当前行进方向前进一个指定距离,题目要求边长为100像素,因此第二空填入:turtle.fd(100)。turtle.seth(d)函数用于设置小海龟当前行进方向为d,该角度是绝对方向角度值。在正五边形中,相邻两条边形成的外角均为72度,即绘制完一条边后,小海龟的行进方向要增加72度后再绘制下一条边。因此第三空填入:72。使用字典和列表型变量完成最有人气的明星的投票数据分析。投票信息由考生文件夹下文件vote.txt给出,一行只有一个明星姓名的投票才是有效票。有效票中得票最多的明星当选最有人气的明星。【答案】45.问题1:请统计有效票张数。在考生文件夹下给出了程序框架文件PY202-1.py,补充代码完成程序。#请在______处使用一行代码或表达式替换##注意:请不要修改其他已给出代码f=open("vote.txt")names=f.readlines()f.close()n=0fornamein_______(1)_________:num=_______(2)_________if_______(3)________:n+=__(4)____print("有效票{}张".format(n))【答案】f=open("vote.txt")names=f.readlines()f.close()n=0fornameinnames:num=len(name.split())ifnum==1:n+=1print("有效票{}张".format(n))【解析】题目明确给出“一行只有一个明星姓名的投票才是有效票”,我们就要判断文件“vote.txt"中每行都有几个姓名,若为一个姓名,则有效票数加1,若多于一个姓名则不统计。用readlines()函数读入文件“vote.txt”中所有行,以每行为元素形成列表names。用for循环遍历names列表中的每个元素name,判断每个元素的长度len(name),如果长度num为1,则为有效票,就将有效票数n加1。因此,第一空填入:names;第二空填入:len(name.split()),split()函数表示以空格分隔name中的元素;第三空填入:num==1;第四空填入:1。46.问题2:请给出当选最有人气明星的姓名和票数,在考生文件夹下给出了程序框架文件PY202-2.py,补充代码完成程序。#请在______处使用一行代码或表达式替换##注意:请不要修改其他已给出代码f=open("vote.txt")names=f.readlines()f.close()D={}fornamein_______(1)_________:iflen(_____(2)______)==1:D[name[:-1]]=_______(3)_________+1l=list(D.items())l.sort(key=lambdas:s[1],_______(4)_________)name=l[0][0]score=l[0][1]print("最具人气明星为:{},票数为:{}".format(name,score))【答案】f=open("vote.txt")names=f.readlines()f.close()D={}fornameinnames:iflen(name.split())==1:D[name[:-1]]=D.get(name[:-1],0)+1l=list(D.items())l.sort(key=lambdas:s[1],reverse=True)name=l[0][0]score=l[0][1]print("最具人气明星为:{},票数为:{}".format(name,score))【解析】接着问题一的思路,当元素name被判定为有效票后,就将该元素存入字典D中作为一个键,该键所对应的值为1,在后面循环中只要遍历的元素和键相同,就将该键对应的值加1。l=list(D.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,对列表l中的元素进行排序,用到sort()方法,参数"key=lambdas:s[1]"中lambda是一个隐函数,是固定写法,不能写成别的单词;s表示列表中的一个元素,在这里表示一个元组,s只是临时起的一个名字,也可以使用任意的名字;s[1]表示以元组中第二个元素排序。sort()方法的第二参数表示是按哪种方式排序,若为“reverse=True”表示按降序排序,若该参数缺省或"reverse=False",表示按升序排序。根据变量name和score,可以确定排序后列表l中的第一个元素中就是最具人气明星姓名和选票数,列表是按降序排序的。因此,第一空填入:names;第二空填入:name.split():第三空填入:D.get(name[:-1],0);第四空填入:reverse=True。综合应用题考生文件夹下的文件data.txt是一个来源于网上的技术信息资料。【答案】47.问题1:在考生文件夹下给出了程序框架文件PY301-1.py,补充代码完成程序。用Python语言中文分词第三方库jieba对文件data.txt进行分词,并选择长度大于等于3个字符的关键词,写入文件out1.txt,每行一个关键词,各行的关键词不重复,输出顺序不做要求,例如:人工智能科幻小说…#请在…处使用多行代码替换##注意:其他已给出代码仅作为提示,可以修改…#此处可多行f=open(’out1.txt’,’w’)…#此处可用多行f.close()【答案】importjiebaf=open(’data.txt’,’r’)#此处可多行data=f.read()f.close()f=open(’out1.txt’,’w’)data1=jieba.lcut(data)d=[]forxindata1:iflen(x)>=3andxnotind:d+=[x]f.write(x+’\n’)f.close()print(d)【解析】本题要使用jieba库,则首先用import保留字引用jieba库。打开“data.txt”文件后,需要用read()函数读入整个文件内容并赋值给data;然后使用jieba库的lcut()函数对data进行精准分词,其分词结果存放在列表data1中;再定义一个列表d用来存放选择出的关键词。用for循环遍历列表data1中的每个元素(关键词),题目第一个要求是选择出长度大于等于3个字符的关键词,则需要使用if条件判断关键词的长度“len(x)>=3”。题目第二个要求关键词不重复,则在遍历每个关键词时,判断该关键词是否在列表d中,若不在,则将该关键词写入文件“out1.txt”文件中;并将该关键词添加到列表d中,在遍历下一个关键词时,若该关键词在列表中,则跳过该关键词,这就实现了关键词不重复。48.问题2:在考生文件夹下给出了程序框架文件PY301-2.py,补充代码完成程序。对文件data.txt进行分词,对长度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out2.txt,每行一个关键词及其出现次数,例如:科学家:2达特茅斯:1…#请在…处使用多行代码替换##注意:其他已给出代码仅作为提示,可以修改…#此处可多行d={}…#此处可多行ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照词频由高到低排序…#此处可多行【答案】importjiebaf=open(’data.txt’,’r’)#此处可多行data=f.read()f.close()f=open(’out2.txt’,’w’)data1=jieba.lcut(data)d={}forxindata1:iflen(x)>=3:d[x]=d.get(x,0)+1ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照词频由高到低排序forlinls:f.write(l[0]+’:’+str(l[1])+’\n’)f.close()【解析】本题要使用jieba库,则首先用import保留字引用jieba库。打开“data.txt”文件后,需要用read()函数读入整个文件内容并赋值给data;然后使用jieba库的lcut()函数对data进行精准分词,其分词结果存放在列表data1中;再定义一个字典d用来存放选出的关键词(键)和该词出现的次数(值)。用for循环遍历列表data1中的每个元素(关键词),题目要求是选择出长度大于等于3个字符的关键词(len(x)>=3),当关键词符合要求时,就将该元素存入字典d中作为一个键(d[x]),该键所对应的值置为1(d.get(x,0)+1),在后面循环中只要遍历的关键词和键相同,就将该键对应的值加1。ls=list(d.items())表示将字典类型变成列表类型,字典中的每个键值对对应列表中的一个元组。随后,对列表ls中的元素进行排序,用到sort()方法,参数“key=lambdax:x[1]”中lambda是一个隐函数,是固定写法,不能写成别的单词;x表示列表中的一个元素,在这里表示一个元组,x只是临时起的一个名字,也可以使用任意的名字;x[1]表示以元组中第二个元素排序。sort()方法的第二参数表示是按哪种方式排序,若为“reverse=True”表示按降序排序;若该参数缺省或“reverse=False”,表示按升序排序。即按照列表ls中每个元组中的第2个元素(次数)降序排序。排序后,通过一个for循环,遍历列表ls中的每个元组,每个元组的第1个元素(关键词)和第2个元素(次数)通过“:”连接,并添加换行符后,写入到文件“out2.txt”中。49.下列叙述中正确的是()。(A)进程调度也负责对内存进行分配(B)进程调度负责对计算机系统中的所有系统资源进行分配(C)进程调度仅负责对CPU进行分配(D)进程调度也负责对外存进行分配【答案】C【解析】进程调度就是按一定策略动态地把CPU分配给处于就绪队列中的某一进程并使之执行的过程。进程调度亦可称为处理器调度或低级调度,相应的进程调度程序可称为分配程序或低级调度程序。因此,程调度仅负责对CPU进行分配。本题答案为C选项。50.在计算机内部表示指令和数据应采用()。(A)ASCII码(B)二进制与八进制(C)二进制、八进制、与十六进制(D)二进制【答案】D【解析】计算机内部采用二进制来表示指令和数据。本题答案为D选项。51.下列排序法中,每经过一次元素的交换会产生新的逆序的是()。(A)快速排序(B)冒泡排序(C)简单插入排序(D)简单选择排序【答案】A【解析】在一个排列中,如果一对数的前后位置与大小N顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。快速排序的思想是:从线性表中选取一个元素,设为T,将线性表中后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就将线性表分成两部分(称两个子表),T插入到其分割线的位置处,这个过程称为线性表的分割,然后再用同样的方法对分割出的子表再进行同样的分割。快速排序不是对两个相邻元素进行比较,可以实现通过一次交换而消除多个逆序,但由于均与T(基准元素)比较,也可能会产生新的逆序。本题答案为A选项。52.某带链的队列初始状态为front=rear=NULL。经过一系列正常的入队与退队操作后,front=rear=10。该队列中的元素个数为()。(A)0(B)1(C)1或0(D)不确定【答案】B【解析】带链的队列是采用链式存储结构表示的队列。链式存储的存储单元是不连续的,因为是不连续的存储空间,所以指针将不会有规律地连续变化。当front=rear=NULL时,为队空;当front=rear且不等于NULL时,队列中存在一个元素,其他情况无法判断。本题答案为B选项。53.某完全二叉树按层次输出(同一层从左到右)的序列为ABCDEFGH。该完全二叉树的中序序列为()(A)ABDHECFG(B)ABCDEFGH(C)HDBEAFCG(D)HDEBFGCA【答案】C【解析】完全二叉树是指除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干节点。完全二叉树按层次输出的序列为ABCDEFGH,则二叉树如下图所示。该二叉树的中序序列为HDBEAFCG。本题答案为C选项。
54.需求分析阶段产生的主要文档是()。(A)数据流图和数据字典(B)初步的用户手册(C)确认测试计划(D)需求规格说明书【答案】D【解析】需求分析阶段的工作可以分为4个方面:需求获取、需求分析、需求规格说明书编写和需求评审。本题答案为D选项。55.软件测试用例包括()。(A)输入数据和输出数据(B)测试计划和测试数据(C)被测程序和测试规程(D)输入数据和预期输出结果【答案】D【解析】测试用例(TestCase)是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成。本题答案为D选项。56.对数据库数据的存储方式和物理结构的逻辑进行描述的是()。(A)模式(B)内模式(C)外模式(D)用户模式【答案】B【解析】概念模式也称为模式,是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图。外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。本题答案为B选项。57.一名员工可以使用多台计算机,每台计算机只能由一名员工使用,则实体员工和计算机间的联系是()。(A)一对一(B)一对多(C)多对多(D)多对一【答案】B【解析】一名员工可以使用多台计算机,一台计算机只能由一名员工使用,则员工和计算机之间的联系是一对多。员工是一的一方,计算机是多的一方。本题答案为B选项。58.表示学生选修课程的关系模式是SC(S#,C#,G),其中S#为学号,C#为课程号,G为成绩,检索选修了课程号为2的课且成绩不及格的学生学号的表达式是()。(A)πS#(σC#=2∧G<60(SC))(B)σG<60(SC)(C)σC#=2∧G<60(SC)(D)πS#(σC#=2(SC))【答案】A【解析】检索课程号为2且成绩不及格是选择行,用σ操作;检索学号是选择列(投影),用π操作,则在表达式中应同时存在π和σ,B、C两项错误。D选项进行的选择运算只满足了条件课号为2,没有满足条件成绩不及格,D选项错误。本题答案为A选项。59.以下可以替代#用来当作Python语言注释的语法元素是()。(A)字符串类型(B)print()函数(C)input()函数(D)eval()函数【答案】A【解析】在Python语言中常用的注释方法有两种,#注释和三引号注释,其中三引号注释就是将注释内容修饰为字符串类型。60.如果Python程序执行时产生了“unexpectedindent”错误,其原因可能是()。(A)代码使用了错误的保留字(B)代码缩进不正确(C)代码变量未赋初值(D)代码进入了死循环状态【答案】B【解析】“unexpectedindent”翻译成中文就是意外缩进,也就是程序中含有不符合编码要求的缩进。61.以下不是Python保留字的是()。(A)except(B)in(C)none(D)continue【答案】C【解析】保留字,也称关键字,是指被编程语言内部定义并保留使用的标识符。Python3.x版本中有35个保留字,分别)为:and,as,assert,async,await,break,class,continue,def,del,elif,else,except,False,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,return,True,try,while,with,yield。本题选A选项。62.表达式eval("print(1+2)")的结果是()。(A)3(B)"print(1+2)"(C)print(1+2)(D)1+2【答案】A【解析】eval()函数将字符串最外层引号内的内容当做表达式执行,题目中引号内的内容是print(1+2),所以相当于执行输出语句print(1+2),最后输出3。63.以下不是Python语言特点的是()。(A)运行速度快(B)支持面向过程和面向对象编程(C)语法简洁(D)生态庞大【答案】A【解析】Python语言,简单易学、语法简洁、生态庞大、同时支持面向过程和面向对象,但由于自身属于解释型语言,运行速度相对较慢。64.以下程序执行结果是()。importtimetype(time.ctime())(A)<class"int">(B)<class"float">(C)<class"str">(D)True【答案】C【解析】time库中ctime()函数是生成一个时间的字符串,而type()函数是返回参数的数据类型,所以选择C选项。65.表达式min([3,2,1])的结果是()。(A)3(B)[1](C)[3,2,1](D)1【答案】D【解析】min()函数是返回参数中的最小值,列表[3,2.1]的最小值是1,所以选择D选项。66.表达式"Python编程是方向"[2:-2]的结果是()。(A)thon编程是方(B)thon编程是(C)ython编程是(D)ython编程是方【答案】B【解析】本题表达式作用是字符串的切片,将字符串"Python编程是方向"通过[2:-2]进行切片,所以结果是"thon编程是"。67.在Python语言中,整数999的二进制、八进制、十六进制表达形式分别是()。(A)b1111100111,o1747,x3e7(B)1111100111,1747,3e7(C)0b1111100111,0o1747,0x3e7(D)B1111100111,O1747,X3e7【答案】C【解析】在Python语言中二进制、八进制、十六进制分别需要使用0b、0o、0x来作为前缀,并且经过计算999的各进制表现形式分别为0b11110111,0o17468.Python使用for和in的组合表达遍历循环,不能被遍历的数据类型是()。(A)复数类型(B)元组类型(C)字典类型(D)字符串类型【答案】A【解析】在Python语言中,遍历循环中被遍历的数据需为多元素类型,最常见的如:字符串、列表、元组、字典或集合等。69.以下关于random库的描述错误的是()。(A)使用random库可以用importrandom方式引入(B)random.seed()可用于初始化随机数种子,用于随机数序列再现(C)random.randint(将产生一个随机整数(D)random()库产生在0到1之间真正的随机数【答案】D【解析】导入random库一般由三种方式①importrandom,②importrandomast,③fromrandomimport*;seed()函数设置随机数种子,可以选择不同的序列进行展示,一般用于随机数序列再现;randint()函数用于产生一个随机整数;random()库是采用梅森旋转算法生成的伪随机数序列,并不是现实意义上的随机数。70.以下不能判断变量x在字符串变量s中的方法是()。(A)len(s.split(x))(B)s.count(x)(C)xins(D)s.strip(x)【答案】D【解析】count()方法用于计算变量x在字符串s中出现的次数,返回值大于0即代表存在;in操作符可以判断x是否存在s中,返回值为True即代表存在;split()方法将字符串s通过x分隔成列表,在通过len()函数计算列表长度,返回值大于1即代表存在;strip()方法仅能去除字符串首尾两端的x,无法进行判断。71.以下代码的输出结果是()。ls=[2018,2019,2020]print(",".join(ls))(A)2018,2019,2020(B)TypeError错误(C)201820192020(D)2018,2019,2020,【答案】B【解析】观察题目中程序,join()方法需要组合数据内部的元素是字符串类型,而程序中列表内是数字类型,所以会出现错误。72.以下不是文件读写方法的是()。(A)read()(B)readline()(C)writeline()(D)write()【答案】C【解析】在Python语言中,读文件的方法有read()、readline()、readlines(),写文件的方法有write()、writelines()。73.以下关于Python函数的说法,错误的是()。(A)每个Python函数至少包含一个return语句,如果没有返回参数,直接用return(B)通过给部分函数参数赋默认值,可以实现可选参数传递(C)调用函数时,可以通过向参数名称赋值而不考虑参数顺序(D)Python函数可以同时返回多个值【答案】A【解析】Python中函数可以没有return语句,也可以通过return语句返回一个或多个值;在创建函数的时候可以设置参数默认值,之后在调用函数时,便可以实现可选参数传递;在调动函数时,可以通过关键字传参的方式(向形参名赋值),此时不用考虑传参顺序。74.关于数据维度,以下选项中描述错误的是()。(A)列表类型可以表示二维数据(B)集合类型可以表示一维数据(C)字典类型可以表示一二维数据(D)字典可以表示高维数据【答案】C【解析】在Python语言中,列表可以表示一二维数据,集合可以表示一维数据,字典一般表示高维数据。75.关于Python的循环控制,以下描述错误的是()。(A)continue将结束当次循环(B)break和continue可以用于遍历循环和无限循环(C)else也可以与循环搭配使用(D)break将退出所有层次的循环【答案】D【解析】break和continue仅适用于循环结构,区别在于break跳出当前循环模块,而continue会继续判断下个条件或遍历下一个元素,两者都仅作用于一层循环,循环中还有扩展模式可以与else联用。76.以下对Python语言定位的表述正确的是()。(A)数据分析专用语言(B)编译型语言(C)解释型脚本语言(D)机器语言【答案】C【解析】Python语言是高级脚本语言,采用解释型方式执行,且自身属于一门通用语言可以完成各种不同的工作。77.在time库中,可以进行程序计时的函数是()。(A)perf_counter()(B)sleep()(C)strftime()(D)strptime()【答案】A【解析】time库中perf_counter()函数一般用于计时;sleep()函数用于暂停程序执行;strftime()和strptime()都是用于显示时间。78.使用pip指令安装第三方库wordcloud的命令是()。(A)installpipwordcloud(B)pipinstallwordcloud(C)pipwordcloud(D)installwordcloudpip【答案】B【解析】使用pip安装模块的命令是pipinstall模块名。所以选择B选项。79.执行以下程序,并输入"0"时,输出结果是()。try:b=eval(input(’请输入一个正整数:’))print(100/b)exceptZeroDivisionError:print("错误1")except:print("错误2")(A)错误2(B)错误1(C)100(D)2.0833333333333335【答案】B【解析】当输入0时,eval()函数将字特串“0”转化为数字0,然后执行print()语句内部的100/0,0不能作为除数,所以会产生异常ZeroDisionEror,所以执行print("错误1")。80.以下语句的执行结果是()。d={1:10,2:2,3:100}print(d.get(3,99))(A)99(B)100(C)10(D)2【答案】B【解析】本题主要考核字典的get()方法,get()方法从字典中寻找对应参数的键,找到即返回对应的值,找不到即返回自身的第二个参数。题目中寻找3对应的键,可以发现字典中有3这个键,所以返回3对应的值,即为100。81.以下程序的输出结果是()。defmaxmin(a=10,b=5,c=2):returnmax(a,b,c)+min(a,b,c)print(maxmin(1,b=10))(A)7(B)6(C)11(D)12【答案】C【解析】题目中定义函数maxmin(),使用3个含有默认值的形参,函数返回值为三个值中的最大值加上最小值。调用函数,传入两个实参,一个位置参数传递给a,一个关键字参数传递给b,运行函数比较大小,得到最大值10加上最小值1,所以答案为11。82.以下程序的输出结果是()。d={"A":10,"B":2,"C":100,"D":9,"E":-10}s=0foriind:ifd[i]>2:continues+=d[i]print(s)(A)111(B)119(C)121(D)-8【答案】D【解析】题中程序遍历字典d,变量i依次是"A"、"B"、"C"、"D"、"E",内部分支语句对字典d的值进行判断,如果键i对应的值大于2,则不执行后面语句,直接遍历下一个元素,最后循环结束,s=-8。83.变量ls=[1,2,3,4,5,6,7,8,9],以下执行结果是123456789的选项是()。(A)print("".join(str(ls).strip("[]").split(".")))(B)print("".join(str(ls)))(C)print("".join(ls))(D)print("".join(str(ls).split(",")))【答案】A【解析】A选项,先将列表ls通过str()函数转化为字符串形式"[1,2,3,4,5,6,7,8,9]",然后用strip()方法去除首尾的中括号,得到"1,2,3,4,5,6,7,8,9",接下来通过split()方法以逗号切割成列表[’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’],最后使用join()方法拼接,即可得到字符串"123456789";B选项,先将列表ls通过str()函数转化为字符串形式"[1,2,3,4,5,6,7,8,9]",直按调用join()方法,字符串不会有任何改变;C选项,直接通过join()方法拼接列表ls,但是因为列表内的数据不是字符串,所以会报错;D选项,先将列表ls通过str()函数转化为字符串形式"[1,2,3,4,5,6,7,8,9]",接下来通过split()方法以逗号切割成列表[’[1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9]’],最后通过join()方法拼接得到[123456789]。所以选择A选项。84.以下程序的输出结果是()。s=["seashell","gold","pink","brown","purple","tomato"]print(len(s),min(s),max(s))(A)5pinkbrown(B)6seashellgold(C)6browntomato(D)5purpletomato【答案】C【解析】本题主要考核Python语言的内置函数的功能,len()函数返回数据的长度;min()函数返回数据的最小值;max()函数返回数据的最大值。观察数据可以知道len()函数返回的是6,min()函数返回的是"brown",max()函数返回的是"tomato"。85.补充以下程序,输出随机列表元素的最大值的选项是()。importrandomasrlistV=[]r.seed(100)foriinrange(10):i=r.randint(100,999)listV.append(i)(A)print(max(listV))(B)print(listV.max())(C)print(listV.pop(i))(D)print(listV.reverse(i))【答案】A【解析】本题考核列表的操作方法及操作函数,max()函数返回数据的最大值:max()方法不存在;pop()方法随机删除一个元素,并返回;reverse()方法将列表逆序,所以选择A选项。86.以下不是Python深度学习方向的第三方库是()。(A)PyTorch(B)requests(C)MXNet(D)Keras【答案】B【解析】requests是网络爬虫方向的第三方库,其他皆为深度学习方向的第三方库。87.以下不是PythonWeb开发方向第三方库的是()。(A)flask(B)Pyramid(C)PyQt5(D)Django【答案】C【解析】PyQt5是图形界面方向的第三方库,其他皆为Web开发方向的第三方库。88.以下不是Python数据可视化方向第三方库是()。(A)vispy(B)matplotlib(C)ggplot(D)TimeSide【答案】D【解析】TimeSide是网络音频处理框架,其他皆为数据可视化方向的第三方库。基本编程题89.在考生文件夹下有个文件PY101.py,在横线处填写代码,完成如下功能。接收用户输入的一个大于10小于108的十进制正整数,输出这个正整数各字符的和,以25为宽度,居中显示,采用等号=填充。例如:输入:1357输出:===========16============##在____________上补充代码#s=input("请输入一个正整数:")____________forcins:cs+=____________print(’{____________}’.format(cs))【答案】s=input("请输入一个正整数:")cs=0forcins:cs+=eval(c)print(’{:=^25}’.format(cs))【解析】观察文件已有的程序,在循环中出现未定义变量cs,且用了+=操作符,则应在循环外先设置cs变量,且本题计算各位之和,所以cs初始值应设置为0,即第1空填入cs=0;在循环中计算各位之和,因为s是字符串,所以c也是字符串,在累加的过程中,应将c转化为数字,即第2空填入eva1(c);最后根据题目要求对format()方法的槽内的格式字符串进行编写,按顺序依次为引导符号“:”,填充字符“=”,对齐方式居中“^”,填充宽度“25”,即第3空应填入:=^25。90.在考生文件夹下有个文件PY102.py,在横线处填写代码,完成如下功能。接收用户输入的数据,该数据仅由字母和中文混合构成,无其他类型字符,统计并输出中文字符出现的个数,示例如下:输入:world世界peace和平输出:4##在____________上补充代码#s=input("请输入中文和字母的组合:")____________forcins:if____________:count+=1print(count)【答案】s=input("请输入中文和字母的组合:")count=0forcins:if’\u4e00’<=c<=’\u9fff’:count+=1print(count)【解析】题目要求计算中文字符的个数,首先要了解如何去判断中文字符,在Python中中文字符的编码范围都处于“\u4e00”到“\u9fff”之间,所以利用分支语句直接进行判断即可,第1空,设置计数的变量count初始值,所以填入count=0;第2空填入判断条件,即’\u4e00’<=c<=’\u9fff’。91.在考生文件夹下有个文件PY103.py,在横线处填写代码,完成如下功能。接收用户输入的以英文逗号分隔的一组数据,其中,每个数据都是整数或浮点数,打印输出这组数据中的最大值。例如:输入:1,3,5,7,9,7,5,3,1输出:9##在____________上补充代码#s=input("请输入一组数据:")ls=____________lt=[]foriinls:lt.append(____________)print(max(lt))【答案】s=input("请输入一组数据:")ls=s.split(’,’)lt=[]foriinls:lt.append(eval(i))print(max(lt))【解析】根据题目要求,输入的数据是通过逗号分隔的数字,所以第1空使用字符串的split()方法对元素进行切割,在循环当中,将元素循环遍历出来,并加入到另一个列表当中,因为要对各数值大小进行比对,所以要转化成数字类型,才能正常的比较大小,即第2空填入eva1(i)。92.在考生文件夹下有个文件PY202.py,在省略号处填写一行或多行代码,完成如下功能。同时,在考生文件夹下有个文件data.txt,其中记录了2019年QS全球大学排名前20名的学校信息,示例如下:1,麻省理工学院,美国2,斯坦福大学,美国3,哈佛大学,美国…第一列为排名,第2列为学校名称,第3列为学校所属的国家,字段之间用逗号’,’隔开。程序读取data.txt文件内容,统计出现的国家个数以及每个国家上榜大学的数量及名称,输出结果格式示例如下:英国:5:牛津大学剑桥大学帝国理工学院伦敦大学学院爱丁堡大学瑞士:1:苏黎世联邦理工学院…##在……上补充一行或多行代码#在____________上补充一行代码#可以修改代码#f=open(’data.txt’,’r’)____________forlineinf:……fordinunis:print(’{:>4}:{:>4}:{}’.format(____________))【答案】f=open(’data.txt’,’r’)dic={}forlineinf:line=line.strip().split(’,’)iflen(line)<3:continuedic[line[-1]]=dic.get(line[-1],[])+[line[1]]unis=list(dic.items())f.close()fordinunis:print(’{:>4}:{:>4}:{}’.format(d[0],len(d[1]),’’.join(d[1])))【解析】本题主要考核文件内容的处理,首先观察文件内数据,每行内容依次是序号、大学、所在国家,数据之间用逗号隔开。题目要求,输出国家名称,对应国家大学的数量及大学名称。程序中已给出部分代码,功能主要为对文件内容遍历,输出的格式控制,所以需要编写获取大学数量,首先计算对应国家的大学数量采用字典计数的方法,先定义空字典dic,在循环内部对读取的数据进行处理,将每行数据去除换行符并根据逗号分割存储在列表l中,对l的长度进行判断,只要小于3,则代表此行并没有足够的数据,便使用continue放弃此行数据,然后使用键赋值的方法,并用get()方法确定键对应的值有无数据,此时字典dic存储的数据格式类似于{’国家名’:[’大学名’,’大学名’,……]},依次执行循环,将所有大学信息存储到字典dic中,接下来以字典dic的数据采用items()方法数据创建列表unis,列表unis的数据格式类似于[(’国家名’,[’大学名’,’大学名’……]),(’国家名’,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共营养师基础知识-营养学基础考试真题及答案解析(二)
- 零星建筑装修改造服务合同
- 选择坚持作文
- 购物中心标识系统安装合同
- 投标代理协议
- 户外活动搭建棚施工合同
- 环保工程公司租赁合同
- 培训会议公务车租赁协议
- 照明系统承台施工合同
- 2024年度文化艺术交流与展览合同
- FZ/T 21001-2019自梳外毛毛条
- CB/T 3780-1997管子吊架
- 施工图预算的编制工作规范
- 日立电梯MCA调试培训课件
- 电动客车驱动桥总成设计
- 四川省阿坝藏族羌族自治州《综合知识》事业单位国考真题
- 2023年人民法院电子音像出版社招聘笔试题库及答案解析
- 大学生心理健康优秀说课-比赛课件
- 收款账户变更的声明
- 九年级道德与法治中考复习资料
- 《化学发展简史》学习心得
评论
0/150
提交评论