充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. (2023高三上·杭州期中) 对某二值图像(颜色编号只有0、1)按如下规则对其进行数据压缩:
    (1)记录原数据第1个位置的颜色编号;
    (2)从左往右依次扫描颜色编号,统计并记录连续出现的相同颜色编号个数;
    例如:图像的颜色编号: ,压缩结果为“0, 9, 8, 3”(用逗号分隔)
    请回答下列问题:
    1. (1) 若某二值图像按此规则压缩的结果为“1, 1, 3, 5, 6”,则该图像的颜色数据中有个1。
    2. (2) 定义如下jys(s)函数,参数s存储压缩结果,为字符串类型,如“0, 9, 8, 3”。函数功能是实现数据解压缩,函数以字符串类型返回原数据。请在划线处填入合适的代码。

      Def jys(s):

      d={"1":"0","0":"1"}

      ns=""; p=s[0]; i=2

      while i<n:

      num=0

      while :

      num=num*10+int(s[i])

      i+=1

      i+=1

      for j in range(num):

      p=d[p]

      return ns

  • 1. (2023高二上·期中) 字母异位词指的是由相同的字母组成且不区分大小写,但字母位置不同的两个单词或短语,比如"Heart"和"earth"是字母异位词,"Apple"和="Paper"不是字母异位词。文本文件“word.txt”中保存着若干对单词组,部分界面如图a所示。现编写Python程序,从文件“word.txt”中读取每对单词组,并判断该组中两个单词是否为字母异位词。

    程序代码如下,程序运行后输出结果部分界面如图b所示,请回答下列问题。

    1. (1) 请划线处填入合适的代码。

      def change(x):   #将字母都转换为小写字母

          y=""

          for k in x:

            if "A"<=k<="Z":

               k=

               y+=k

          return y

      def fs(m,n):

          cnt=[0]*26         

          for i in range(len(m)):

             ch=ord(m[i])

            

          for i in range(len(n)):

             ch=ord(n[i])

             cnt[ch-ord("a")]-=1

          return cnt

      file=open("words.txt","r")   #以只读的方式打开文件

      text=[];s1=s2=""

      line=file.readline()        #从文件中读取一行

      while line:                 #当 line 非空(从文件中读取到数据)

         line=line.strip()        #把末尾的'\n'去掉

         text.append(line.split())#方法是把空白字符去掉,把line变成包含2个单词的列表line=file.readline()

      file.close()

      for i in range(num):

         s1=text[i][0]

         s2=text[i][1]

         c=

      j=0

         while j<len(c):

            if c[j]!=0:

               print(s1,"和",s2,"不是字母异位词")

      break

            j+=1

         else:             # 在循环正常结束后执行

            print(s1,"和",s2,"是字母异位词")

    2. (2) 下列程序代码中,加框处的语句(选填:能/不能)改写成语句
  • 1. (2023高二上·浙江期中) 叶圣陶杯作文大赛开始了,语文老师收集了参赛同学的作文,作品的文件名按“学号&姓名.docx” 格式提交。学号为 8 位,第 10 位开始为姓名,如“20210902&王源.docx”。老师编写了一段程序以便快速找出哪些同学未提交以便于进行通知处理。在处理时发现,可能会存在“ 20210901+王俊凯.docx”“20210901-王俊凯.docx”两种不当的格式。
    1. (1) 读取文件名并返回,请在划线处填入合适的代码import os

      def readname(): #读取某个文件夹内所有文件的文件名

          filepath="pics//"

          #读取到的文件名以字符串的形式,作为元素存储在列表 allname 中

          allname=os.listdir(filepath)  

          #os.listdir()用于返回指定的文件夹包含的文件或文件夹的名字的列表

          return  

    2. (2) 修改文件中的“+”和“-”,请在划线处填入合适的代码

      def checkname(name):

          s=""

          for i in name:

              if i=="+" or i=="-":

                  s+="&"

              else:

                   

          s=s[:-5]     #去掉后四位,即去掉后缀名".docx"

          return s

    3. (3) 主程序,请在划线处填入合适的代码

      name=readname()

      student=["王俊凯","王源","张明","赵祖一","吴天","顾玲玲","方奔奔","张强"] yes=[];no=[];s=0;result={}

      for item in name:

          item=checkname(item)

           

          yes.append(stu) #将学生的姓名加入列表

          s=s+1

      for m in student:

          if:

              no.append(m)

    4. (4) 输出结果

      result[" 应 提 交 人 数 :"]=len(student)

      result[" 已 提 交 人 数 :"]=   ▲    

      result["已提交的同学:"]=yes

      result["还未提交的同学:"]=no

      print(result)

      划线处可以填入的代码是            (多选,填字母)

  • 1. (2023高二上·嘉兴期中) “梅森素数”指的是符合条件m=2P-1,其中指数p与整数m均为素数,则m为梅森素数。如要找出250-1以内所有的“梅森素数”及个数。为此,我们先将问题抽象成条件的判断与素数的判断,并完成建模和算法设计,编写Python程序段如下。

    from math import *

    def isPrime(x):  # 判断是否为素数

        i = 2

        while  :

            if x % i == 0:

               return      ①   

            i += 1

        return True

    count = 0

    for p in range(2, 50):  # 判断否为梅森素数

        if     ②    :

            m =    ③   

            if isPrime(m) == True:

                print(m)

                count += 1

    print("2的50次方减1以内的梅森素数共有:" +    ④    + "个")

    1. (1) 为使程序能正确运行,请在划线处填入合适的代码。

         ②   ③   ④  

    2. (2) 为使程序的运行效率最高,加框处可修改的最合适代码为(   )(单选:填字母)
  • 1. (2023高二上·嘉兴期中) 在平面坐标系中,给定一组有序的点。依次用线段连接这些点,构成一条折线。其中字符串a为输入的坐标系中的各点坐标,以逗号为界从a中取出存入b列表中,列表b的第1、2个元素为第一个点的x坐标和y坐标(即x1,y1),第3、4个元素为第二个点的x坐标和y坐标(即x2,y2),依次类推。编写Python程序段如下,用于计算折线的长度。

       from math import *

    def dist(x1, y1, x2, y2):

        length = sqrt((int(x1) - int(x2))**2 +    ①     )

        return length

    a = input("请输入各点的坐标:")    # 如“2,3,4,5”则表示坐标点(2,3)和(4,5)

    b = a.split(",")

    if len(b) % 2 != 0:

        print("输入的坐标有误!")

    else:

        s = 0

        for i in range(0,    ②      , 2):

            s = s +     ③    

    print("折线的长度为:", s)

    1. (1) 如输入的数据为“2,3,5,7,8,11”,则折线的长度为:;如果输入的数据为“2,3,5,7,8,11,”则程序的输出结果是(单选,填字母)。

      A.程序输出正确的折线长度     

      B.输入的坐标有误!     

      C.程序运行出错!

    2. (2) 为使程序能正确运行,请在划线处填入合适的代码。

        ②  ③ 

  • 1. (2023·宁波模拟) 定义如下函数:

    def tob(n)

        if  n=0:

            return "*

        else:

            return tob(n//2)+str(1-n%2)

    执行语句s=tob(10) 后,s的值为(   )

    A . "1010" B . "0101" C . "1001" D . "1100"
  • 1. (2023·宁波模拟) 某医院的看病流程为:患者通过网上、自助设备或人工窗口成功挂号后,到门诊的签到处签到,签到成功后即可排队等待叫号就诊。简化的排队规则如下:

    ①当天08:00之前完成签到的患者,按照挂号顺序从小到大排队就诊;

    ②08:00之后签到的患者,按照挂号的序号从小到大的次序插入候诊队伍中;

    ③队伍中前3名患者(包括正在就诊患者)视为已进入待诊状态,插队的患者只能插到这3 名待诊患者后的队伍中。

    假设医生从08:00开始叫号就诊,对每位患者的诊断时间均为3分钟,忽略相邻患者就 诊的时间间隔。编写程序实现以下功能:若有患者签到,则根据规则更新候诊队伍;医生每 完成一名患者的诊断,电子屏幕上按顺序显示待诊的患者姓名和每个患者预计就诊的时间。

    1. (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. (2) 08:00:00之前签到的患者原始数据存在列表1st  中,每位患者信息包括姓名、挂号序 号、签到时间,以下函数将列表中的数据按挂号序号从小到大排序,并构建候诊队伍。

      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[i][1]<lst[j-1][1]:

                      lst[j],Ist[j-1]=Ist[j-1],Ist[j]

              ____▲____

          for i in range(n):

              lst[i][2]=180*i

              lst[i].append(i+1)

          lst[n-1][3]=-1

      #修改时间格式,每位患者诊断时间为3分钟

      #尾结点指针域处理,如[’E’,8,720,-1]

      程序划线处的代码是       (单选,填字母)

    3. (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. (4) 若有患者签到,则更新候诊队伍。请补充程序划线处。

      def te(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)-]

              p=len(lst)-1

              while q!=-1:

                  lst[q][2]=1st[p][2]+180

                  p=q

                  q=lst[q][3]

          return head

  • 1. (2023高三上·衢州、丽水、湖州期中) 某快递驿站有A、B两类货架,收到的包裹重量小于等于10存放于A货架,其余存放于B货架。编写程序模拟生成取件码和顾客的取件过程,取件码是根据当前已处理的包裹数量生成,如A-0001表示当天第一个处理的包裹存放在A货架,B-0003表示当天第三个处理的包裹存放在B货架。取件码与顾客手机号关联,程序根据输入的手机号显示其所有包裹的取件码,并允许顾客一次性提取或者部分提取。程序的部分运行界面如图a和图b所示。

    1. (1) 当前已处理的包裹取件码是 A-0158,若下一个包裹重量是 12,其取件码为
    2. (2) 定义函数save(pnum,code),参数pnum为手机号,code为取件码。函数功能是将一条包裹信息存储到列表goods和列表dic中。如图a的包裹数据,手机号“180****1215”在两个列表中的数据分别为goods[4]=["B-0005",-1]、goods[9]=["A-0010",4]和 dic[2]=["180****1215",9,2]。

      ①若调用该函数继续存储手机号“180****1215 ”的包裹, 其取件码是“B-0011 ”,则对应 dic[2]的值变为["180****1215",,]。

      ②函数 save 代码如下,程序中加框处代码有错,请改正。

      def save(pnum,code):

          goods.append([code,-1])

          n=len(goods)-1

          print(n,"号包裹的手机号:",pnum,"取件码:",code)

          num=search(dic,pnum)    #函数返回手机号 pnum 在 dic 中的索引号,未找到返回-1

          if num==-1:

              dic.append([pnum,n,1])             #新增一个包裹信息

          else:

              goods[n][1]=dic[num][1]

              dic[num][1]=n

              

    3. (3) 实现取件功能的部分 Python 程序如下,请在划线处填入合适的代码。

      x=input("请输入您的手机号:")

      num=search(dic,x)

      if num!=-1:

          #输出手机号为 x 的当前所有包裹信息,代码略

          op=int(input("输入 0 取全部包裹,输入 1 取部分包裹:"))

          if op==0:

              print("您的包裹已经取完! ")

              del dic[num]  #删除 dic 中索引为 num 的元素

          else:

              order=input("请输入本次的取件码,只输入#表示结束取件:")

              while order!="#":

                 

                  p,q=head,head

                  while goods[q][0]!=order:

                  p=q

                 

              if p==head:

                  dic[num][1]=goods[q][1]

              else:

                  goods[p][1]=goods[q][1]

              dic[num][2]-=1

              if dic[num][2]==0:

                  print("您的包裹已经取完!")

                  break

              #输出手机号为 x 的当前所有包裹信息,代码略

              order=input("请输入本次的取件码, 只输入#表示结束取件:")

      else:

          print("查无此号,请检查后重新输入!")

  • 1. (2023高三上·衢州、丽水、湖州期中) 定义如下函数:

    def f(a,b):

        if a<b:

            return a+b

        else:

            return f(a-b,a+b)

    执行语句 x=f(18,-2)后, x 的值为(   )

    A . 40 B . 36 C . 20 D . 16
  • 1. (2023高三上·浙江月考) 某医院的团体体检流程如下:

    编号登记:为n位体检者设置体检编号1~n。

    体检呼叫:体检项目处空闲时呼叫下一个体检者(编号小的优先),若多个项目同时呼叫,体 检者到优先级小的项目处体检。仅考虑常规体检项目,各个项目的优先级及体检时间如表1所示:

    前去体检:各个体检项目之间相互独立,互不影响;病人排队体检和体检完毕到下一科室之 间没有时间延迟。

    1. (1) 某日下午,仅1个团队4人(分别用编号1,2,3,4表示)参加体检 ,开始体检后第5分钟,4在检查 (填写项目名称)项目。
    2. (2) 定义如下lst(n)函数,生成n人体检队列 。若体检人数为4人,则 que生成结果如表2所示。

      deflst(n):

          que=[]

         

              que.append(temp)

          return que

      若加框处语句改为:

      则执行语句lst(4),que的生成结果 (选填:是/否)相同。

    3. (3) 用 python程序模拟一个10人团队参加体检的流程。程序运行后,体检完成顺序如图1所示:

      Python部分程序如下 , 请在划线处填入合适的代码。

      n=10

      head=0

      que=lst(n)

      tail=10

      dis=[['B超', 12],[ '心电图' , 5],['抽血', 2],['尿常规' , 2],['C14检测', 2],['胸透' , 2], ['一般常规(身高体重血压)', 1]]

      t=[-1]*7         #t记录各个项目当前体检的开始时间

      f=[-1]*7         #f记录各个项目当前体检人员编号

      def jh(num):

          global tail            #global能够实现在自定义函数中改变公共变量tail

          p=head

          while p<tail:

              if que[p][0]not in fand num not in que[p][1]:  #p体检者等待中且未体检num项目

                  que[p][1].append(num)

                 

                  t[num]=time

                  if len(que[p][1])==7:

                      temp=que[p]

                          for i in range(p , tail-1):

                              que[i]=que[i+1]

                          que[tail-1]=temp

                          tail-=1

                      break

              p=p+1

      time=0

      while tail! =head:

          i=0

          while i<7:

              if t[i]==-1:

                  jh(i)

              elif  :

                  t[i]=-1

                  f[i]=-1

                  i-=1

              i+=1

          time+=1

      print('体检完成顺序:')

      for i in range(  ):       #按体检完成顺序输出体检者及其的体检项目顺序

          item= que[i][1]

          s= '  '

          for j in item:

              s+=dis[j][0]+'→'

          print('编号%d:%s'%(que[i][0], s[:-1]))

上一页 1 2 3 4 5 下一页 共55页