Python期末试题A 精品.docx
- 文档编号:11959477
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:18
- 大小:910.45KB
Python期末试题A 精品.docx
《Python期末试题A 精品.docx》由会员分享,可在线阅读,更多相关《Python期末试题A 精品.docx(18页珍藏版)》请在冰点文库上搜索。
Python期末试题A精品
Python期末试题A精品
一、选择题
1.运行下列Python程序,输出结果为True,则空白处应为()
a=15
b=46
if__________:
print(‘True’)
else:
print(‘Flase’)
A.a=bB.a>bC.a 2.在python中,有程序如下 A=input() print(A*5) 通过键盘输入5,则运算结果是() A.55555B.25C.5*5D.55 3.在Python中,表达式a**3+b**3+c**3==100*a+10*b+c属于() A.算术表达式B.关系表达式C.逻辑表达式D.日期表达式 4.有如下VB程序段: s1="python": s2="visual" i=1: j=1: s="" DoWhilei<=Len(s1)Andj<=Len(s2) IfMid(s1,i,1)>=Mid(s2,j,1)Then s=s+Mid(s1,i,1) Else j=j+1 EndIf i=i+1 Loop 执行该程序后,j的值是() A.2B.3C.5D.7 5.小平打算用python编写一个管理班上同学通讯录的程序,如果用一个变量A来对应处理同学们的电话号码,这个变量A定义成什么数据类型比较适合? ()。 A.布尔型B.浮点型C.整型D.字符串 6.如图Python代码执行后,a,b的值分别为: () A.5,10B.10,5C.5,5D.10,10 7.运行下列Python程序,结果正确的是() a=32 b=14 c=a%b print(c) A.2B.4C.32D.14 8.对于Python语言中的语句“x=(num//100)%10”,当num的值为45376时,x的值应为() A.3B.4C.5D.6 9.在Python语言中,用来定义函数的关键字是()。 A.returnB.defC.functionD.import 10.以下python程序段运行后,y的值是() x=3 ifx>3: y=2*x else: y=3*x+1 print(y) A.10B.5C.25D.26 11.关于python程序设计语言,下列说法错误的是() A.python是一种面向对象的编程语言B.python代码只能在交互环境中运行 C.python具有丰富和强大的库D.python是一种解释型的计算机程序设计高级语言 12.在python中,下列属于字符串常量的是() A."python"B.3.14C.cntD.2018 13.已知字符串a="python",则a[-1]的值为() A."p"B."n"C."y"D."o" 14.Python文件的后缀名是() A.pdfB.doC.passD.py 15.在Python中要交换变量a和b中的值,应使用的语句组是() A.a,b=b,aB.a=c;a=b;b=c C.a=b;b=aD.c=a;b=a;b=c 二、程序填空 16.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。 为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。 一般情况下,规模N=1时,问题的解是已知的。 已知: 从1到n的连续自然数相乘的积、叫做阶乘、用符号n! 表示。 如5! =1×2×3×4×5,规定0! =1。 我们用递归算法可以较容易求n的阶乘。 求n的阶乘算法可以描述如下: n! =n*(n-1)! (n-1)! =(n-1)*(n-2)! (n-2)! =(n-2)*(n-3)! 2! =2*1! 1! =0! 0! =1 如果把n! 写成函数形式,即f(n),f(n)=n*f(n-1)。 如f(5)就是表示5! ,求5! 的过程可以写成如下形式: f(5)=5*f(4)f(4)=4*f(3)f(3)=3*f (2)f (2)=2*f (1)f (1)=1 (问题求解)在python中用递归算法求1! +2! +……+n! (n的值为整数,从键盘输入)。 请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 deff(n): ifn==0: return1 else: return_________ s=0 n=int(input("请输入n: ")) foriin_______: s=________ print(s) 17.某字符转置算法描述如下: 将字符串(均为大写字符)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 18.完善程序实现以下功能并保存。 输出数组的最大值。 arr1=[12,435,76,24,78,54,866,43] ________=-32768 foriinrange(0,7): ifarr1[i]>max1: max1=________ print("最大值是: ",________) input("运行完毕,请按回车键退出...") 19.操作说明: 编写一个程序实现以下功能,将程序以“Y: /3/3.py”作为文件名保存。 题目: 设计100以内的数中能同时被3或5整除的个数。 20.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。 21.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”, 请输入以下代码,自己输入数据运行,结果截图提交 【参考答案】***试卷处理标记,请不要删除 一、选择题 1.C 【详解】 本题考查Python程序调试 a 故本题选C选项 解析: C 【详解】 本题考查Python程序调试 a 故本题选C选项 2.A 【详解】 本题考查Python算法及其程序实现。 input()函数接收的是字符串,故print(A*5)时,输出5个A里存储的字符串。 通过键盘输入5,则运算结果是: 55555,选项 解析: A 【详解】 本题考查Python算法及其程序实现。 input()函数接收的是字符串,故print(A*5)时,输出5个A里存储的字符串。 通过键盘输入5,则运算结果是: 55555,选项A正确。 3.B 【详解】 本题主要考查Python表达式的运算。 “==”是关系运算符,用于判断左右两边的表达式值是否相等,故该表达式是关系表达式,故本题选B选项。 解析: B 【详解】 本题主要考查Python表达式的运算。 “==”是关系运算符,用于判断左右两边的表达式值是否相等,故该表达式是关系表达式,故本题选B选项。 4.C 【详解】 本题主要考查VB程序的执行。 分析程序可知,变量i控制从s1中取字符,变量j从s2中取字符,依次比较字符串s1、s2的每一个字符,若s1中的字符大于或等于s2中的字符,则将s1中对应的字 解析: C 【详解】 本题主要考查VB程序的执行。 分析程序可知,变量i控制从s1中取字符,变量j从s2中取字符,依次比较字符串s1、s2的每一个字符,若s1中的字符大于或等于s2中的字符,则将s1中对应的字符拼接到变量s中,否则变量j递增。 第一遍循环,i=1,j=1,“p”<“v”,j=j+1=2,i=i+1=2;第二遍循环,“y”>“i”,i=i+1=3;第三遍循环,“t”>“i”,i=i+1=4;第四遍循环,“h”<“i”,j=j+1=3,i=i+1=5;第五遍循环,“o”<“s”,j=j+1=4,i=i+1=6;第六遍循环,“n”<“u”,j=j+1=5,i=i+1=7,循环结束,故执行该程序后,j的值是5,故本题选C选项。 5.D 【详解】 本题考查的是数据类型。 A.布尔型用于表示真(对)或假(错),A错误;B.浮点型,即带小数点的数字都称为浮点数,B错误;C.整型用于执行加(+)减(-)乘(*)除(/)运 解析: D 【详解】 本题考查的是数据类型。 A.布尔型用于表示真(对)或假(错),A错误;B.浮点型,即带小数点的数字都称为浮点数,B错误;C.整型用于执行加(+)减(-)乘(*)除(/)运算;C错误;D.字符串能够灵活表示一串数据,长度大小灵活多变,存储电话号码位数较多,故D比较合适。 故选D。 6.B 【详解】 本题主要考查Python程序的执行。 a=5,b=10,c=a=5,a=b=10,b=c=5,故代码执行后,a,b的值分别为: 10和5,故本题选B选项。 解析: B 【详解】 本题主要考查Python程序的执行。 a=5,b=10,c=a=5,a=b=10,b=c=5,故代码执行后,a,b的值分别为: 10和5,故本题选B选项。 7.B 【详解】 本题考查Python程序执行 a%b=32%14=4(%取余)。 故本题选B选项 解析: B 【详解】 本题考查Python程序执行 a%b=32%14=4(%取余)。 故本题选B选项 8.A 【详解】 本题主要考查Python语句。 num=45376,x=(45376//100)%10=453%10=3,故x的值应为3,故本题选A选项。 解析: A 【详解】 本题主要考查Python语句。 num=45376,x=(45376//100)%10=453%10=3,故x的值应为3,故本题选A选项。 9.B 【详解】 本题主要考查Python关键字。 return[表达式]结束函数,选择性地返回一个值给调用方;def用来定义函数;import用来导入模块,故本题选B选项。 解析: B 【详解】 本题主要考查Python关键字。 return[表达式]结束函数,选择性地返回一个值给调用方;def用来定义函数;import用来导入模块,故本题选B选项。 10.A 【详解】 本题主要考查Python程序的执行。 x=3,不满足x>3,执行y=3*x+1=10,故本题选A选项。 解析: A 【详解】 本题主要考查Python程序的执行。 x=3,不满足x>3,执行y=3*x+1=10,故本题选A选项。 11.B 【详解】 本题主要考查Python程序设计语言。 python是一种面向对象的编程语言,python代码可以在交互环境中运行,python具有丰富和强大的库,python是一种解释型的计算机程序设 解析: B 【详解】 本题主要考查Python程序设计语言。 python是一种面向对象的编程语言,python代码可以在交互环境中运行,python具有丰富和强大的库,python是一种解释型的计算机程序设计高级语言,故本题选B选项。 12.A 【详解】 本题主要考查Python数据类型。 "python"是字符串常量,3.14、2018是数值型常量,cnt是变量,故本题选A选项。 解析: A 【详解】 本题主要考查Python数据类型。 "python"是字符串常量,3.14、2018是数值型常量,cnt是变量,故本题选A选项。 13.B 【详解】 本题主要考查Python序列索引值。 任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。 解析: B 【详解】 本题主要考查Python序列索引值。 任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。 14.D 【详解】 本题主要考查Python文件知识点。 Python文件的后缀名是py,故本题选D选项。 解析: D 【详解】 本题主要考查Python文件知识点。 Python文件的后缀名是py,故本题选D选项。 15.A 【详解】 本题考查Python语句。 在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。 解析: A 【详解】 本题考查Python语句。 在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。 二、程序填空 16.n*f(n-1)range(1,n+1)s+f(i) 【详解】 本题主要考查Python程序的执行与调试。 ①此处是定义递归函数f(n),由题干,当n=0时,返回1,否则返回n*f(n-1),故此处填n*f(n-1)。 ②用递归算法求1! +2! +……+n! ,故变量i的范围应是1—n,foriinrange(1,n+1)表示i的范围是[1,n],故此处填range(1,n+1)。 ③循环体实现累加,将每一项阶乘f(i)加到s中,故此处填s+f(i)。 17.①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”。 18.max1arr1[i]max1 【详解】 本题主要考查Python程序执行与调试。 变量max1用来保存数组的最大值,初始值赋值为最小值-32768,第一空填max1,通过for循环依次比较当数组元素大于max1时,更新max1的值为该元素继续循环直到与所有元素比较完,第二空填arr1[i],最后输出最大值是max1,故第三空填max1。 19.c=0 print("能同时被3或5整除的数是: ",end="") foriinrange(1,101): ifi%3==0andi%5==0: c+=1 print(i,end="") print("") print("能同时被3或5整除的个数是: "+str(c)) 【详解】 本题主要考查Python程序设计。 设计100以内的数中能同时被3或5整除的个数,使用for循环变量i的范围是从1~99,用变量c统计能同时被3或5整除的个数,如果满足if判断条件,则变量c递增,循环完输出c的值,具体代码及运行结果如下: 20.s=input("请输入要转换的字符) c=len(s)#len求字符串长度 foriinrange(0,c): ifi<2: print(chr(ord(s[i])+2))#ordord()函数是chr()函数配对函数,将字符转ASCII值 else: print(chr(ord(s[i])+3)) 【详解】 本题主要考查程序设计。 题干要求可通过Python程序条件分支结构实现,具体代码如下: s=input("请输入要转换的字符) c=len(s)#len求字符串长度 foriinrange(0,c): ifi<2: print(chr(ord(s[i])+2))#ordord()函数是chr()函数配对函数,将字符转ASCII值 else: print(chr(ord(s[i])+3)) 21. 【详解】 本题主要考查Python程序的执行与调试。 运行结果如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python期末试题A 精品 Python 期末 试题