学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
最小覆盖子串。输入一个字符串s、一个字符串t,从左往右遍历字符串s,返回s中涵盖t所有字符的最小子串。如果s中存在多个最小子串,则输出第一次出现的子串,如果s中不存在涵盖t所有字符的子串,则输出“找不到覆盖子串”。
注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。
示例1:输入:s:ADOBECODEBANC
t:ABC
输出:BANC
实现上述功能的Python程序代码如下,请回答下列问题。
def count (t):
   dic={}
   for i in t:
        if i in dic:
          ____
       else:
             dic[i]=1
   return dic
s=input("s: ")
t=input("t: ")
f=False
length=len(t)
dic_t=count (t)
while length<=len(s):
   start=0
   for i in range(start,len(s)):
       temp= ②____
       dic_temp=count (temp)
       for i in dic_t:
          if i not in dic_temp or ③____
             break
        else:
             print (temp)
             f=True
             break
   if f==True:
       break
   else:
          ____
if f=False:
   print("找不到覆盖子串")
(1)请在程序划线处填入合适的语句。
(2)若s="ADOBECODEBANC",t="ABBC",则结果为____
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
用英文字母A~D对数字字符0~9进行编码,编码规则如下表所示:

例如,数字字符串“718”的编码为“BDABCA”。
用Python程序实现上述编码,功能如下:输入待编码的一串数字字符,输出编码结果,程序运行界面如下图所示。
请输入数字字符串:718
编码结果为:BDABCA
实现上述功能的Python程序如下,请回答下列问题:
(1)运行该程序,若输入的数字字符串为“8462”,则输出的编码结果为____
(2)请在程序划线处填入合适的代码。
def dtob(x):
     st,r="",0
     for i in range(4):
        ____
        st=str(r)+st
        x=x//2
     return st
code={"00":"A","01":"B","10":"C","11":"D"}
s=input("请输入数字字符串:")
result=""
for i in range(len(s)):
     ____
   if"0"<=ch<="9":
       ans=③____
       result+=code[ans[0:2]]+ ④____
if result!="":
   print("编码结果为:",result)
else:
   print("输入错误!")
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
有如下Python程序:
import random
a=[0,0,0,0,0,0]
for i in range(6):
   a[i]=random.randint(1,10)
for i in range(0,6):
   if i%2==0 and a[i]%2==0:
       a[i]//=2
   else:
          a[i]+=1
print(a)
执行程序后,列表a各元素可能是(     
A.1,5,1,11,2,11B.7,2,8,10,5,9C.6,9,3,7,8,12D.3,9,0,8,2,7
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
一个十进制的奇数转换为二进制之后,其最后一位(最右边的位)必然是(       )。
A.0B.1C.2D.无法确定
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
有n个从小到大排列的整数依次存储在列表nums中,现要求将上述n个数的平方按从小到大的顺序依次存入列表ans中。如nums = [-4,-1,0,3,10],则ans = [0,1,9,16,100]。
(1)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
# 输入n个数从小到大依次存储到列表nums中,代码略
k = -1
for i in range(n):
       if nums[i] < 0:
             k = i
       else:
             break
ans = []
i, j = k, k + 1
while i >= 0 or j < n:
       if i < 0:
             ans.append(   ____)
             j += 1
       elif j==n:
             ans.append(nums[i] * nums[i])
             ____
       elif ③____:
             ans.append(nums[i] * nums[i])
             i -= 1
       else:
             ans.append(nums[j] * nums[j])
             j += 1
print(ans)
(2)若输入nums的数据为[-4,1,4],则输出ans的值为____
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
用1~26的二进制值对大写英文字母A~Z进行编码,编码如下表所示:
A00001B00010C00011D00100E00101F00110G00111
H01000I01001J01010K01011L01100M01101N01110
O01111P10000Q10001R10010S10011T10100U10101
V10110W10111X11000Y11001Z11010



小明使用该编码对由大写字母组成的明文字符串进行加密,加密算法如下:
依次将明文中每个字符转换为其对应的二进制编码;
依次将密钥中每个字符转换为其对应的二进制编码;
依次取出密钥的每个二进制位与原文的二进制位进行异或运算(若密钥长度不够,则循环重复使用),得到的结果即为密文编码;
二进制位异或运算原则:
例如,明文:HELLO,密钥:ZHE,则按上述方式进行加密:
明文字符HELLO
密钥字符ZHEZH
明文编码0100000101011000110001111
密钥编码1101001000001011101001000
密文编码1001001101010011011000111
(1)若原文为“HUI”,密钥为“TZ”,则密文编码为____
(2)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
def ctob(c):            # 将一个字符转换为其对应的5位二进制编码
    n =①____
    ans = ""
    for i in range(5):
     r =②____
     n = n // 2
     ans = str(r) + ans
    return ans
def xor(s1, s2):        # 将二进制数s1和s2进行异或运算
    ans = ""
    for i in range(len(s1)):
     if③____:
       ans += "0"
     else:
       ans += "1"
    return ans
s = input("请输入明文(大写字母):")
key = input("请输入密钥(大写字母):")
ans = ""
for i in range(len(s)):
    s1 = ctob(s[i])
    k =④____
    s2 = ctob(key[k])
    b = xor(s1, s2)
    ans = ans + b
print("密文编码为:", ans)
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
寻找素单词。素数是指大于 1 的自然数中,除了1和它本身以外不再有其他因数的自然数。例如,2,3,5,7等是素数。本题输入一个单词,每个单词由小写字母组成。每个字母对应一个特定的值,字母a对应1,字母 b对应2,以此类推,字母z对应26。如果这个单词的字母值的总和是素数,则这个单词是素单词( prime word)。请编写程序,判定一个单词是否为素单词。
(1)实现上述功能的部分 Python程序如下,请在划线处填入合适的代码。
def isprime(n):     #判断n是不是素数
       for i in range():
             if n%i==0:
                  ______
       else:
             return True
def strsum(word):   #统计单词的字母值总和
       dic={"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9,"j":10,
               "k":11,"l":12,"m":13,"n":14,"o":15,"p":16,"q":17,"r":18,"s":19,
               "t":20,"u":21,"v":22,"w":23,"x":24,"y":25,"z":26}
       n=0
       for ch in word:
             _______________
       return n
word=input("请输入一个单词:")
s=strsum(word)
_________
if flag:
       print("这是一个素单词")
else:
print("这不是一个素单词")

(2)下列选项中不可以填入加框处的代码是______(单选,填字母)。
A.2,n               B.2,n+1               C.2,int(n**0.5)+1               D.2,n//2+1
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
有如下Python程序段:
import random
a=[0,0,0,0,0,0]
for i in range(6):
    x = random.randint(1, 10)
    if i % 2 == 0:
        a[i] = 2 * x + 1
    elif x % 2 == 0:
        a[i] = x // 2
    else:
        a[i] = x - 1
执行该程序段后,a[0]~a[5]各元素可能的值是(     
A.3,3,9,0,19,8B.5,0,9,4,13,10
C.9,3,11,5,17,7D.3,2,7,4,22,6
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
某医院的看病流程为:患者通过网上、自助设备或人工窗口成功挂号后,到门诊的签到处签到,签到成功后即可排队等待叫号就诊。简化的排队规则如下:
①当天08:00之前完成签到的患者,按照挂号顺序从小到大排队就诊;
②08:00之后签到的患者,按照挂号的序号从小到大的次序插入候诊队伍中;
③队伍中前3名患者(包括正在就诊患者)视为已进入待诊状态,插队的患者只能插到这3名待诊患者后的队伍中。
假设医生从08:00开始叫号就诊,对每位患者的诊断时间均为3分钟,忽略相邻患者就诊的时间间隔。编写程序实现以下功能:若有患者签到,则根据规则更新候诊队伍;医生每完成一名患者的诊断,电子屏幕上按顺序显示待诊的患者姓名和每个患者预计就诊的时间。
(1)若当前已签到患者信息如下表所示:

姓名

挂号序号

签到时间

A

3

07:47:03

B

1

07:51:12

C

6

07:55:32

D

4

07:57:10

E

8

07:59:52

F

2

08:02:07

则患者F的预计就诊时间为____(格式如08:07:20)。
(2)08:00:00之前签到的患者原始数据存在列表lst中,每位患者信息包括姓名、挂号序号、签到时间,以下函数将列表中的数据按挂号序号从小到大排序,并构建候诊队伍。
def init(lst):   #构建8点前签到的候诊队伍
       i=0;n=len(lst)
       while i< n-1:
             k=i;i=n-1
             for j in range(n-1,k,-1):
                    if lst[j][1]< lst[j-1][1]:
                           lst[j],lst[j-1]=lst[j-1],lst[j]
             
       for i in range(n):
             lst[i][2]=180*i#修改时间格式,每位患者诊断时间为3分钟
             lst[i].append(i+1)
       lst[n-1][3]=-1#尾结点指针域处理,如['E',8,720,-1]
程序划线处的代码是____(单选,填字母)
A.i=i+1             B.i=j+1          C.i=k-1             D.i=j
(3)每当一位患者就诊结束,更新队伍并按就诊顺序输出待诊的患者姓名和每个患者预计就诊的时间。请补充程序划线处。
def gs(t):#时间格式转换,将时间戳127转成“08:02:07”形式
       t=t+8*60*60
       h=t//3600
       m=____
       s=t%60
       time='%02d'%h+':'+'%02d'%m+':'+'%02d'%s
       return time
def mov(lst,head):
       #更新队伍并输出,代码略
       return head
(4)若有患者签到,则更新候诊队伍。请补充程序划线处。
def tc(time):#时间格式转换,将“08:02:07”转换成以秒为单位的时间戳127
       t=int(time[0:2])*60*60+int(time[3:5])*60+int(time[6:])
       t=t-8*60*60#8点开始叫号看诊
       return t
def insnew(lst,head,data):#将新签到的患者插入候诊队伍中,并更新每个患者预计就诊的时间
       data[2]=tc(data[2])
       data.append(-1)
       p=head;q=p;k=0
       if head=-1:   #无人排队
             lst.append(data)
             ____
       else:
             while q!=-1 and(②____):
                    k=k+1
                    p=q
                    q=lst[q][3]
             data[2]=lst[p][2]+180
             data[3]=q
             lst.append(data)
             lst[p][3]=len(lst)-1
             p=len(lst)-1
             while q!=-1:
                    lst[q][2]=lst[p][2]+180
                    p=q
                    q=lst[q][3]
       return head
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
有如下python程序:
import random
a,i,c=[],0,0
while i<5:
       b=random.randint(0,9)
       if b not in a:
             a.append(b)
             i+=1
key=int(input("key="))
for j in range(len(a)):
       if a[j]%key==0:
            c+=1
       else:
             a[j-c]=a[i]
print(a)
运行该程序,若输入key为2,则输出的a不可能为(     
A.[3,7,5,4,5]B.[3,7,1,5,5]
C.[3,5,0,3,5]D.[9,7,4,7,3]
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
首页
上一页
下一页
尾页