【编程】计算机二级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 range1,21):
t*=n
s+=t
print(s)
1n的作用是________________
2s的作用是 ______________
3t的初值必须赋值为1,这是因为_________
4t*=n的等价语句是  __________
5s+=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只鸡,买的鸡是整数。问公鸡、母鸡和小鸡各几何?
(问题求解)设用变量gmx三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。
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.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。
代码如下:
nint(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:
mn
n     
     
return     
aint(input(‘请输入a的值:’))
bint(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("方程有两个不同的解"x1x2)
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.辗转相除法,又称欧几里德算法,用于计算两个正整数mn的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。
辗转相除法的算法步骤是,对于给定的两个正整数mnm>n),用m除以n得到余数r,若余数r不为0,就将nr构成新的一对数(m=nn=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根据下面算法回答问题。
描述一
描述二
描述三
①输入两个正整数m,nm>n);
②计算m除以n所得的余数r
m=n,n=r
④若r=0,m,n的最大公约数等于m;否则转到步骤②;
⑤输出最大公约数m;
⑥结束。
1)描述一是________描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。
2)在描述三中代码46行作用是__________
3)在描述三程序设计中,补充代码第8行划线处为__________
19.某字符转置算法描述如下:
将字符串(均为大写字符)s依次转换为相对应的数值(字符AZ对应数值126);
·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);
每一段中K个数据与K*K转置矩阵进行乘法运算;
将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值126对应字符AZ),最后按原始字符串长度输出。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。