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

admin2019-03-06  23

问题 给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。
操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。
    例如,若N=3,有下列矩阵:
1    2    3   
计算结果为
7  4    1
    4    5    6    8    5    2
    7    8    9    9    6    3
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
#include
#define N 4
void fun (int  (*t) [N])
{ int j ,r[N];
         t [0] [N—j—1]=t [j ] [ ____1____] ;
  for(j=N—l; j>=0;   2   )
         t [N—1] [N—1—j ] =t [j ] [N—1] ;
  for(j=N—l; j>=0; j——)
         t [j ] [N—lJ =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(j=0; j         printf ("\n") ;
        }
     fun (t) ;
  printf("\nThe result is:\n");
  {  for(j=0; j         printf ("\n") ;
    }
}

选项

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

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

最新回复(0)