万卷网> 电子学会考级 >Python等级考试 > 2021年12月电子学会青少年软件编程(Python五级)等级考试试卷

2021年12月电子学会青少年软件编程(Python五级)等级考试试卷
操作/编程 五级 2021 2022-11-01 09:50:57 49

一、编程题

1.

设计一个算法,汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。有三个单字符字符串和一个整数。三个字符表示三个杆子的编号,整数为盘子的数目。

根据上述计算规则,补全下列代码。

函数名:hannota(n,a,b,c)

参数表:n -- 正整数表示盘子数,a --a杆子,b --b杆子,c --c杆子。

返回值:移动路径。

示例:n=3,返回:

A --> C

A --> B

C --> B

A --> C

B --> A

B --> C

A --> C

def hannota(n,a,b,c):

    if n == 1:

        print(a ,"-->", c)

        return None

    if n == 2:

        print(a,"-->",b)

        Print(  ① )

        print(b,"-->",c)

        return None

    Hannota(  ②  )

    print(a,"-->",c)

    Hannota(  ③  )

a = "A"

b = "B"

c = "C"

n =int(input('请输入黄金圆盘数量n:'))

hannota(n,a,b,c)

2.

素数是只能被1和本身整除的正整数,因式分解就是将一个正整数分解成若干个素数相乘的形式。用户从键盘输入小于1000的整数,对其进行因式分解,例如:10=2*5,60=2*2*3*5。完善程序代码。

#用户从键盘输入小于1000的整数,对其进行因式分解。例如:10=2*5,60=2*2*3*5。

x = input('Please input an integer less than 1000:')

x = int(x)

t = x

①  

result = []

while True:

    if t == 1:

        break

    if t % i == 0:

        result.  ②

        t = t/i

    else:

          ③

s=''

for i in result:

    s=  ④

s=  ⑤

print( x,'=',s)

3.

输入年月日,计算这一天是这一年的第几天。编写自定义函数完成程序功能,完善程序代码。

"""

根据年月日,计算这一天是这一年的第几天

函数名  def getDays(year)

参数    year:表示日期;字符串类型如20211201

返回值 :整数。表示这一天是这年的第几天 

"""

def getDays(year):

    s = 0

    y = int(year[:4])

    m = int(year[4:6])

    d = int(year[6:8])

    monthdays = (31,28,31,30,31,30,31,31,30,31,30,31)

    for i in range(  ①  ):

        s = s +    ②  

    if (y % 4 ==0 and y % 100 !=0 or y % 400 ==0) and   ③  :

        s = s + 1

    s = s + d

    return s

year = "20211201"

theday =   ④  

print(theday)

公众号
客服 反馈
顶部