试题详情
操作题 适中0.65 引用1 组卷42
为迎接杭州亚运会,小陈用多个共阴极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高二下·浙江温州·学业考试
知识点:典型算法 答案解析 【答案】很抱歉,登录后才可免费查看答案和解析!
类题推荐
小林发现他的鱼缸里的观赏鱼越来越少了。仔细观察才发现,即使按时喂鱼,一些大鱼也会争着吃小鱼——但是不会吃比它小太多的鱼。准确地讲,若一条大小是𝑎𝑖的鱼,当存在另外一条鱼𝑎𝑗个头严格比它小,但个头差不超过整数𝑘时(即𝑎𝑖−𝑎𝑗≤𝑘),𝑎𝑖会吃掉𝑎𝑗——吃掉后,𝑎𝑖不会变大,𝑎𝑗会消失。如:当鱼的大小是𝑎=[101,53,42,102,101,55,54]且𝑘=1时,一种可能的掠食过程是(下划线表示被吃):[101,53,42,102,101,55,54]→[101,53,42,102,55,54]→[101,42,102,55,54]→[42,102,55,54]→[42,102,55],最后只剩下3条鱼。小林想用Python程序模拟研究一下,对于给定的鱼大小和𝑘的值,最坏情况下会剩几条鱼。
(1)若𝑎=[20,15,10,15,31,20,25],𝑘=5,则最坏情况下会剩____条鱼。
(2)研究前,小林先对𝑎中所有数据进行升序排序,请完成下面的程序。
a=[101,53,42,102,101,55,54]
k=int(input())#k的含义如题所述
last=len(a)-1
flag=True
while last>0 and flag:
       flag=False
for j in range(①_____):
             if a[j]>a[j+1]:
                    a[j],a[j+1]=a[j+1],a[j]
                    last=j
                    flag=True
(3)以下程序从最小的鱼儿开始模拟让较大的鱼吃较小的鱼,无法吃掉的鱼保存在st变量中,结束后输出st中剩余的元素个数就是最坏情况下所剩鱼的数量。请完善算法。
n=len(a)
st=[None]*n
top=-1
for i in range(n):
       while top>=0 and st[top]<a[i] and a[i]-st[top]<=k:
             top-=1
       top+=1
       ____
print("最坏情况下会剩下%d条鱼"%(top+1))
(4)对于剩下的鱼中,是否还存在某种大小的鱼儿。输入鱼的大小,查询该尺寸的鱼儿是否还存在。请完善以下算法。
size=int(input())#输入要查询的鱼的尺寸
i=0
j=top
while i<=j:
       m=(i+j)//2
       if #若size值与第m号元素相等,则结束循环,此处关系表达式略:
             break
       elif ③____:
             i=m+1
       else:
             j=m–1
if ④____:
       print("大小为%d的鱼还在!"%size)
else:
       print("大小为%d的鱼不存在,可能已经被吃了"%size)

组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网