充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. (2023高二上·浙江期中) 用1~26的二进制值对大写英文字母A~Z进行编码,编码如下表所示:

    A

    00001

    B

    00010

    C

    00011

    D

    00100

    E

    00101

    F

    00110

    G

    00111

    H

    01000

    I

    01001

    J

    01010

    K

    01011

    L

    01100

    M

    01101

    N

    01110

    O

    01111

    P

    10000

    Q

    10001

    R

    10010

    S

    10011

    T

    10100

    U

    10101

    V

    10110

    W

    10111

    X

    11000

    Y

    11001

    Z

    11010

        

    小明使用该编码对由大写字母组成的明文字符串进行加密,加密算法如下:

    l依次将明文中每个字符转换为其对应的二进制编码;

    l依次将密钥中每个字符转换为其对应的二进制编码;

    l依次取出密钥的每个二进制位与原文的二进制位进行异或运算(若密钥长度不够,则循环重复使用),得到的结果即为密文编码;

    l二进制位异或运算原则:11=0,00=0,10=1,01=1

    例如,明文:HELLO,密钥:ZHE,则按上述方式进行加密:

    明文字符

    H

    E

    L

    L

    O

    密钥字符

    Z

    H

    E

    Z

    H

    明文编码

    01000

    00101

    01100

    01100

    01111

    密钥编码

    11010

    01000

    00101

    11010

    01000

    密文编码

    10010

    01101

    01001

    10110

    00111

    1. (1) 若原文为“HUI”,密钥为“TZ”,则密文编码为
    2. (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)

  • 1. (2023高二上·浙江期中) 寻找素单词。素数是指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。例如,2,3,5,7等是素数。本题输入一个单词,每个单词由小写字母组成。每个字母对应一个特定的值,字母a对应1,字母 b对应2,以此类推,字母z对应26。如果这个单词的字母值的总和是素数,则这个单词是素单词( prime word)。请编写程序,判定一个单词是否为素单词。

    1. (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. (2) 下列选项中不可以填入加框处的代码是      (单选,填字母)。
  • 1. (2023高三上·杭州期中) 有如下Python程序,其功能为删除无序链表(元素个数大于等于2)中的重复元素。

    def dele(a, head):

    pre=head; p=a[head][1]

    while p!=-1:

    q=head

    flag=False

    while:

    if a[q][0]==a[p][0]:


    p=a[p][1]

    flag=True

    break

    q=a[q][1]

    if not flag:

    pre=p;

    p=a[p][1]

    a=[[0, 3], [1, 2], [1, 4], [0, 1], [0, 5], [2, -1]]

    dele(a, 0)

    ①q!=-1   ②q!=p   ③a[pre][1]=a[p][1]   ④a[pre][1]=a[q][1]

    方框中填入的正确代码依次为(    )

    A . ②④ B . ②③ C . ①④ D . ①③
  • 1. (2023高三上·杭州期中) 某工厂生产的产品包含n个(编号为0~n-1)组件,其组装可由多名工人共同协助完成。组装时每个组件都不可遗漏并能按序完成,有些组件存在前置组件(以下简称“前置”),即安装有先后顺序。例如,某产品有6个组件,如下图a所示,组件3的前置是组件1和组件2,即安装组件3需要在组件1和组件2完成之后。若0~5号组件的组装所需单位时间分别为2,5,2,4,3,5,则在工人数量不限的情况下,所有组件安装完成最短需要14个单位时间。

    图a

    为了梳理产品组件的组装顺序,并计算所有组件安装完成所需的最短时间,编写程序模拟组装过程:先同时组装前置总数为0的组件,完成后更新每个组件的前置总数,再重复以上步骤,直至所有组件安装完毕,程序运行结果如下图b所示,请回答下列问题:

    图b

    1. (1) 图a所示产品的1号组件组装时长若缩短为3个单位时间,其它时间保持不变,则所有组件安装完成所需最短时间为个单位时间。
    2. (2) 定义如下cal(a, n)函数,参数a列表的每个元素包含两项,a[i][1]是组件编号,a[i][0]是a[i][1]的前置编号,例如a中某个元素值为[2,3],表示组件2是组件3的前置。该函数的返回值是列表s和列表pre,其中s记录所有组件的相互关系,pre[i]记录初始情况下组件i的前置总数。

      Def cal(a, n):

      pre=[0]*n

      s=[[0 for i in range(n)] for j in range(n)]              #创建n×n的二维数组s,元素初始值为0

      for i in range(len(a)):

      x, y=a[i][0], a[i][1]

      s[x][y]=1

      pre[y]=

      return pre, s

    3. (3) 定义如下proc(n, s, pre)函数,该函数的返回值是列表v, v[i]代表从开始到组件i完成组装所需的最短时间。请在划线处填入合适的代码。

      def proc(n, s, pre):

      head=tail=0

      que=[0]*n

      for I in range(n):

      if pre[i]==0:

      que[tail]=i

      tail+=1

      while :

      x=que[head]

      head+=1

      for i in range(n):

      if s[x][i]==1:

      pre[i]-=1

      if pre[i]==0:

      que[tail]=i

      tail+=1

      v[i]=max(v[i],

      return v

      """

      组装编号0~n-1的单个组件所需时间存入t列表,组件前置关系存入a列表,如第15题图a所需时间t=[2, 5, 2, 4, 3, 5];a=[[0, 2], [2, 3], [1, 3], [3, 5], [3, 4]]

      """

      n=len(t)

      print(’编号为0~’+str(n-1)+’的组件组装所需单位时间分别为:’, t)

      v=t[:]

      pre, s=cal(a, n)

      v=proc(n, s, pre)

      data=[0]*n

      result=[i for I in range(n)]               #创建列表result=[0,1,2,……,n-1]

      for i in range(n):

      data[i]=v[i]-t[i]               #data[i]表示组件i开始安装时间

      for i in range(n-1):            #按组件开始安装时间升序排序,开始安装时间相同时按组件序号升序

      for j in range(n-1-i):

      if data[result[j]]>data[result[j+1]]:

      print(‘组件组装顺序:’, result, ‘, 安装完成所需最短时间:’, max(v))

    4. (4) 以下选项与题(3)加框处代码功能相同的是___________(多选,填字母)。
  • 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高三上·杭州期中) 有如下Python自定义函数:

    def fun(x, i):

    if x<i:

    return i

    elif x%i==0:

    return x

    else:

    return fun(x-i, i+1)

    执行语句k=fun(37, 3)后,k的值为(    )

    A . 5 B . 6 C . 30 D . 34
  • 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 2 3 4 5 下一页 共54页