admin 管理员组

文章数量: 887021


2023年12月19日发(作者:php什么文件怎么打开)

(完整版)python二级考试试题2

一、选择题

1.下面的Python程序段运行后的输出结果是(

List=[‘10’,25,’猕猴桃’,9,65]

Print(List[3])

A.25 B.’猕猴桃’ C.猕猴桃

2.在python中,下列哪个选项是正确的赋值语句(

A.5s= 80 B.2018 =x C.a+b=c

3.下列Python程序段运行的结果是(

x=0

for i in range(1,20,3):

x=x+i

print(x)

A.80 B.190 C.70

4.以下是猜数游戏的 Python程序,请你补全代码:

请选择适当的代码填入程序①处。(

A.for B.print C.elif

5.在Python语言中,数据的输入是通过( )来实现的。

A.input( )函数 B.print( )函数

C.output( )函数 D.abs( )函数

6.Python表达式a=b中“=”表示

A.交换“=”左右两边变量的值

B.把“=”右边变量的值赋值给左边变量

C.把“=”左边变量的值赋值给右边变量

D.比较“=”左右两边变量的值是否相等

7.在Python IDLE编辑器中书写正确的表达式(

A.b**2-4ac B.1/2gt2 C.pi*r^2

8.在Python中运行后,b的值是

a=6

D.9

D.s=s+5

D.210

D.input

D.2*pi*r

If a>=0:

b=a+2

Else:

b=a-2

print(b)

A.6

A.12*3%5

C.int(3.9)

A.random() B.print()

B.8 C.10 D.12

9.下列 Python

表达式的值为偶数的是(

B.len(“Welcome”)

D.abs(-8)

C.Cout() D.input()

10.下列选项中,属于Python输入函数的是(

)。

11.以下叙述中正确的是( )。

A.Python 3.x与Python 2.x兼容

B.Python语句只能以程序方式执行

C.Python是解释型语言

D.Python语言出现得晚,具有其他高级语言的一切优点

12.Python文件的后缀名是(

)。

A..doc

A.a≤ x or x < b

A.abs(x)

B..vbp

B.a<= x and x < b

B.bin(x)

C..py

C.a≤x and x< b

C.all(x)

D..exe

D.a<=x or x

D.input(x)

13.在python语言中表示“x属于区间[a,b)”

的正确表达式是(

14.在Python中,返回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

("三位数之内的水仙花是:")

for x in___(100,1000):

b=x//100

s=(x//10)___

g=___

If x=(b**3 +s**3+g**3):

print(___)

18.若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5

就是一对双胞胎数。编写

python

程序,实现如下功能:输入 n

的值,统计显示 n

以内的所有双胞胎数。程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。

import math

def isprime(x):

______

for i in range(2,int((x))+1):

if x % i = = 0 :

f=False

return f

n=int(input("请输入一个正整数 n:"))

c=0

k=3

while k < = n-2:

if isprime( 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)请在划线处填入合适代码。

Private Sub Commandl_Click()

Dim a(1 To 100)As Integer

´存储字符串,长度不超过100个字符

Dim b(1 To 100)As Integer

存储转置矩阵,长度不超过 10*10

Dim c(1 To 100)As Long

Dim s As String, tmp As String

Dim k As Integer, t As Integer, i As Integer, j As Integer

Dim n As Integer, m As Integer, lens As Integer

s=Textl. Text

´在 Textl

中输入原始字符串

k=Val(Text )

´在 Text 2

中输入区块大小K

Randomize

For i=1 To k^2

b(i)=Int(Rnd*9)+1

tmp=tmp十Str(b(i))

If i Mod k=0 Then

List 2. AddItem tmp

tmp="" .

End If

Next i

lens=Len(s):n=lens

For i=1 To n

tmp=Mid(s,i,1)

①__________

Listl. AddItem Str(a(i))

Next i

Do While n Mod k<>0

n=n十1

a(n)=0

Listl. AddItem Str(a(n))

Loop

For i=1 To n

m=(i―1)Mod k+1

t=1

Forj=

②__________

c(i)=a(j) * b((m-1) * k+t)+c(i)

t=t+1

Next j

Next i

For i=1 To n

List 3. AddItem Str(c(i))

Next i

s=″″

For i=1 To lens

③__________

s=s+Chr(t+64)}

Next i

Text =s

´在Text 3

中输出转置后的字符串

End Sub

20.完善程序实现以下功能并保存。

输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax+bx+c=0(a≠0)

2

#请不要更改源程序的结构,删除原题里的①、②。填写正确的代码,使程序完善

import math

a=float(input("请输入方程系数a(!=0):"))

b=float(input("请输入方程系数b:"))

c=float(input("请输入方程系数c:"))

delta=b*b-4*a*c

if delta>________:

x1=(-b+(delta))/(2*a)

x2=(-(delta))/(2*a)

print("方程有两个不同的解",x1,x2)

elif delta==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相关知识点

Python 3.x与Python 2.x版本不同,不兼容。故选项A说法错误

Python语句也可以使用脚本直接运行。故选项B说法错误

Python是解

解析:C

【详解】

本题考查Python相关知识点

Python 3.x与Python 2.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<= x and x < b,故本题选B选项。

解析:B

【详解】

本题主要考查Python表达式。在python语言中表示“x属于区间[a,b)”

的正确表达式是a<= x and x < b,故本题选B选项。

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 -*-

import random

import math

def monteCarlo(N):

i = 0

count = 0

while i <= N:

x = ()

y = ()

if pow(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 -*-import randomimport mathdef

monteCarlo(N): i = 0 count = 0 while i <= N: x = () y = () if pow(x,

2) + pow(y, 2) < 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)

17.range %10 x% 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 = True

isprime(k+2)

k=k+1 或 k+=1 或 k=k+2 或 k+=2

【详解】

本题主要考查Python程序的执行与调试。①isprime(x)用来判断x是不是素数,通过用x整除2~int((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+1To i–m+k

③t=(c(i)–1) Mod 26+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+1 To i-m十k”。代码③处是将计算结果c(i)按原长度转换成相应大写字符,计算结果要求除以26取余,若直接写成c(i)Mod 26,则导致数值26的结果为0,因此需要先减1,Mod后再加1这样的处理技巧,因此答案为“(c(i)-1)Mod

26+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("请输入需要打印的层数:"))

for x in range(1,layer+1):

for y in range (1,x+1):

print("*", end="")

print("")

【详解】

本题主要考查Python循环结构。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。range可以生成一个整数列表,列表范围根据接收的layer来确定。外层循环用于确定输出行数,内层循环用于控制每行符号个数。

【点睛】


本文标签: 本题 考查 程序 函数 方法