当前位置: 高中信息技术 / 综合题
  • 1. (2022高二下·宁波期中) 某程序功能如下输入n,生成n*n的方阵,存于列表a,内容为1至9的随机整数。再对以(x0,y0)和(x1, y1)为对角顶点的矩形区域中的数据进行水平翻转,并将变换后的二维数组以矩阵形式输出。再输入小于n的四个数字(如a,b,c,d,四者关系必须满足a<c,b<d),用逗号间隔: 2,1,6,5 则左上角为a[1][2] ,右下角为a[5][6],则运行程序后,运行界面如图所示。

    1. (1) 以上图为例,如果输入左上角+右下角的坐标为:2,3,7,5。水平翻转后,则元素a[3][4]的值在新数组保存在元素a[][](填写下标)中。
    2. (2) 代码如下并完成填空。

      #生成n*n的矩阵

      import random

      n=int(input(‘输入n,产生n*n的方阵:’ ))

      a=[[random.randint(1,9) for i in range(n)] for j in range(n)]

      for i in a:

        print(i)

      print( )

      x,y=[],[]

      xy=input("请输入左上角+右下角坐标:") #输入左上角坐标+右下角坐标,用逗号分隔数字。如:"2,1,14,13"

      xy=xy+","

      c,j=0,0

      for i in range(len(xy)):

        if xy[i]==",":

          if :

            x.append(int(xy[j:i]))

          else:

            y.append(int(xy[j:i]))

         

          c=c+1

      for i in range(y[0],y[1]+1,1):

        for j in range(x[0],(x[0]+x[1])//2+1,1):

          a[i][j],a[i][]=a[i][],a[i][j]

      for i in range(len(a)):

        print(a[i])

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