试题详情
操作题 0.65 引用1 组卷47
为迎接杭州亚运会,小陈用多个共阴极LED数码管实现天数倒计时效果。单个数码管的七个引脚分别标记为a、b、c、d、e、f、g(如图a所示),显示的字符和十六进制字形码如图b所示。如显示字符“3”,需将a、b、c、d、g对应的数码管引脚设置为高电平(用数字“1”表示),其他引脚设置为低电平(用数字“0”表示),效果如图c所示。

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高二下·浙江温州·学业考试
知识点:典型算法 答案解析 【答案】很抱歉,登录后才可免费查看答案和解析!