全国计算机等级考试二级Python真题及解析1图文word程序填空阅读填空程序试题
一、程序填空
1.在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。即一个数除以3余2,除以5余3,除以7余2,求这个数。
i=①________
while (i%3!=2 ________ i%5!=3 or i%7!=2):
    i=________
print(i)
2.完善程序。以下是计算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)
3.调试程序。请阅读以下程序并写出运行结果。
fruites=['banana','apple','mango']
for fruit in fruites:
  print(fruit)
a=len(fruites)
print('a=',a)
_________________
4.调试程序。请阅读以下程序并写出运行结果。
#ex16.py
i=0
sum=0
while i<10:
  if i%3==0:
    sum+=i
    print(i)
    i=i+1
print('sum',sum)
_________
5.编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1N(包含N)中要跳过的数。
6.以下是计算s = 1+6+11+...+ 101的程序代码,请补全程序。
s=0
for i in range(1,102,    ):
s= 
print( s)
请补充完成上述程序①_________        _________
7.分析完善程序
已知包含25项的数列: 12/33/5....24/4725/49
问题1 :写出该数列的通项公式fn= _
问题2 :以下是计算S=1+ 2/3+3/5+ ... + 24/47+ 25/49的程序,请补全代码:
s=0
for i in range(1,26):
    s=s+   
print(“s=”,s)
补充完成上述通项公式和程序:
fn=_________
___________
8.约瑟夫问题是个有名的问题:N个人围成一圈,顺序为012345,从0号这个人开始报数,报到2的将被杀掉,接下去重新开始报数,报到3的将被杀掉...以此类推,最后剩下一个,其余人都将被杀掉。例如N=6,被杀掉的顺序是:14305;最后只剩下2这个人。
llist=
n=intinput(“请输入参与人数:”))
for i in range0n-1):
llist.append[ii+1]
___________
___________
long=n
k=head
i=1
p=2
while(____ ):
    if i==p-1:
        t=llist[k][1]
        print(llist[t][0])#索引为t的删除
                  __________________
        if t==head:
                  ___________________
        i=1
        p+=1
        long=long-1
        k=llist[k][1]
        ______________
    i+=1
print(llist[head][0])
9.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,
请输入以下代码,自己输入数据运行,结果截图提交
10.求水仙花数(一个三位数,其各位数字立方和等于该数字本身)
11.1100内奇数之和(使用range函数)
12.编写一个程序,实现九九乘法口诀表。
13.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。
代码如下:
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
14.阅读程序。分析条件语句的代码并回答问题。
1)如果不能使用int()函数,那么变量s的类型将会变成 ______
2)如果你的期末成绩是85,你得到的评价将会是____________
3)如果你的期末成绩是55,你得到的评价将会是____________
4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在___________之间。
5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
15.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
打开文件“考生文件夹\644\百鸡百钱.py”,完善程序实现以下功能并保存。
(1)请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善。
(2)运行程序,运行结果如图所示。
# 请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善
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,money//cock_price+1):          #公鸡只数可能为1-20
    for hen_num in range(1,①________):                        #母鸡只数可能为1-33
        for chick_num in range(1,②________):                  #(3小鸡)只数可能为1-100
            money1=cock_num*cock_price+hen_num*hen_price+chick_num*threechick_price
            num1=cock_num+hen_num+chick_num*3
            if money1==money and num1==num:
                print (cock_num,hen_num,③________)            #(③小鸡数)
input("运行完毕,请按回车键退出...")
16.(项目情境)一元二次方程ax2+bx+c=0a0),当b24ac0,方程有两个不同的实数根,当b24ac0时,方程无实数根。
(问题求解)下面的python程序实现的功能是判断方程是否有实数根。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
import math
a=int(input("请输入a的值:"))
b=int(input("请输入b的值:"))
c=int(input("请输入c的值:"))
d=_____  #将表达式b24ac的值赋给变量d
if ____
    print("x1=",(-b+math.sqrt(d))/(2*a))  #输出方程的其中一个实数根
    print("x2=",(_________)          #输出方程的另一个实数根
else:
    _________    #输出“方程无实数根”
程序while语句流程图代码17.已知圆柱体的底面半径为r,高为h,(均为正整数),小张编写了一个程序计算圆柱体的地面周长和面积,圆柱体侧面积以及圆柱体体积,其中圆周率定义为:3.14,请根据下列代码回答问题:
r=int(input(“请输入半径r:”))
h=int(input(“请输入高h:”))
_________________________
c=2*pi*r
s=pi*r**2
S=c*h
V=s*h
print(c,s,S,V)
(1)解决问题的程序用到的控制结构有:__________________(填:顺序结构、分支结构、循环结构)
(2)请将程序补充完整。
(3)请出程序中的错误代码,并改正。
____________________________________________
18.有如下程序段:
    sum=0
    for  i  in  range(1,20,3) :
          sum+=i
    print(“sum=”,sum)
(1)循环变量i的初值为:_________,终值为:_________,步长为:__________
(2)该程序执行后,输出的结果为:____________________
19.辗转相除法,又称欧几里德算法,用于计算两个正整数mn的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。
辗转相除法的算法步骤是,对于给定的两个正整数mnm>n),用m除以n得到余数r,若余数r不为0,就将nr构成新的一对数(m=nn=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根据下面算法回答问题。

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