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

2021年12月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2021 2022-10-31 17:04:36 104

一、编程题

1.

要求:设计一个算法,枚举排列问题。输入1-n的第1个排列,如1 2 3,按照大小输出1~n的所有排列,并统计全部排列总数。

根据上述算法思想,补全下列代码。

描述:输入1-n的第1个排列,如1 2 3,按照大小输出1~n的所有排列。

函数名:perm(n,begin,end)

参数表:n -- 整数n,begin -- 指向排列的第一个元素,end-- 指向排列的最后一个元素。

返回值:输出1-n的所有排列方式,每行一个排列,按从小到大。

示例:当输入1 2 3时,返回:

[1, 2, 3]

[1, 3, 2]

[2, 1, 3]

[2, 3, 1]

[3, 2, 1]

[3, 1, 2]

排列总数是:6个!


COUNT=0

def perm(n,begin,end):

    global COUNT

    if   ①    

        print (n)

        COUNT +=1

    else:

        i=begin

        for num in   ②    :

            n[num],n[i]=n[i],n[num]

              ③    

            n[num],n[i]=n[i],n[num]

 

arr = input("1-n的第1个排列:")    

n = [int(n) for n in arr.split()]

  ④    

print ("排列总数是:%d个!"% COUNT)

2.

要求:设计一个算法,求1~n(n为大于2的正整数)中有哪些素数,总共是多少个素数? 根据上述计算规则,补全下列代码。

函数名:getPrime(n)

参数表:n -- n为大于2的正整数。

返回值:返回素数组成的数组。

示例:当n=9时,返回:您输入的区间1-n中素数分别是:[2, 3, 5, 7],总共是4个素数!

primeList = []

import math

def getPrime(n):

    for x in range(2,n+1):

        x_sqrt =   ①    

        for prime in primeList:

            if   ②    

                primeList.append(x)

                break

            if   ③    

                break

        else:

            primeList.append(x)

    return primeList

m=int(input("请您输入一个整数n:"))

print('您输入的区间1-n中素数分别是:'+  ④    )+',总共是'+str(len(primeList))+'个素数!')

3.

编写上交作业的程序,老师要求把小组7位同学(编号为1,2,3,...,6,7)的作业收齐,小组编号1的同学跟编号2的同学说“收作业了”,之后每位同学依次向后面的一位同学说要“收作业了”,直到最后,编号7的同学将自己的作业,上交到编号6的同学手中,编号6的同学将编号7的作业及自己的作业一起上交到编号5的同学,按这样的流程;直到编号1将其他同学的作业及自己的作业上交到老师中。要求编号7同学的作业放在最前面,即老师看到的作业是编号7的作业,然后是编号6的作业,最后是编号1的作业。

根据上述算法思想,编写自定义函数完成程序功能,完善空白处代码。

"""

函数名def getHomeWork(hw,n)

参数表:hw存储每位同学的作业信息,n表示第n位同学的作业

返回值:每位同学的作业,要求最后1位同学的作业显示在最前面,第1位同学作业显示在最后面

"""

def getHomeWork(hw,n):

    if n ==  ①  :

        return   ②  

    return   ③  

homew=["作业1","作业2","作业3","作业4","作业5","作业6","作业7"]

zuoye = getHomeWork(homew,0)

print(zuoye)

公众号
客服 反馈
顶部