完整版python二级考试试题2.docx
- 文档编号:6109860
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:15
- 大小:216.07KB
完整版python二级考试试题2.docx
《完整版python二级考试试题2.docx》由会员分享,可在线阅读,更多相关《完整版python二级考试试题2.docx(15页珍藏版)》请在冰豆网上搜索。
完整版python二级考试试题2
(完整版)python二级考试试题2
一、选择题
1.下面的Python程序段运行后的输出结果是()
List=[‘10’,25,’猕猴桃’,9,65]
Print(List[3])
A.25B.’猕猴桃’C.猕猴桃D.9
2.在python中,下列哪个选项是正确的赋值语句()
A.5s=80B.2018=xC.a+b=cD.s=s+5
3.下列Python程序段运行的结果是()
x=0
foriinrange(1,20,3):
x=x+i
print(x)
A.80B.190C.70D.210
4.以下是猜数游戏的Python程序,请你补全代码:
请选择适当的代码填入程序①处。
()
A.forB.printC.elifD.input
5.在Python语言中,数据的输入是通过( )来实现的。
A.input()函数B.print()函数
C.output()函数D.abs()函数
6.Python表达式a=b中“=”表示()
A.交换“=”左右两边变量的值
B.把“=”右边变量的值赋值给左边变量
C.把“=”左边变量的值赋值给右边变量
D.比较“=”左右两边变量的值是否相等
7.在PythonIDLE编辑器中书写正确的表达式()
A.b**2-4acB.1/2gt2C.pi*r^2D.2*pi*r
8.在Python中运行后,b的值是()
a=6
Ifa>=0:
b=a+2
Else:
b=a-2
print(b)
A.6B.8C.10D.12
9.下列Python表达式的值为偶数的是()
A.12*3%5B.len(“Welcome”)
C.int(3.9)D.abs(-8)
10.下列选项中,属于Python输入函数的是()。
A.random()B.print()C.Cout()D.input()
11.以下叙述中正确的是()。
A.Python3.x与Python2.x兼容
B.Python语句只能以程序方式执行
C.Python是解释型语言
D.Python语言出现得晚,具有其他高级语言的一切优点
12.Python文件的后缀名是()。
A..docB..vbpC..pyD..exe
13.在python语言中表示“x属于区间[a,b)”的正确表达式是()
A.a≤xorx 14.在Python中,返回x的绝对值的函数是()。 A.abs(x)B.bin(x)C.all(x)D.input(x) 15.Python输入函数为()。 A.time()B.round()C.input()D.print() 二、程序填空 16.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。 请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。 17.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如: 1**3+5**3+3**3=153。 这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。 [问题求解]设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。 需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。 请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。 print("三位数之内的水仙花是: ") forxin___(100,1000): b=x//100 s=(x//10)___ g=___ Ifx=(b**3+s**3+g**3): print(___) 18.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。 编写python程序,实现如下功能: 输入n的值,统计显示n以内的所有双胞胎数。 程序运行界面如图所示: 实现上述功能的程序如下,请在划线处填入合适的代码。 importmath defisprime(x): ______ foriinrange(2,int(math.sqrt(x))+1): ifx%i==0: f=False returnf n=int(input("请输入一个正整数n: ")) c=0 k=3 whilek<=n-2: ifisprime(k)and______________: c+=1 print("第"+str(c)+"对双胞胎数: ",k,'和',k+2) _______ print("共有"+str(c)+"对双胞胎数") 划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。 19.某字符转置算法描述如下: 将字符串(均为大写字符)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 20.完善程序实现以下功能并保存。 输入一元二次方程的系数a,b,c的值,求解一元二次方程ax2+bx+c=0(a≠0) #请不要更改源程序的结构,删除原题里的①、②。 填写正确的代码,使程序完善 importmath a=float(input("请输入方程系数a(! =0): ")) b=float(input("请输入方程系数b: ")) c=float(input("请输入方程系数c: ")) delta=b*b-4*a*c ifdelta>________: x1=(-b+math.sqrt(delta))/(2*a) x2=(-b-math.sqrt(delta))/(2*a) print("方程有两个不同的解",x1,x2) elifdelta==0: x1=________ print("方程有两个相同的解",x1) else: print("方程无解") input("运行完毕,请按回车键退出...") 21.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。 * ** *** **** 【参考答案】***试卷处理标记,请不要删除 一、选择题 1.D 【详解】 本题主要考查Python程序的执行。 列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。 解析: D 【详解】 本题主要考查Python程序的执行。 列表的索引是从0开始的,故List[3]=9,故段运行后的输出结果是9,故本题选D选项。 2.D 【详解】 本题主要考查Python赋值语句。 “5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。 解析: D 【详解】 本题主要考查Python赋值语句。 “5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。 3.C 【详解】 本题主要考查Python程序的执行。 变量i的范围是从1~20,每次递增3,故x=0+1+4+7+10+13+16+19=70,输出x为70,故程序段运行的结果是70,故本题选C选项。 解析: C 【详解】 本题主要考查Python程序的执行。 变量i的范围是从1~20,每次递增3,故x=0+1+4+7+10+13+16+19=70,输出x为70,故程序段运行的结果是70,故本题选C选项。 4.C 【详解】 本题主要考查Python分支结构。 分析程序可知,该程序采用多分支结构,故程序①处应填elif,故本题选C选项。 解析: C 【详解】 本题主要考查Python分支结构。 分析程序可知,该程序采用多分支结构,故程序①处应填elif,故本题选C选项。 5.A 【详解】 本题考查的是Python函数。 input()是输入函数,print()是输出函数,abs()是绝对值函数。 故选项A正确。 解析: A 【详解】 本题考查的是Python函数。 input()是输入函数,print()是输出函数,abs()是绝对值函数。 故选项A正确。 6.B 【详解】 本题主要考查Python赋值语句。 Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。 解析: B 【详解】 本题主要考查Python赋值语句。 Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。 7.D 【详解】 本题主要考查Python表达式知识点。 书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t* 解析: D 【详解】 本题主要考查Python表达式知识点。 书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t**2,pi*r**2,2*pi*r是正确的表达式,故本题选D选项。 8.B 【详解】 本题主要考查Python程序的执行。 a=6,满足a>=0,执行b=a+2=8,故在Python中运行后,b的值是8,故本题选B选项。 解析: B 【详解】 本题主要考查Python程序的执行。 a=6,满足a>=0,执行b=a+2=8,故在Python中运行后,b的值是8,故本题选B选项。 9.D 【详解】 本题主要考查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选项。 10.D 【详解】 本题主要考查Python输入函数。 random()是随机函数,print()是输出函数,Cout()函数是统计字符串里某个字符出现的次数,input()是输入函数,故本题选D选项。 解析: D 【详解】 本题主要考查Python输入函数。 random()是随机函数,print()是输出函数,Cout()函数是统计字符串里某个字符出现的次数,input()是输入函数,故本题选D选项。 11.C 【详解】 本题考查Python相关知识点 Python3.x与Python2.x版本不同,不兼容。 故选项A说法错误 Python语句也可以使用脚本直接运行。 故选项B说法错误 Python是解 解析: C 【详解】 本题考查Python相关知识点 Python3.x与Python2.x版本不同,不兼容。 故选项A说法错误 Python语句也可以使用脚本直接运行。 故选项B说法错误 Python是解释型语言。 故本题选C选项 Python不具有其他高级语言的一切优点。 故选项D说法错误 12.C 【详解】 本题主要考查Python相关知识点知识点。 .doc是文字处理软件(word后缀名),.vbp是VisualBasic工程文件后缀名,.exe是可执行文件后缀名,.py是Python文件 解析: C 【详解】 本题主要考查Python相关知识点知识点。 .doc是文字处理软件(word后缀名),.vbp是VisualBasic工程文件后缀名,.exe是可执行文件后缀名,.py是Python文件的后缀名,故本题选C选项。 13.B 【详解】 本题主要考查Python表达式。 在python语言中表示“x属于区间[a,b)”的正确表达式是a<=xandx 解析: B 【详解】 本题主要考查Python表达式。 在python语言中表示“x属于区间[a,b)”的正确表达式是a<=xandx 14.A 【详解】 本题主要考查Python标准函数。 在Python中,返回x的绝对值的函数是abs(x),bin()返回一个整数或者长整数的二进制表示,all()函数用于判断给定的可迭代参数中的所有 解析: A 【详解】 本题主要考查Python标准函数。 在Python中,返回x的绝对值的函数是abs(x),bin()返回一个整数或者长整数的二进制表示,all()函数用于判断给定的可迭代参数中的所有元素是否都为TRUE,input(x)是输入函数,故本题选A选项。 15.C 【详解】 本题考查的是Python函数。 input()是输入函数,print()是输出函数。 故选项C正确。 解析: C 【详解】 本题考查的是Python函数。 input()是输入函数,print()是输出函数。 故选项C正确。 二、程序填空 16.原理: 通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。 对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。 一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。 方法: 蒙特卡罗方法的解题过程可以归结为三个主要步骤: 构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 利用蒙特卡洛方法实现求解圆周率 #! /usr/bin/Python #-*-coding: utf-8-*- importrandom importmath defmonteCarlo(N): i=0 count=0 whilei<=N: x=random.random() y=random.random() ifpow(x,2)+pow(y,2)<1: count+=1 i+=1 pi=4*count/N print(pi) monteCarlo(1000000) 【详解】 本题考查的知识点是Python程序。 原理: 通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。 对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。 一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。 方法: 蒙特卡罗方法的解题过程可以归结为三个主要步骤: 构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 利用蒙特卡洛方法实现求解圆周率#! /usr/bin/Python#-*-coding: utf-8-*-importrandomimportmathdefmonteCarlo(N): i=0count=0whilei<=N: x=random.random()y=random.random()ifpow(x,2)+pow(y,2)<1: count+=1i+=1pi=4*count/Nprint(pi)monteCarlo(1000000) 17.range%10x%10或x-b*100-s*10或其它同等答案x 【详解】 本题考查的是Python程序设计。 水仙花数是指一个三位数,故使用range函数遍历100~999;s存放的是十位数,故可以选对x取整后再除以10求余,故第二空应填%10(求余符号%);g是存放个位,直接除以10求余,或减去前面整百和整十的数,故第三空为: x%10或x-b*100-s*10或其它同等答案;如果找到满足条件的数,则输出,故第四空为: x。 18.f=Trueisprime(k+2)k=k+1或k+=1或k=k+2或k+=2 【详解】 本题主要考查Python程序的执行与调试。 ①isprime(x)用来判断x是不是素数,通过用x整除2~int(math.sqrt(x)),如果余数为0则表明该数不是素数,赋值f为假退出循环,f的初值为True,故第一空填f=True。 ②若两个素数之差为2,则该对素数称为双胞胎数,此处判断相差为2的两个数是不是素数,故第二空填isprime(k+2)。 ③素数都是奇数,此处需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+1或k+=1或k=k+2或k+=2。 19.①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”。 20.-b/(2*a) 【详解】 本题主要考查Python程序执行与调试。 ①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。 ②delta=0,则方程有两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。 21.layer=int(input("请输入需要打印的层数: ")) forxinrange(1,layer+1): foryinrange(1,x+1): print("*",end="") print("") 【详解】 本题主要考查Python循环结构。 Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。 range可以生成一个整数列表,列表范围根据接收的layer来确定。 外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 python 二级 考试 试题