充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. (2023高三上·浙江月考) 有如下 Python程序:

    q=[0]*6

    q[0]=1

    head=0; tail=1

    while tail<len(q)=1:

        x=q[head]

        if x%2==0:

            q[tail]=x//2

            tail+=1

        else:

            q[tail]=x*2

            q[tail+1]=x*3

            tail+=2

    head+=1

    程序运行后 , tail-head的值为(   )

    A . 3 B . 4 C . 5 D . 6
  • 1. (2023高三上·浙江开学考) 有如下 Python 程序段:

    import random

    a = [1,3,4,6,6,6,9,9,11,12]

    key = random.randint(2,5) * 2

    i,j = 0,9

    while i <= j :

        m = (i + j) // 2

        if key < a[m]:

            j = m - 1

        else:

            i = m + 1

    print(j)

    执行该程序段后,输出的结果不可能是(   )

    A .2                  B .3                  C . 5                  D . 7

  • 1. (2023高三上·浙江开学考) 张三是一名计算机专业的大学生,为了帮助同学们学习专业相关的英语词汇,编写一个简易字典程序。该程序中存放词汇数据库,在学习中输入英文单词,可以获得中文翻译结果。程序中的词汇数据库采用链表方式存储,首字母相同时按升序排序。查找单词时,首先根据首字母找到同首字母最小单词所在链表,再按照链表顺序查找该单词。
    1. (1) 根据题意 ,部分的单词库数据逻辑结构如图所示 ,查找单词“byte” 的过程是 “binary ”→ “bit ”→“byte”,补充图中空白单元格的值为

    2. (2) wordlist(data,info)函数实现将词汇数据库 data 以链表的方式按字母序升序排列。info 表示词汇数据库中各字母开头的最小单词位置,如 info[0]表示字母 a 开头的最小单词在 词汇数据库 data 中的位置。实现该功能的程序如下,请在划线处填入合适的代码。

      def wordlist(data,info) :

          n = len (data)

          for i in range(n):

              data[i].append(-1)    #data[i]追加一个元素-1

          for i in range(n):

              d = data[i][0]

             

              if info[k] == -1:

                  info[k] = i

              else:

                  head = info[k]

                  q = head

                  while  :

                      p = q

                      q = data[q][2]

                  if q != head:

                      data[p][2] = i

                      data[i][2] = q

                  else:

                      data[i][2] = head

                     

      return data,info

    3. (3) searchword(data,info,key)函数实现单词的查找。程序如下,请在划线处填入合适的代码。

      def searchword(data,info,key) :

          k = ord(key [0]) - ord("a")

          head = info[k]

          p = head

          while p != -1:

              if data[p][0] == key:

                  return

                  p = data[p][2]

      return "没有找到该单词"

      读取词汇数据库,存入列表 data 中,列表的每个元素包含 2 个数据项,分别为英文单词和中 文翻译,如 data = [[‘audio ’,‘音频 ’], [‘binary ’,‘二进制数 ’] …], 数据读取 存入的代码略。

      '''

      info = [-1] * 26

      data,info = wordlist(data,info)

      key = input("请输入查找单词:").lower ()    #转化为小写字母

      res = searchword(data,info,key)

      print(key, "查找结果是:", res)

  • 1. (2023高三上·浙江月考) 有如下Python程序段:

    a=['1','14','5141','91','9810']

    key=input()

    i=0;j=len(a)-1

    while i<=j:

        m=(i+j)//2

        if a[m]==key:

           break

        elif a[m]<key:

            i=m+1

        else:

            j=m-1

    b=''

    for i in range(len(a[m])):

        b+=chr(ord(a[m][i])-49+97)

    print(b)

    已知ord(‘a’)的值为97,ord(‘1’)的值为49,若输入的key值为“1919810”,则程序运行后输出为(     )

    A . aadead B . 114514 C . 1919810 D . ad
  • 1. (2023高二下·丽水期末) 有如下 Python 程序段:

    d= [1,3,8,15,22,26,28,40,46,61,80]

    i=0;j=len(d)-1

    while i<=j:

        m= (i+j)//2

        if key<d[m] :

            j=m-1

        else:

           

    若 key 值为 22,程序运行结束后,加框处语句执行的次数为(   )

    A . 1 B . 2 C . 3 D . 4
  • 1. (2023高二下·丽水期末) 某 Python 程序如下:

    p=")!@#$%^&*("

    c="cra2edu"

    t=""

    for i in range(len(c)//2+1):

        if i%2==0:

            t+=c[len(c)-i-1]

        elif c[i]>="0" and c[i]<="9":

            t+=p[int(c[i])]

        else:

            t+=c[i]

    print(t)

    程序运行后,输出的结果是(   )

    A . ure@ B . ure@a C . ude@ D . cda!
  • 1. (2023高一下·铜山期末) 小明和小华玩猜数字游戏,所猜数字不超过800,小明首先猜400,小华说大了,小明又猜200,小华再次说大了,小明猜100,小华说小了,小明猜150,以此类推,直到猜到正确的数字。上述方法中蕴含的算法是(   )。
    A . 穷举算法 B . 递归算法 C . 二分查找法 D . 顺序查找法
  • 1. (2023·浙江模拟) 贪吃蛇在𝑛×𝑛(1≤𝑛≤10)的方阵中游走,它可以往上下左右四个方向游走,当穿越方阵的边界时还可以从该边界的对立面继续进入方阵。初始时你可以任意安排贪吃蛇的起点位置,并且选择一个方向一直走𝑛步。方阵中“.”表示空位置,数字表示可以吃的食物,每吃到一个数字时,这个数字便会附着到贪吃蛇的尾部,同时方阵中该数字会消失。问:在某个时刻,贪吃蛇身上会不会出现我们想要的某个整数;若有,会有多少个数会小于该整数。

    例如,在右侧5×5的方阵中可以产生[1,3,4,12,21,234,243,324,342,423,432]共11个数。其中数“234”的产生过程可以是:选择第4行第2列为起点,第一步吃掉2,接着往右走三步吃掉3,再往右走一步穿越到对面的4,吃掉它成为“234”,共五步。其中“1234”或“123”等整数是不可能出现的。

    请回答以下问题。

    1. (1) 输入方阵保存至数组𝑎,然后将贪吃蛇所有可能吃到的所有数字组合保存到数组𝑏中,请补充完该算法程序。

      dx = [0, 1, 0, -1]     # 模拟贪吃蛇往四个方向游走时行号变化的数组

      dy = [1, 0, -1, 0]     # 列号变化数组

      n = int(input())      # 方阵的大小

      a, b = [], []

      for i in range(n):

          s = input().strip().split() #方阵中的一行数据,“.”号和数字字符都以空格分隔

          a.append(s)

      def calc(i, j, p):

          x, y, res = i, j, 0

          if '0' <= a[x][y] <= '9':

              res = int(a[x][y])

              for i in range(n-1):

                  x =      # 产生新的行号

                  y = # 产生新的列号(与行号类似),代码略

                  if '0' <= a[x][y] <= '9':

                      res = res * 10 + int(a[x][y])

              return res

      for i in range(n):

          for j in range(n):

              for k in range(4):

                  num =

                  if num > 0:

                      b.append(num)

      print(b)       # 输出所有可能能产生的整数(可能会产生重复的整数)

    2. (2) 若数组 a= [['.', '1', '.'], ['.', '2', '3'], ['.', '.', '.']],上述程序处理完后𝑏数组中(选填:存在 / 不存在)整数2。
    3. (3) 对𝑏数组中的所有整数进行升序排序,输入待查找的数据,输出小于等于该数字的数有多少个。请补充完该算法程序。

      b = [1, 12, 23, 23, 23, 35, 35,146]

      输入输出示例:

      请输入待查找的整数:23

      小于等于23的数共有5个

      请输入待查找的整数:31

      小于等于31的数共有5个

      bn = len(b)

      for i in range(bn-1):

          for j in range(  ):

              if b[j] > b[j+1]:

                  b[j], b[j+1] = b[j+1], b[j]

      key = int(input("请输入待查找的整数:"))

      i, j = 0, bn-1

      while i <= j:

          m = (i + j) // 2

          if :

              i = m + 1

          else:

              j = m - 1

      print("小于等于", key, "的数共有", i, "个")

  • 1. (2023·绍兴模拟) 有如下Python程序段:

    import random

    d=[28, 37, 39, 42, 45, 50, 70, 80]

    i, j, n=0, len(d)-1, 0

    key=random.randint(20, 35)*2

    while i<=j:

        m=(i+j)//2; n+=1

        if key==d[m]:

            break

        elif key<d[m]:

            j=m-1

        else:

            i=m+1

    print(i, j, m, n)

    执行该程序段后,下列说法正确的是(   )

    A . n的值可能为4 B . 若n值为2,则必定满足i<=j C . m的值可能为1 D . 若n值为3,则key的值可能是45
  • 1. (2023高二下·宁波期中) 有如下 python 程序段:

    import random

    total=10

    num=[0]*total

    for i in range(total):

        num[i]=random.randint(1,100)

    m1,m2=len(num)-1,len(num)-1

    for i in range(len(num)):

        if num[i]>num[m2]:

            m1=m2;m2=i

        elif num[i]>num[m1]:

            m1=i

    print(m2,m1)

    假设当前num=[47, 4, 46, 75, 52, 6, 71, 81, 34, 11],则该程序段运行后的输出结果为(   )

    A . 2 5 B . 3 7 C . 5 2 D . 7 3
1 2 3 4 5 下一页 共66页