当前位置: 高中信息技术 / 综合题
  • 1. (2023·诸暨模拟) 小张喜欢用英文传递消息,但又不想传递的内容被别人知道。因此他想了一个两全其美的方法。他先给对方准备两张有 n*n 个格子的纸,一张在某些格子处挖“孔”,另一张有 n*n 个字。并告诉对方阅读方法:首先先把挖“孔”的纸盖在另一张纸上,然后把露出来的字母按行从左到右写下来并将每个字母向左循环移一位(如取出是D,则左移为C。如是A,则左移为Z),一行读完后再从下一行继续,直到行读完。然后将挖空的纸顺时针旋转90度,再读一遍,这样子一共读四遍,就得到传递的内容。

    1. (1) 若挖空纸(0表示挖“孔”,1代表不挖“孔”)如图a所示,有字纸张内容如图b所示,则获取内容的前八位是

    2. (2) 小张根据上述阅读规则,设计了一个小程序,其运行结果如图c所示,请在划线处填入合适的代码。

      import random as rd

      def proempty(n,m):

          #在 n*n 的矩阵中随机产生 m 个"孔"

          empty=[[1 for i in range(n)] for j in range(n)]

          s=[]

          #s 存储"孔"的位置

          k=0

          while k<m:

              i=rd.randint (0,n-1)

              j=rd.randint (0,n-1)

              if:

                  empty[i][j]=0

                  s.append([i,j])

                  k+=1

          return empty

      def turn(array):     #将矩阵顺时针旋转 90 度

          matrix=[[0 for i in range(len(array))] for j in range(len(array))]

          for i in range(len(array)):

              for j in range(len(array)):

                  matrix[i][j] = array

          return matrix

      def eleque(array):     #查找“孔”的位置

          q=[]

          for i in range(len(array)):

              for j in range(len(array)):

                  if :

                      q.append([i,j])

          return q

      n=int(input("输入纸张的大小:"))

      m=int(input("输入挖“孔”的个数:"))

      s=input("输入所传纸条内容:")

      #将输入内容转换成二维列表,存储在 mw 中并输出纸条内容(如图 c),代码略。

      emptya=proempty(n,m)

      #产生挖"孔"纸,如图 c

      #输出挖“孔”纸,代码略

      mwstring=""; s=""

      for cs in range(4):

          que=eleque(emptya)

          for j in range(len(que)):

              ch=mw[que[j][0]][que[j][1]]

              mwstring+=

         

      print("真实内容为:")

      print (mwstring)

微信扫码预览、分享更方便