【编程】计算机二级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+22+32+……+1002的结果
_______________________________
_______________________________
_______________________________
_______________________________
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:
result.append( ① )
n= ②
verse()
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.完善程序实现以下功能并保存。
python代码转换输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+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+math.sqrt(delta))/(2*a)
x2=(-b-math.sqrt(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),最后按原始字符串长度输出。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论