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

2024年9月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2024 2024-11-14 20:35:00 69

一、编程题

1.

乘客问题

某路公共汽车,总共有八站,从一号站发车时车上已有n位乘客,到了第二站先下一半乘客,再上来了六位乘客,到了第三站也先下一半乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个......,到了终点站车上还有乘客6人,问发车时车上的乘客有多少?根据递归思想,编写自定义函数完成该程序功能,完善空白处代码。

def num(i):

        if i == 8:

                return                

        else:

                return                

print(                )

2.

数学游戏

校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可能出现的情形。请补充完成该程序。

def act(n):

    if n == 1 or                :

        return 1

    sn =                 

    return                 

tn = act(                )

print("总共存在%d种可能出现的情形。"%tn)

3.

日期问题

小明同学学习Python的函数后,想动手利用函数来解决生活中的问题。于是他突发奇想,输入日期,统计这一天是这一年的第几天。其中,闰年指年份能被4整除但不能被100整除,或者仅能够被400整除。编写的代码如下,请完善划线处的代码。

def isRn(year):           #判断year是否闰年

    if                 or year % 400 == 0:

        return 1

    return 0

def jsDays(data):         #计算日期data在这一年是第几天

    s = 0  

    year = int(data[:4])

    month = int(data[4:6])

    day = int(data[6:])

    for i in range(                ):

        s += days[i]

    s += day

    if month > 2 and                :

        s += 1

    return s

def checkRq(data):      #判断输入的日期是否正确

    month = int(data[4:6])

    day = int(data[6:])

    if month <1 or month >12:

        return 0

    if days[month-1]<day or day <1:

        return 0

    return 1

days = [31,28,31,30,31,30,31,31,30,31,30,31]    #定义每个月的天数   

rq = input('输入年月日,格式如:20240102\n')

if checkRq(rq):

    d =         ④        

    print(rq,'是这一年的第',d,'天')

else:

    print(rq,'输入的日期有错误')

公众号
客服 反馈
顶部