2024年4月29日发(作者:)
【编程】计算机二级Python真题及答案解析2word程序填空阅读填空程序试
题
一、程序填空
1.完善程序实现如下功能并保存:
有
5
个人坐在一起,第
5
个人说他比第
4
个人小
3
岁;第
4
个人说他比第
3
个人小
3
岁;
第
3
个人说他比第
2
个人小
3
岁;第
2
个人又说他比第
1
个人小
3
岁;第
1
个人说他是
38
岁。编写程序,计算出第
5
个人的年龄并显示。
def age(n):
if n == 1: c = ________
else: c = age(n - 1) - 3
return ________
print("
第
5
人的年龄
:"
,
age(________))
input("
运行完毕,请按回车键退出
...")
2.程序编写
求
1+2
2
+3
2
+
……
+100
2
的结果
_______________________________
_______________________________
_______________________________
_______________________________
input
(“运行完毕,请按回车键退出
...
”)
3.阅读程序。分析有关多项式的代码并回答问题。
求
1
!
+2
!
+3
!
+
……
+20
!的和。
n=0
s=0
t=1
for n in range
(
1,21
):
t*=n
s+=t
print(s)
(
1
)
n
的作用是
________________
。
(
2
)
s
的作用是
______________
。
(
3
)
t
的初值必须赋值为
1
,这是因为
_________
。
(
4
)
t*=n
的等价语句是
__________
(
5
)
s+=t
的等价语句是
______
。
4.完善程序。以下是计算
S=1+6+11+
…
+101
的程序代码。请你在处填写正确的语句。
s=0
k=1
while(k<=101)
__
s=0
k=1
while(k<101):
k=k+5
s=s+k
print(s+1)
5.调试程序。请阅读以下程序并写出运行结果。
fruites=['banana','apple','mango']
for fruit in fruites:
print(fruit)
a=len(fruites)
print('a=',a)
_________________
6.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:
今有鸡翁一
,
直钱五;鸡母一
,
直钱三;鸡雏三
,
直钱一。凡百钱
,
买鸡百只。问鸡翁、母、雏
各几何?这个问题就是著名的“百钱买百鸡问题”。即:现有
100
文钱,公鸡
5
文钱一
只,母鸡
3
文钱一只,小鸡一文钱
3
只,要求:公鸡,母鸡,小鸡都要有,把
100
文钱买
100
只鸡,买的鸡是整数。问公鸡、母鸡和小鸡各几何?
(问题求解)设用变量
g
、
m
、
x
三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下
程序,在空白处填写适当的表达式或语句,使程序完整。
for g in range(1,20):
for m in _______:
for x in range(3,98,3):
if _________ and __________ ==100:
print("
公鸡:
",g,"
母鸡:
",m,"
小鸡:
",x)
7.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果
正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。
8.输入三个同学的成绩,然后大到小排列。
9.编写一个程序,判定用户输入的两个数
a
和
b
,如果用户输入的第一个数大,则两数互
换,否则原样输出。
10.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的
一半零一个。到第
10
天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
11.求
100
以内素数。
12.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。
代码如下:
n
=
int(input("
请输入一个十进制数:
"))
result
=
[]
while n>0:
(
①
)
n
=
②
e()
for i in result:
print(i,end
=
”)
(
1
)程序代码中①处正确的代码是(
_______
)。
A.n%2 B.n/2 C.n//2 D.n*2
(
2
)程序代码中②处可能的代码是(
_______
)。
A.n%2 B.n/2 C.n//2 D.n*2
13.(最大公约数)用辗转相除法求两个正整数的最大公约数。
代码如下:
def gcd (m,n):
r
=
while r!
=
0:
m
=
n
n
=
return
a
=
int(input(‘
请输入
a
的值
:’))
b
=
int(input(‘
请输入
b
的值
:’))
print(‘
最大公约数是
:' )
填空:
________ ________ ________ ________ ________
14.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文
钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和
小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
(
1
)请在空格处填写正确的代码,使程序完善实现以下功能。
money=100 #
一共
100
文钱
num=100 #
一共
100
只鸡
cock_price=5 #
公鸡价格
5
文
hen_price=3 #
母鸡价格
3
文
threechick_price=1 #3
只小鸡
1
文
for cock_num in range(1,_______): #
公鸡只数可能为
1-20
for hen_num in range(1,_________): #
母鸡只数可能为
1-33
for chick_num in range(1,101): #
(
3
小鸡)只数可能为
1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num/threechick_price
num1=cock_num+hen_num+chick_num
if money1==money and num1==num:
print (cock_num,hen_num,__________)
input("
运行完毕,请按回车键退出
...")
(
2
)运行程序,运行结果如图所示。
15.完善程序实现以下功能并保存。
输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax
2
+bx+c=0(a≠0)
#请不要更改源程序的结构,删除原题里的①、②。填写正确的代码,使程序完善
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("
运行完毕,请按回车键退出
...")
16.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率
T
。请根据所
学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和
Python
程序。
17.某品牌手机第一年销量为
20000
台,假设平均每年的销量比上一年增加
68%
,请问几
年后能使总销量达到
60000
台。下面的程序能实现上述的功能,请将缺失的代码补充完
整。
total= every_year=20000
year=1
while __________________ :
every_year + = ____________
total + = every_year
year + = 1
print(year)
18.辗转相除法,又称欧几里德算法,用于计算两个正整数
m
、
n
的最大公约数。它是已
知最古老的算法,其可追溯至公元前
300
年前。
辗转相除法的算法步骤是,对于给定的两个正整数
m
、
n
(
m>n
),用
m
除以
n
得到余数
r,若余数
r
不为
0
,就将
n
和
r
构成新的一对数(
m=n
,
n=r
),继续上面的除法,直到余
数为
0
,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故
被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根据下面算法回答问
题。
描述一
描述二
描述三
①输入两个正整数
m,n
(
m>n
);
②计算
m
除以
n
所得的
余数
r
;
③
m=n,n=r
;
④若
r=0,
则
m,n
的最大公
约数等于
m
;否则转到
步骤②;
⑤输出最大公约数
m;
⑥结束。
(
1
)描述一是
________
描述法;描述二是流程图描述法;描述三是计算机程序语言描述
法。
(
2
)在描述三中代码
4
到
6
行作用是
__________
。
(
3
)在描述三程序设计中,补充代码第
8
行划线处为
__________
。
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.阅读程序。观察使用随机数求解百钱白鸡问题的代码并回答问题。
百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,
值钱一;百钱买百鸡,则翁、母、雏各几何?”翻译过来,意思是公鸡一个五块钱,母鸡
一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多
少只?
import random
while True:
x=nge(0,20)
y=nge(0,33)
z=nge(0,100)
if 5*x+3*y+z/3==100 and x+y+z==100:
print('
公鸡
',x)
print('
母鸡
',y)
print('
小鸡
',z)
(
1
)
Python
中导入库文件的命令是
________
。
(
2
)
nge(0,20)
生成的随机数的范围是
_________
。
(
3
)如果不想写类似
nge(0,20)
这么长的句子,可以修改程序中的第一行为
________
(
4
)
while True
的作用是
______
。
(
5
)如果
while True
造成程序无法停止,我们可以在程序中添加一行
_________
。
21.学校开展“奇妙的数字”研究性学习活动。张轩小组
4
人决定把课题定为《探秘水仙
花数》。
(
1
)张轩使用百度搜索引擎搜索到“水仙花数”是这样定义的:
“水仙花数”是指一个
三位数,它的各位数字的立方和等于其本身,比如:
153 = 1
3
+5
3
+3
3
,那么这个数就是一个
“水仙花数”。百度属于
____
搜索引擎(全文,分类)
(
2
)为了求解
100--999
这些数字中,哪些数字是“水仙花数”?张轩小组进行了算法设
计,并使用
python
编写了一段程序来求解所有的“水仙花数”,程序和运行结果下图:
k
是可以重新赋值的,
k
是变量还是常量?
____
程序中①处有空缺,请补充完整①处的代
码。
____
程序中逐一验证了
100
到
999
之间所有的三位数是否符合“水仙花数”的定义条
件,这种算法叫做
______
(解析法,枚举法,递归法,二分法)。
(
3
)在研究成果展示环节,
张轩小组可以使用什么软件制作《探秘水仙花数》的研究成
果报告?
(
_____
)
22.学习了
Python
绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编
写了一段代码,绘制出多个不同颜色的圆形。
代码如下:
import turtle
turtle. bgcolor
(
"black"
)
colors=["red", "green", "blue", "yellow"]
for x
①
range
(
100
):
turtle. pencolor
(
colors[x%4]
)
turtle. circle
(
x
)
turtle. left
(
90
)
请分析任务,完成下列题目。
(
1
)程序中①处应填写(
________
)
。
A.print B.input C.in D.colors
(
2
)程序中
x%4
的作用是(
________
)。
A.
计算
x
乘以
4
的结果
B.
计算
x
除以
4
的整数部分
C.
计算
x
除以
4
的小数部分
D.
计算
x
除以
4
的余数
(
3
)执行此程序,绘制出圆形的总颜色数是(
________
)。
A.1 B.4 C.5 D.100
(
4
)执行此程序,绘制出圆形的总个数是(
________
)。
A.1 B.4 C.99 D.100
(
5
)此程序属于程序设计结构中的(
________
)。
A.
顺序结构
B.
分支结构
C.
循环结构
D.
跳转结构
23.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金
突发奇想,能不能用
python
程序来完成这些作业呢?请帮小金完成代码编程
.
def convert(s):
m=0
le=len(s)
key=s[le-1]
if key=="B":
n=2
elif key=="D":
_______
else:
n=16
i=0
while i<=le-2:
c=s[
le-
1
-
i]
if c>="0"and c<="9":
a=ord(c)-ord("0")
elif c>="A"and c<="F":
a=ord(c)-ord("A")+10
_____________
i+=1
return m
s=input("
请输入算式
")
result=0;suanfu1="";suanfu2="";s1=""
for i in range(len(s)):
c=s[i]
if c=="+" or c=="-" or c=="=":
__________
suanfu1=suanfu2
suanfu2=c
if suanfu1=="":
result=t
if suanfu1=="+":
result=result+t
if suanfu1=="-":
result=result-t
s1=""
else:
s1=s1+c
print("
计算结果为
"+str(result)+"D")
(
1
)将程序横线处补充完整
(
2
)如输入“
1110B+10D-30H=
”则输出结果为
___________
。
24.阅读程序。分析以下关于字符拼接与转换的
Python
程序并回答问题。
students=[ '
小明
','
小红
','
小刚
']
scores={ '
小明
':95,'
小红
':90,'
小刚
':90}
print(len(students))
print(len(scores))
(
1
)
students
的数据类型是
______________
。
(
2
)
scores
的数据类型是
_____________
。
(
3
)在
scores
中,每个字符与后面的数值共同构成了一个
____________
。
(
4
)
len(students)
的返回值是
____________
。
(
5
)
print(len(scores))
的输出结果是
__________
。
25.水仙花数是指一个三位数,它的每个位上的数字的
3
次方之和就等于它本身,例如:
1**3+5**3+3**3=153
。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。
[
问题求解
]
设这个数存放于变量
x
中,变量
g
、
s
、
b
分别存放个位、十位、百位上的数。需
得分离数字得到每位上的数,即将变量
g
、
s
、
b
表示为
x
的形式。请阅读如下
python
程
序,在空白处填写适当的表达式或语句,使程序完整。
(
"
三位数之内的水仙花是:
"
)
for x in___
(
100
,
1000
):
b=x//100
s=
(
x//10
)
___
g=___
If x=
(
b**3 +s**3+g**3
):
(
___
)
26.(项目情境)水仙花数是指一个三位数,它的每个位上的数字的
3
次方之和就等于它
本身,例如:
1**3+5**3+3**3 = 153
。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗
数。
(问题求解)设这个数存放于变量
x
中,变量
g
、
s
、
b
分别存放个位、十位、百位上的
数。需得分离数字得到每位上的数,即将变量
g
、
s
、
b
表示为
x
的形式。请阅读如下
python
程序,在空白处填写适当的表达式或语句,使程序完整。
print ("
三位数之内的水仙
花是
:")
for x in _____ :
b=x//100
s=_____
g=_____
if x==(b**3 + s**3 + g**3):
_____
27.阅读程序。分析以下两段
Python
程序并回答问题。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714362669a2432420.html
评论列表(0条)