操作题 适中0.65 引用1 组卷42
为迎接杭州亚运会,小陈用多个共阴极LED数码管实现天数倒计时效果。单个数码管的七个引脚分别标记为a、b、c、d、e、f、g(如图a所示),显示的字符和十六进制字形码如图b所示。如显示字符“3”,需将a、b、c、d、g对应的数码管引脚设置为高电平(用数字“1”表示),其他引脚设置为低电平(用数字“0”表示),效果如图c所示。
(1)若显示数字“25”,则十六进制字形码为______ 。
(2)如下的days函数用于计算y年m月d日到元年元旦的总天数,是当年天数与过去所有平年和闰年天数的和。闰年年份是指该年份是4的倍数且不是100的倍数,或者是400的倍数。闰年有366天,平年有365天。请在划线处填入合适的代码。
def days(y,m,d):
mdays=[0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
ans=y* 365+y//4-y//100+y//400
ans=ans+mdays[m-1]+d
if(y%4=0 and y % 100 !=0 or y % 400==0) and m>=3:
______
return ans
(3)如下的single函数用于求单个七段数码管各引脚电平值,请在划线处填入合适的代码。
def single (num):
code={0:"3F",1:"06",2:"5B",3:"4F",4:"66",5:"6D",6:"7D",7:"07",8:"7F",9:"6F"}
b=""
for i in range(1, -1, -1):
if "0"<= code[num] [i]<="9":
c=int (code[num] [i])
else:
c=______
for i in range (4):
b= str(c%2)+b
c//=2
return b[1:]
(4)如下的主程序用于实现天数倒计时效果,请在划线处填入合适的代码。
import datetime
import time
while True:
n= datetime.datetime.now().strftime("%Y%m%d") #获取当前日期的年月日并将其转成8位字符串形式,如"20230507"
y= int(n[:4]) ; m=int(n[4:6]):d=int(n[6:])
total=days(2023, 9, 23) - days(y, m, d)
ans=""
if total==0:
break
while______ :
num=total % 10
ans=single(num)+ans
total=total// 10
print (ans) #输出各引脚的电平值
# 和硬件相关的通信部分程序,代码略
time.sleep(1)
图a 图b 图c
请回答下列问题。(1)若显示数字“25”,则十六进制字形码为
(2)如下的days函数用于计算y年m月d日到元年元旦的总天数,是当年天数与过去所有平年和闰年天数的和。闰年年份是指该年份是4的倍数且不是100的倍数,或者是400的倍数。闰年有366天,平年有365天。请在划线处填入合适的代码。
def days(y,m,d):
mdays=[0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
ans=y* 365+y//4-y//100+y//400
ans=ans+mdays[m-1]+d
if(y%4=0 and y % 100 !=0 or y % 400==0) and m>=3:
return ans
(3)如下的single函数用于求单个七段数码管各引脚电平值,请在划线处填入合适的代码。
def single (num):
code={0:"3F",1:"06",2:"5B",3:"4F",4:"66",5:"6D",6:"7D",7:"07",8:"7F",9:"6F"}
b=""
for i in range(1, -1, -1):
if "0"<= code[num] [i]<="9":
c=int (code[num] [i])
else:
c=
for i in range (4):
b= str(c%2)+b
c//=2
return b[1:]
(4)如下的主程序用于实现天数倒计时效果,请在划线处填入合适的代码。
import datetime
import time
while True:
n= datetime.datetime.now().strftime("%Y%m%d") #获取当前日期的年月日并将其转成8位字符串形式,如"20230507"
y= int(n[:4]) ; m=int(n[4:6]):d=int(n[6:])
total=days(2023, 9, 23) - days(y, m, d)
ans=""
if total==0:
break
while
num=total % 10
ans=single(num)+ans
total=total// 10
print (ans) #输出各引脚的电平值
# 和硬件相关的通信部分程序,代码略
time.sleep(1)
2023高二下·浙江温州·学业考试
类题推荐
组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网