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

2022年3月电子学会青少年软件编程(Python五级)等级考试试卷
操作/编程 五级 2022 2022-11-12 10:43:38 59

一、编程题

1.

二维数组打印杨辉三角形

在屏幕上打印杨辉三角形,杨辉三角形又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。由于位于杨辉三角形两个腰上的数都为1,其他位置上的数等于它肩上两个数之和,基于杨辉三角形的这个特点,可以使用二维数组打印出杨辉三角形。Python程序实现打印杨辉三角形如下,请你补全代码。


# 控制打印的行数,行数过大会造成显示不规范

# 定义一个行为14,列为14的二维列表

n = 0

a = [([0] * 14) for i in range(14)]  

n = int(input("请输入杨辉三角的行数(1-13):"))

# 计算杨辉三角中的数值

for row in range(1, n+1):

    a[row][1] = a[row][row] = 1

for row in range(3, n+1):

    for column in range(2, (row-1)+1):

        a[row][column] =   ①   +   ②  

# 打印杨辉三角

for row in range(1, n+1):

    for k in range(1,   ③  ):

        print("   ", end="")  

    for column in range(1, row+1):

        print("%6d" %(  ④  ), end=" ")

    print()    

2.

验证哥德巴赫猜想

2000以内的不小于4的正偶数都能够分解为两个素数之和,验证哥德巴赫猜想对2000以内的正偶数成立。根据问题描述,为了验证哥德巴赫猜想对2000以内的正偶数都是成立的,要将正偶数整数分解为两部分,然后判断分解出的两个正整数是否均为素数。若是,则满足题意,否则应重新进行分解和判断。

输入:每次输入一个2000以内的不小于4的正偶数n。

输出:输出n能被分解成的素数a和b,如果不止一组解,则输出其中a最小的那组解即可。

请你补全代码。

import math

# 判断是否为素数

def fun(n):

    if n == 2:

        return 1

    if n % 2 == 0:

        return 0

    i = 3

    while i <= math.sqrt(n):

        if    ①   :

            return 0

        i += 2

    return 1  # n是除2以外的素数返回1

# 验证哥德巴赫猜想

def guess(n):

    k = 0

    i = 2

    while i <= (n // 2):

        if fun(i):

            if fun(n - i):

                print("%d  %d\n" % (  ②  ))

                  ③  

        if i != 2:

            i += 1

        if k == 1:

              ④   #结果得到验证,跳出循环

        i += 1

 

while True:

    n = input("请输入2000以内>=4的正偶数:(输入'stop'结束运行)")

    if n=="stop":

        break

    else:

          ⑤     # 调用方法验证哥德巴赫猜想

3.

二进制数转十六进制数,可以先采用“按权展开,逐项相加”法,把二进制转十进制;再采用“除16求余法,逆序输出”的方法,把十进制数转为十六进制数。下列程序实现将二进制数转十六进制数,请完善以下程序代码。

st="0123456789ABCDEF"

num = input("请输入一个二进制整数:")

n =    ①    

s=0

ss=""

for i in range(n):

    x=      ②      

    s+=x

t=s

while t>0:

    ss=      ③    

    t=     ④    

print(ss)

公众号
客服 反馈
顶部