一、简答题
1、36.日期问题
小明同学学习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,'输入的日期有错误')
2、37.数学游戏
校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可能出现的情形。请补充完成该程序。
def act(n):
if n == 1 or ① :
return 1
sn = ②
return ③
tn = act( ④ )
3、38.乘客问题
某路公共汽车,总共有八站,从一号站发车时车上已有n位乘客,到了第二站先下一半乘客,再上来了六位乘客,到了第三站也先下一半
乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个.....到了终点站车上还有乘客6人,
问发车时车上的乘客有多少?根据递归思想,编写自定义函数完成该程序功能,完善空白处代码。
def num(i):
if i==8:
return ①
else:
return ②
print( ③ )
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!