Python期末试题题库完整图文word.docx
《Python期末试题题库完整图文word.docx》由会员分享,可在线阅读,更多相关《Python期末试题题库完整图文word.docx(15页珍藏版)》请在冰豆网上搜索。
Python期末试题题库完整图文word
Python期末试题题库完整_图文word
一、选择题
1.Python的设计具有很强的可读性,相比其他语言具有的特色语法有以下选项,正确的是()。
A.交互式B.解释型C.面向对象D.服务端语言
2.列表在python中的作用非常强大,它可以包含多个数据元素,下面是列表的数据元素()。
A.整数B.浮点数C.字符串D.以上都是
3.在Python中,设a=2,b=3,表达式a>bandb>=3的值是()
A.1B.-1C.TrueD.False
4.在Python中,设a=2,b=3,表达式a=3值是()
A.1B.0C.TrueD.False
5.Python程序中第一行:
a=int(input()),第二行:
print(a+5),运行程序后键盘输入3,输出结果是()。
A.5B.3C.8D.其他
6.在Python中要生成随机数,应该使用()。
A.math模块B.random模块
C.numpy模块D.pygame模块
7.要利用Python通过数组绘制拟合曲线图,必须要用到的外部库是()
A.time库
B.random库
C.turtle库
D.matplotlib库
8.在Python程序设计语言中,用于输入和输出的函数分别是()
A.read()和write( )B.input()和output( )
C.input()和print( )D.cin()和cout()
9.以下哪个不属于计算机操作系统()
A.DOSB.UnixC.PythonD.Linux
10.下列选项中,可作为Python变量名的是()
A.intB.AbcC.floatD.Complex
11.下列可以被计算机直接执行的程序是()
A.机器语言程序B.高级语言程序C.汇编语言程序D.Python源程序
12.已知字符串a="python",则a[-1]的值为()
A."p"B."n"C."y"D."o"
13.下列哪个语句在Python中是非法的?
( )
A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD.x+=y x=x+y
14.在Python中,正确的赋值语句是()
A.x+y=10B.x=2yC.x=y=50D.3y=x+1
15.下面不是python特性的是():
A.免费的B.简单易学C.可移植性好D.是低级语言
二、程序填空
16.阅读程序。
分析以下两段Python程序并回答问题。
#程序1
i=1
whilei<101:
print('把这句话打印100遍')
i+=1
#程序2
i=100
whilei:
print('把这句话打印100遍')
i=i-2
(1)在程序1中,i+=1这句话的含义是______________。
(2)在程序1中,‘把这句话打印100遍’实际输出了_____遍。
(3)在程序2中,i的初值是___。
(4)在程序2中,‘把这句话打印100遍’实际输出了_____遍。
(5)在程序2中,whilei的含义是_________。
17.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。
“奇校验”的原理:
在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。
例如:
接收到的每个字节及校验码
1的个数
传输正误
100101001
4
错误
011010101
5
正确
101011010
5
正确
根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。
请回答下列问题:
(1)若接收到的二进制码为“101011011”,传输过程__________(选填:
是/否)存在差错。
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
s=input("请输入9位二进制编码:
")
code={10:
"A",11:
"B",12:
"C",13:
"D",14:
"E",15:
"F"}
k=0;p=0;ans=“”
foriins:
#统计9位二进制编码中“1”的个数
k=k+int(i)
if____:
print("传输错误!
")
else:
print("传输正确!
")
forjinrange(0,8,4):
p=int(s[j:
j+4],2)
#int(x,[base]):
将x(字符串或者数字)按照base进制转换成整数
if0<=p<=9:
ans=ans+str(p)
else:
ans=___
print("字节编码用十六进制表示:
",___
18.学习了Python绘制图形操作后,信息小组接到了编程演示的任务。
为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。
代码如下:
importturtle
turtle.bgcolor("black")
colors=["red","green","blue","yellow"]
forx①range(100):
turtle.pencolor(colors[x%4])
turtle.circle(x)
turtle.left(90)
请分析任务,完成下列题目。
(1)程序中①处应填写(________)。
A.printB.inputC.inD.colors
(2)程序中x%4的作用是(________)。
A.计算x乘以4的结果
B.计算x除以4的整数部分
C.计算x除以4的小数部分
D.计算x除以4的余数
(3)执行此程序,绘制出圆形的总颜色数是(________)。
A.1B.4C.5D.100
(4)执行此程序,绘制出圆形的总个数是(________)。
A.1B.4C.99D.100
(5)此程序属于程序设计结构中的(________)。
A.顺序结构B.分支结构
C.循环结构D.跳转结构
19.密码强度检测。
编写python程序,实现如下功能:
输入要检测的密码,输出密码强度结果。
密码字符分为数字字符、字母和其他符号三类。
密码强度的检测方法为:
若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!
”。
若密码位数在8位及以上,则进行强度检测:
若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同的三类字符,则密码强度为“强”。
(1)若输入“12abcd5!
”,则输出结果为_________(选填,选字母:
A.密码位数不能少于8位,请重新输入!
/B.弱/C.中等/D.强)
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
password=input(“请输入要检测的密码:
”)
①_______________
ifn<8:
print(“密码位数不能少于8位,请重新输入!
”)
else:
n1=0
n2=0
n3=0
foriinrange(0,n,1):
②_______
if“0”<=ch<=“9”:
n1=1
elif“a”<=ch<=“z”or“A”<=ch<=“Z”:
n2=1
else:
n3=1
③_____
ifx==3:
print(“强”)
elifx==2:
print(“中等”)
else:
print(“弱”)
20.某字符转置算法描述如下:
将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);
·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);
每一段中K个数据与K*K转置矩阵进行乘法运算;
将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。
乘法运算规则如下:
第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)
例如:
字符串s=PYTHON,区块大小K=4,的转置过程如下:
(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。
(2)请在划线处填入合适代码。
PrivateSubCommandl_Click()
Dima(1To100)AsInteger´存储字符串,长度不超过100个字符
Dimb(1To100)AsInteger存储转置矩阵,长度不超过10*10
Dimc(1To100)AsLong
DimsAsString,tmpAsString
DimkAsInteger,tAsInteger,iAsInteger,jAsInteger
DimnAsInteger,mAsInteger,lensAsInteger
s=Textl.Text´在Textl中输入原始字符串
k=Val(Text2.Text)´在Text2中输入区块大小K
Randomize
Fori=1Tok^2
b(i)=Int(Rnd*9)+1
tmp=tmp十Str(b(i))
IfiModk=0Then
List2.AddItemtmp
tmp="".
EndIf
Nexti
lens=Len(s):
n=lens
Fori=1Ton
tmp=Mid(s,i,1)
①__________
Listl.AddItemStr(a(i))
Nexti
DoWhilenModk<>0
n=n十1
a(n)=0
Listl.AddItemStr(a(n))
Loop
Fori=1Ton
m=(i―1)Modk+1
t=1
Forj=②__________
c(i)=a(j)*b((m-1)*k+t)+c(i)
t=t+1
Nextj
Nexti
Fori=1Ton
List3.AddItemStr(c(i))
Nexti
s=″″
Fori=1Tolens
③__________
s=s+Chr(t+64)}
Nexti
Text3.Text=s´在Text3中输出转置后的字符串
EndSub
21.求100以内素数。
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.ABC
【详解】
本题考查Python特点的相关知识点
相比其他语言,Python具有交互式、解释型、面向对象的特色。
故本题选ABC
解析:
ABC
【详解】
本题考查Python特点的相关知识点
相比其他语言,Python具有交互式、解释型、面向对象的特色。
故本题选ABC
2.D
【详解】
本题考查的是python中的列表相关知识,列表可以包含任意类型的元素,可以在同一个列表中存储字符串、浮点类型、对象、复数类型等数据。
故选项D正确。
解析:
D
【详解】
本题考查的是python中的列表相关知识,列表可以包含任意类型的元素,可以在同一个列表中存储字符串、浮点类型、对象、复数类型等数据。
故选项D正确。
3.D
【详解】
本题主要考查Python表达式的运算。
逻辑运算符and两边都为真,值才为真,否则为假。
a=2,b=3,a>b值为假,b>=3值为真,故表达式a>bandb>=3的值是False,故
解析:
D
【详解】
本题主要考查Python表达式的运算。
逻辑运算符and两边都为真,值才为真,否则为假。
a=2,b=3,a>b值为假,b>=3值为真,故表达式a>bandb>=3的值是False,故本题选D选项。
4.C
【详解】
本题主要考查Python基本运算。
Python比较运算优先级高于逻辑运算,因此C选项正确。
【点睛】
解析:
C
【详解】
本题主要考查Python基本运算。
Python比较运算优先级高于逻辑运算,因此C选项正确。
【点睛】
5.C
【详解】
本题主要考查Python语句执行。
运行程序后键盘输入3,即a=3,执行print(a+5)后,输出结果是8,故本题选C选项。
解析:
C
【详解】
本题主要考查Python语句执行。
运行程序后键盘输入3,即a=3,执行print(a+5)后,输出结果是8,故本题选C选项。
6.B
【详解】
本题主要考查Python随机函数。
math模块提供了许多对浮点数的数学运算函数;random模块提供许多生成随机数的函数;numpy模块支持大量的维度数组与矩阵运算,此外也针对数组
解析:
B
【详解】
本题主要考查Python随机函数。
math模块提供了许多对浮点数的数学运算函数;random模块提供许多生成随机数的函数;numpy模块支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,pygame模块专为电子游戏设计,包含图像、声音等。
故在Python中要生成随机数,应该使用random模块,故本题选B选项。
7.D
【详解】
本题主要考查Python库。
time库是python处理时间数据的标准库,random库用于生成各种分布的随机数,turtle库是Python语言中一个很流行的绘制图像的函数库,mat
解析:
D
【详解】
本题主要考查Python库。
time库是python处理时间数据的标准库,random库用于生成各种分布的随机数,turtle库是Python语言中一个很流行的绘制图像的函数库,matplotlib库用于绘制曲线图,故本题选D选项。
8.C
【详解】
本题主要考查Python程序设计语言中的输入和输出函数。
input()函数返回值默认是字符串。
print()函数默认是输出后换行。
因此C选项正确。
【点睛】
解析:
C
【详解】
本题主要考查Python程序设计语言中的输入和输出函数。
input()函数返回值默认是字符串。
print()函数默认是输出后换行。
因此C选项正确。
【点睛】
9.C
【详解】
本题主要考查计算机软件系统。
DOS、Unix、Linux均是计算机操作系统,Python是程序开发软件,故本题选C选项。
解析:
C
【详解】
本题主要考查计算机软件系统。
DOS、Unix、Linux均是计算机操作系统,Python是程序开发软件,故本题选C选项。
10.B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故可作为Python变量名的是Abc,故本题选B选项。
解析:
B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字,故可作为Python变量名的是Abc,故本题选B选项。
11.A
【详解】
本题考查的是计算机程序语言。
计算机程序语言可以分为:
机器语言、汇编语言、高级语言。
其中机器语言是由0和1组成,可以被计算机直接执行。
故本题应选A。
解析:
A
【详解】
本题考查的是计算机程序语言。
计算机程序语言可以分为:
机器语言、汇编语言、高级语言。
其中机器语言是由0和1组成,可以被计算机直接执行。
故本题应选A。
12.B
【详解】
本题主要考查Python序列索引值。
任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。
解析:
B
【详解】
本题主要考查Python序列索引值。
任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。
13.B
【详解】
本题主要考查Python语句。
对于语句x=(y=z+1),y=z+1是一个赋值语句,作为一个整体没有返回值,x等于的是个空值,故该语句是非法的,故本题选B选项。
解析:
B
【详解】
本题主要考查Python语句。
对于语句x=(y=z+1),y=z+1是一个赋值语句,作为一个整体没有返回值,x等于的是个空值,故该语句是非法的,故本题选B选项。
14.C
【详解】
本题主要考查Python赋值语句。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
赋值语句是将等号右边的表达式赋给左边的变量,x=y=50等价于x=50,y=
解析:
C
【详解】
本题主要考查Python赋值语句。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
赋值语句是将等号右边的表达式赋给左边的变量,x=y=50等价于x=50,y=50,故正确的赋值语句是x=y=50,故本题选C选项。
15.D
【详解】
本题主要考查Python的特性。
Python特性有:
免费的、简单易学、可移植性好、是高级语言,故本题选D选项。
解析:
D
【详解】
本题主要考查Python的特性。
Python特性有:
免费的、简单易学、可移植性好、是高级语言,故本题选D选项。
二、程序填空
16.i=i+1无数遍100无数遍i!
=0或i>0或其他等价答案
【详解】
本题主要考查Python程序的执行与调试。
①在程序1中,i+=1这句话的含义是i=i+1(即i递增1)。
②i的初值为1,while循环条件i<101为真,会一直执行循环体,无法跳出循环体执行i+=1,故‘把这句话打印100遍’实际输出了无数遍。
③在程序2中,i的初值是100。
④i=100,whilei(即while100)一直为真,会一直执行循环体,无法跳出循环体执行i=i-2,故‘把这句话打印100遍’实际输出了无数遍。
⑤在程序2中,whilei的含义是i!
=0或i>0或其他等价答案
17.是k%2==0或(k+1)%2==1或(k-1)%2==1ans+code[p]ans
【详解】
本题主要考查Python程序的执行与调试。
①若接收到的二进制码为“101011011”,1的个数有6个,则传输过程存在差错。
②变量k统计1的个数,若k是偶数则表明传输错误,否则传输正确,故此处填k%2==0或(k+1)%2==1或(k-1)%2==1。
③如果p是1~9之间的数字,则直接将p拼接到ans中,否则从字典code中取对应的字母,故此处填ans+code[p]。
④变量ans保存转换后的十六进制,故此处填ans。
18.CDBDC
【详解】
本题主要考查Python程序调试。
①Python程序for循环格式是:
for变量inrange(),故程序中①处应填写in,选C选项。
②程序中x%4的作用是计算x除以4的余数,选D选项。
③colors=["red","green","blue","yellow"],依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。
④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。
⑤此程序属于程序设计结构中的循环结构,选C选项。
19.Dn=len(password)ch=password[i]x=n1+n2+n3
【详解】
本题主要考查Python程序的执行与调试。
①“12abcd5!
”含有三类字符,则输出结果为强,选D选项。
②此处取密码的长度,将其赋给变量n,len()是返回字符串的长度,故填n=len(password)。
③ch是取密码的每一位进行判断,故此处填ch=password[i]。
④当出现数字时n1=1,当出现字母时n2=1,当出现其他字符时n3=1,x用来统计有几类字符,故此处填x=n1+n2+n3。
20.①a(i)=Asc(tmp)-64或a(i)=Asc(tmp)-Asc("A")+1②i–m+1Toi–m+k③t=(c(i)–1)Mod26+1
【详解】
本题考查乘法运算规则的理解以及转置矩阵中行列数据的读取。
(1)根据算法描述,图中
(1)处的值为15×5+14×1+0×2+0×9=89。
(2)程序先随机生成数组b,其下标为1到k×k,并以行列的形式显示在列表框list2中(即为转置矩阵),然后读取大写字符串s中的每个字符,并将每个字符转换成相应字母表中的位置存储在数组a中。
代码①处为字符转成相应的字母表中位置值,下方代码将a(i)输出在列表框listl中,故此处应获取a(i)的值。
根据题干描述“字符A~Z对应数值1~26”,此处为将tmp获取的字符通过Asc函数进行转换,语句为“a(i)=Asc(tmp)-64”,还可以是“a(i)=Asc(tmp)-Asc(″A″)+1”。
代码②处为循环变量j的取值范围,根据乘法规则,变量j的范围是每一段中的1到k之间的值,需要获取每一段的起始位置下标,结合上文得到的m值,可得循环变量的范围是“i-m+1Toi-m十k”。
代码③处是将计算结果c(i)按原长度转换成相应大写字符,计算结果要求除以26取余,若直接写成c(i)Mod26,则导致数值26的结果为0,因此需要先减1,Mod后再加1这样的处理技巧,因此答案为“(c(i)-1)Mod26+1”。
21.foriinrange(1,100):
ifi>1:
forjinrange(2,i):
if(i%j)==0:
break
else:
print(i)
【详解】
本题主要考查Python程序设计。
可以通过for循环找出100以内的素数,用i依次整数2~i-1,如果能整除表明i不是素数,否则i为质数,具体代码如下:
foriinrange(1,100):
ifi>1:
forjinrange(2,i):
if(i%j)==0:
break
else:
print(i)