1、Python期末试题A 优质复习知识点试卷试题一、选择题1下列选项中,属于Python输入函数的是( )。Arandom()Bprint()CCout()Dinput()2算法用Python程序实现,以下代码中哪处语句存在语法错误( ) ABCD3下面哪个不是Python合法的标识符( )Aint_3BprintCcountD_name_4运行下列Python程序,输出结果为0,则空白处应为( )a=14b=7c=_print(c)Aa-bBa+bCa/bDa%b5下列 Python 表达式的值为偶数的是( )A12*3%5Blen(“Welcome”)Cint(3.9)Dabs(-8)6下列
2、不被python所支持的数据类型是( )AcharBfloatCintDlist7下列属于计算机编程语言的有( )Python Visual Basic Java C CPUABCD8下列可以导入Python模块的语句是( )Aimport moduleBinput moduleCprint moduleDdef module9在Python中,下面程序段的输出结果是( )x=9 Print(“x=”,x+1)A9B10Cx=9Dx= 1010在Python中以下语句正确的是( )。A51jb= 51jbBfor= 51jbCj,b=b,jD/这是一段测试代码11在Python语言中,用来定义
3、函数的关键字是( )。AreturnBdefCfunctionDimport12计算机能够直接识别和执行的语言是( )A机器语言B汇编语言CPython 语言DC语言13要实现将实数型变量a的值保留三位小数,以下python可以实现的是( )Aa%0.001Ba/0.001Cround(a,3)Dround(3,a)14以下不属于高级程序设计语言的是( )。AC+BVBC机器语言DPython15Python使用函数( )接收用 输入的数据Aaccept()Binput()Creadline()Dprint()16在Python中,显示出信息x,并要求输入数据的是( )。Aabs(x)Bflo
4、at(x)Cprint(x)Dinput(x)17下图是python34安装后目录文件的磁盘文件存储结构,下列说法错误的是( )A图中文件存储结构为树结构,python34为树的根结点(父节点)B图中python34根结点有4个子结点C图中python34根结点下有5个子树(子结点)D图中Tools是python34的子树(子结点)18在python中,下列属于字符串常量的是( )ApythonB3.14CcntD201819以下Python程序运行后的输出结果为( ) A0B45C46D36288020Python表达式“50-50%6*5/2*2”的结果为( )A48B25C0D4521在
5、Python中print(-14/4)的运行结果是( )。A-4B-3.5C2D-222下列python表达式结果为5的是( )Aabs(int(-5.6)Blen(3+5=6)Cord(5)Dround(5.9)23如下Python程序段 x = 0 while x 50: x = (x + 2) * (x + 3)运行后,x的值为( )A0B72C50D16824以下是一段python程序:它的可以用哪个流程图表达( )。ABC25以下选项中,不是Python中文件操作的相关函数是( )。Aopen ()Bload ()Cread ()Dwrite ()26下列与数学表达式对应的pytho
6、n表达式,正确的是( )。A( - b + math. sqrt (b * b 4 * a * c) /a * aB- b + math. sqrt (b * b 4 * a * c) /2*aC( -b + math. sqrt (b * 2 4 * a * c) /(2 * a)D( -b + math. sqrt ( b * b 4 * a * c) / (2 * a)27Python中幂运算(指数运算)的运算符为( )。A*B*C%D/28已知字符串a=python,则a1的值为( )ApBpyCPyDy29关于python发布代码及安装使用代码,下列说法错误的是()A创建一个文件夹m
7、ymodule,其中包含mymodule.py和setup.py(包含发布的元数据)两个文件B在DOS命令行中打开mymodule所在的目录,使用“python setup.py sdist”命令构建发布文件C已经构建发布的模块必须先导入程序,然后才能使用。导入时只能使用语句“import mymodule”,不可以用“from mymodule import *”D下载安装,使用“python setup.py install”命令安装到你的Python本地副本中30下列可以作为python变量名的是( )Aa1B6keyCFalseDi_f31以下是猜数游戏的 Python程序,请你补全代
8、码:请选择适当的代码填入程序处。( )AforBprintCelifDinput32下面Python代码运行后,a、b的值为( )a=23b=int(a/10)a=(a-b*10)*10b=a+bprint(a,b)A23 2B30 20C30 32D3 233关于下列Python程序段的说法正确的是( )k=1while 1: k+=1A存在语法错误,不能执行B执行1次C执行无限次D执行k次34运行下列Python程序i=1s=1while : s=s*i i+=2print(s)当输出结果为105时,则处应填入( )Ai=7Bi=7Di735下列python表达式中, 值为字符串类型的是(
9、 )Abs(x) “abc”*3 “123+45” 123+45 a=input(“请输入a的值:”)ABCD36在python中,有程序如下A=input()print(A * 5)通过键盘输入5,则运算结果是()A5 5 5 5 5B25C5*5D5 537把数式 写成Python语言的表达式,下列书写正确的是( )。Aa+b/2aBa+b/2*aC(a+b)/2*aD(a+b)/(2*a)38韦沐沐同学利用Python软件编制程序。初始时,他使用流程图描述算法,在设计输入、输出数据时使用的图例是( )ABCD39以下Python表达式中,哪项的值与其它三项不同( )Alen(“my na
10、me is james”.split()Bint(4.99)Csum(1,2,1,1)Dmax(1,2,3,4)40在Python程序设计语言中,用于输入和输出的函数分别是( )Aread( )和write()Binput( )和output()Cinput( )和print()Dcin( )和cout( )41以下文本框内是一段用Python程序设计语言编写的源代码,功能是输出200以内能被17整除的最大正整数。这段源代码属于( )。A程序B软件C指令D命令42以下Python代码输出结果中说法正确的是( )。x=0for i in range(1,100): x=x+iprint(x)A1
11、+100的和B1+99的和C199所有整数的和D1100所有整数的和43以下文本框内是一段用Python程序设计语言编写的源代码,功能是输出200以内能被17整除的最大正整数。这段源代码属于( )。A软件B程序C指令D高级语言44现有如下python程序段:for i in range( 6 ): p.append( int( random() * 10 ) + 1 )for i in range( 2, 6 ): if i % 2 = 1 and p i % 2 = 0: p i += p i - 1 elif i % 2 = 0 and p i % 2 = 1: p i -= p i -
12、1执行该程序段后,在下列选项中,列表p中的元素值不可能的是()A1, 2, 3, 4, 7, 2B1, 2, 14, -9, -5, 8C6, 8, 1, 4, 6, 10D6, 4, 14, -7, 3, 845队列在Python中,用( )实现队列的创建,队列的基本操作:( )( )( )( )线性数据结构又称线性表。A随机;入队;出队;求队长;判队空B列表;入队;出队;求队长;判队空C列表;随机;出队;求队长;判队空D入队;随机;列表;求队长;判队空46在用Python编程对数据进行分析的时候,代码pandas.DataFrame.sum( )执行的操作是 A返回所有列的和B返回所有行的
13、和C返回所有数据中的最大值D返回所有数据中的最小值47运行下列 Python程序,结果正确是( )a=32b=14c=a/bprint(c)A2.2B2C“2”D448已知字符串a=python,则print(a 1 +a 3 )的值为( )AythBytCpyDyh49在Python IDLE编辑器中书写正确的表达式( )Ab*2-4acB1/2gt2Cpi*r2D2*pi*r50关于Python语句P = P,以下选项中描述正确的是( )AP和P的负数相等BP和P的绝对值相等C将P赋值为它的相反数DP的值为0二、程序填空51编写程序。如图所示的算法,请用Python程序写出实现该算法相应的
14、代码。52(项目情境)一元二次方程ax2+bx+c=0(a0),当b24ac0,方程有两个不同的实数根,当b24ac0时,方程无实数根。(问题求解)下面的python程序实现的功能是判断方程是否有实数根。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。import matha=int(input(请输入a的值:)b=int(input(请输入b的值:)c=int(input(请输入c的值:)d=_ #将表达式b24ac的值赋给变量dif _ print(x1=,(-b+math.sqrt(d)/(2*a) #输出方程的其中一个实数根 print(x2=,(_) #输出方
15、程的另一个实数根else: _ #输出“方程无实数根”53编写Python程序实现如下功能:输入年月日,输入格式如“2021-06-21”,年月日之间用“-”分隔。判断这一天是这一年的第几天。以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的第几天。特殊情况,当输入的年份是闰年时,2月份有29天。闰年的判断方式如下:I、能被4整除,但不能被100整除;II、能被400整除;(1)“2020-05-20”这一天是这一年的第_天。(2)编写Python代码如下,在划线处填入正确的代码_(3)加框处的代码有误,请改正。改正:_mon=31, 28, 31, 30, 31, 30
16、,31, 31, 30, 31, 30,31 #mon 中存储1-12每个月的天数s=input(请输入年月日: )month=int(s5:7) sum=0for i in range( ):sum+=monisum+=dayif :isleap=Trueelse:isleap=Falseif sum+=1print(这一天是当年的第 +str (sum)+天)54阅读程序。分析以下两段Python程序并回答问题。#程序1i=1while i9): #计算时长费用6 Tot1=(T-9)*0.27 if(S=3.3): #算里程费用8 Tot2-89 else:10 Tot2=8+(S-3.
17、3)*1.3511 Cost-Totl+tot212 print(Cost) #输出总车费(3)小C写好代码之后,编译运行发现报错了,根据下图中所示的错误信息分析该程序报错的原因是:_。NameError Traceback(most recent call last)in9else:1011 Cost=Tot1+tot212NameError:nametot2is not defined(4)经过修改之后,小C对照某次滴滴打车的订单,将对应的公里数和时长输入程序,运行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。小C借助于计算机编写程序解决问题的这个过程是:设计算法编写程
18、序分析问题调试运行程序,合理的顺序是_。(填写序号即可)(5)总结用计算机解决问题的优势主要有:_。56学习了Python绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。代码如下:import turtleturtle. bgcolor(black)colors=red, green, blue, yellowfor x range(100):turtle. pencolor(colorsx%4)turtle. circle(x)turtle. left(90)请分析任务,完成下列题目。(1)程序中处应填写(_) 。Aprint Binpu
19、t Cin Dcolors(2)程序中x%4的作用是(_)。A计算x乘以4的结果B计算x除以4的整数部分C计算x除以4的小数部分D计算x除以4的余数(3)执行此程序,绘制出圆形的总颜色数是(_)。A1 B4 C5 D100(4)执行此程序,绘制出圆形的总个数是(_)。A1 B4 C99 D100(5)此程序属于程序设计结构中的(_)。A顺序结构 B分支结构C循环结构 D跳转结构57某字符转置算法描述如下:将字符串(均为大写字符)s依次转换为相对应的数值(字符AZ对应数值126);转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);每一段中K个数据与K
20、*K转置矩阵进行乘法运算;将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值126对应字符AZ),最后按原始字符串长度输出。乘法运算规则如下:第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2K)例如:字符串s=PYTHON,区块大小K=4,的转置过程如下:(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中()处)为_。(2)请在划线处填入合适代码。Private Sub Commandl_Click()Dim a(1 To 100)As Integer 存储字符串,长度不超过100个字符Dim b(1 To 100)
21、As Integer 存储转置矩阵,长度不超过 10*10Dim c(1 To 100)As LongDim s As String, tmp As StringDim k As Integer, t As Integer, i As Integer, j As IntegerDim n As Integer, m As Integer, lens As Integers=Textl. Text 在 Textl 中输入原始字符串k=Val(Text 2.Text) 在 Text 2 中输入区块大小KRandomizeFor i=1 To k2b(i)=Int(Rnd*9)1tmp=tmp十St
22、r(b(i)If i Mod k=0 ThenList 2. AddItem tmptmp= .End IfNext ilens=Len(s):n=lensFor i=1 To ntmp=Mid(s,i,1)_Listl. AddItem Str(a(i)Next iDo While n Mod k0n=n十1a(n)=0Listl. AddItem Str(a(n)LoopFor i=1 To nm=(i1)Mod k+1t=1Forj= _c(i)=a(j) * b(m-1) * k+t)+c(i)t=t1Next jNext i For i=1 To nList 3. AddItem S
23、tr(c(i)Next is=For i=1 To lens_s=s+Chr(t+64)Next iText 3.Text=s 在Text 3 中输出转置后的字符串End Sub58某种数据加密方法描述如下(加密前数据是ASCII字符):以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,8。数值变换:位置
24、变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算()规则:如果a、b两个值不相同,则ab结果为1;如果a、b两个值相同,则ab结果为0,即:00=0,10=1,01=1,11=0。把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是数组c36152847则数据位置变换如下:如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:变换前01110100
25、密钥m00100011变换后01010111(1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_(填二进制数据)。(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。Const n = 1024Dim c(1 To 8) As IntegerPrivate Sub Form _ Load()产生位置变换密钥数组c,代码略End SubFunction convert(c As Integer)As String程序功能:把整数c转成8位二进制数,代码略End FunctionPrivate Sub Command1_Click()
26、Dim s As String,st As String,ss As String,res As StringDim i As Integer,j As Integer start As IntegerDim a(1 To n) As String,b(1 To n) As Strings = Text1. Textst = convert(Val(Text2. Text)For i = 1 To Len(s)a(i) = Mid(s,i,1)Next ii = 1:start = -8Do While_If i Mod 8 = 1 Then start = start + 8b(i)=_i
27、= i + 1LoopFor j = i To Len(s)b(j) = a(j)Next jFor i = 1 To Len(s)_For j = 1 To 8If Mid(ss,j,1)= Mid(st,j,1)Thenres = res + 0 Else res = res + 1按位异或Next jNext iText3. Text = resEnd Sub59辗转相除法,又称欧几里德算法,用于计算两个正整数m、n的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。辗转相除法的算法步骤是,对于给定的两个正整数m、n(mn),用m除以n得到余数r,若余数r不为0,就将n和r构
28、成新的一对数(m=n,n=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根据下面算法回答问题。描述一描述二描述三输入两个正整数m,n(mn);计算m除以n所得的余数r;m=n,n=r;若r=0,则m,n的最大公约数等于m;否则转到步骤;输出最大公约数m;结束。(1)描述一是_描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。(2)在描述三中代码4到6行作用是_。(3)在描述三程序设计中,补充代码第8行划线处为_。60已知6月份10位技术考试成绩:1234567891
29、0788889908376759810065技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下:a=78,88,89,90,83,76,75,98,100,65_sum=0for i in range(n): if ai=80:_print(sum)执行上述程序段后,输出的内容是_61完善代码并保存。实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。cj= for i in range(0,_): x=float(input(请输入一个数) cj.append(_) print(max(cj), min(_)input(运行完毕,请按回车键退出.)62完善程序实现以下
30、功能并保存。输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+bx+c=0(a0)#请不要更改源程序的结构,删除原题里的、。填写正确的代码,使程序完善import matha=float(input(请输入方程系数a(!=0):)b=float(input(请输入方程系数b:)c=float(input(请输入方程系数c:)delta=b*b-4*a*cif delta_: x1=(-b+math.sqrt(delta)/(2*a) x2=(-b-math.sqrt(delta)/(2*a) print(方程有两个不同的解,x1,x2)elif delta=0: x1=_ pri
31、nt(方程有两个相同的解,x1)else: print(方程无解)input(运行完毕,请按回车键退出.)63程序设计:在舞会上,男生、女生各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。跳完后的两人重新回到队尾。例如:boyAlex,Steven,Jack,girlAda*,Babs.,Danla,Jane输出:Turn1:(Alex,Ada)Turn2:(Steven,Babs)Turn3:(Jack,Danla)Turn4:(Alex,jane)Turn12:(Jack,jane)代码如下:boyAlex,Steven,JackgirlAda,Babs,Danla,Ja
32、nefor i in range(12):x,y #出队 print(“Turn:2):(,).format(i1,x,y) boy.append( ) #再进队 girl.append( ) #再进队(1)程序代码中处正确的代码是(_)。Aboy.pop(l).girl.pop(l) Bgirl.pop(l),boy.pop(l)Cboy.pop(0),girl.pop(0) Dgirl.pop(0),boy.pop(0)(2)程序代码中处正确的代码是(_)。Ax By Ci Di1(3)程序代码中处正确的代码是(_)。Ax By Ci Di164求100以内素数。65编写一个程序,判定用户
33、输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。【参考答案】*试卷处理标记,请不要删除一、选择题1D【详解】本题主要考查Python输入函数。random()是随机函数,print()是输出函数,Cout() 函数是统计字符串里某个字符出现的次数,input()是输入函数,故本题选D选项。解析:D【详解】本题主要考查Python输入函数。random()是随机函数,print()是输出函数,Cout() 函数是统计字符串里某个字符出现的次数,input()是输入函数,故本题选D选项。2D【详解】本题考查的是Python程序调试。双分支IF语句。if (条件)后面要加
34、冒号,else后面也要加冒号。故标号4中存在语法错误。解析:D【详解】本题考查的是Python程序调试。双分支IF语句。if (条件)后面要加冒号,else后面也要加冒号。故标号4中存在语法错误。3B【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。print是Python的关键字,不是合法的标识符,故本题选B选项。解析:B【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。print是Python的关键字,不是合法的标识符,故本题选B选项。4D【详解】本题考查
35、Python程序执行输出c=0。a-b=7,a+b=21,a/b=2,a%b=0。故本题选D选项解析:D【详解】本题考查Python程序执行输出c=0。a-b=7,a+b=21,a/b=2,a%b=0。故本题选D选项5D【详解】本题主要考查Python表达式。12*3%5=1,len(“Welcome”)=7,int(3.9)=3,abs(-8)=8,故本题选D选项。解析:D【详解】本题主要考查Python表达式。12*3%5=1,len(“Welcome”)=7,int(3.9)=3,abs(-8)=8,故本题选D选项。6A【详解】本题主要考查Python数据类型。Python没有char类
36、型,一个字符也是字符串,故本题选A选项。解析:A【详解】本题主要考查Python数据类型。Python没有char类型,一个字符也是字符串,故本题选A选项。7C【详解】本题主要考查计算机编程语言。Python 、Visual Basic 、Java 、C均属于计算机编程语言,CPU是计算机核心组成部件,故本题选C选项。解析:C【详解】本题主要考查计算机编程语言。Python 、Visual Basic 、Java 、C均属于计算机编程语言,CPU是计算机核心组成部件,故本题选C选项。8A【详解】本题主要考查Python模块的导入。Python模块导入的关键字是import,故本题选A选项。解析
37、:A【详解】本题主要考查Python模块的导入。Python模块导入的关键字是import,故本题选A选项。9D【详解】本题主要考查Python程序输出语句。x=9,故Print(“x=”,x+1)(“x=”是字符型直接输出,x+1计算后输出对应结果)的输出结果是x= 10,故本题选D选项。解析:D【详解】本题主要考查Python程序输出语句。x=9,故Print(“x=”,x+1)(“x=”是字符型直接输出,x+1计算后输出对应结果)的输出结果是x= 10,故本题选D选项。10C【详解】本题主要考查Python语句。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。单行代码注释以#开始,语句j,b=b,j表示交换b与j的值,故本题选C选项。解析:C【详解】本题主要考查Python语句。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。单行代码注释以#开始,语句j,b=b,j表示交换b与j的值,故本题选C选项。11B【详解】本题主