给定程序中,函数fun的功能是:有NxN矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵:

admin2020-04-18  40

问题 给定程序中,函数fun的功能是:有NxN矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。
    例如,若N=3,有下列矩阵:
    1    2    3
    4    5    6
    7    8    9
  计算结果为
    7    4    1
    8    5    2
    9    6    3
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include
#define N 4
void fun(int(*t)[N])
{ int j,r[N];
  for(j=0;j  for(j=0;j/**********found***********/
    t[0][N—j—1]=t[j][____1____];
  for(j=0;j    t[j][0]=t[N一1][j];
/**********found***********/
  for(j=N—1; j>=0;___2___)
    t[N—1][N—1—j]=t[j][N一1];
  for(j=N一1 ; j>=0 ; j一一)
/**********found***********/
    t[j][N一1]=r[___3____];
}
main()
{int t[][N]={21,12,13,24,25,16,47,
38,29,11,32,54,42,21,33,10),i,j;
  printf {"\nThe original array:\n");
  for(i=0;  i  {  for(j=0; j(“%2d”,t[j]);
    printf(“\n”);
    }
    fun(t);
    printf(“\nThe resu2t is:\n”);
    for(i=0;  i    {  for(j=0;j(“%2d”,t[j]);
    printf(“\n”);
    }
  }

选项

答案(1)0 (2)j-- (3)j

解析 函数fun操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。
   [解题思路]
    第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是t[j][0],第一行元素是t[0][N-j-1],故第一空处应为“0”。
    第二空:第四个循环是最后一列成为最后一行,即将最后一列移动到最后一行,“for(i=N—1;i=0;__2__)”循环变量i从N—1开始,到0结束,共循环N次,故i每次减一,第三空处是“i--”。
    第三空:最后一个循环将临时数组中的元素成为最后一列,即t[j][N一1]=r[j],故第三空处应为“j”。
转载请注明原文地址:https://kaotiyun.com/show/stCp777K
0

最新回复(0)