给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6 7 8 9 程序

admin2018-09-27  22

问题 给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵
    1    2    3
    4    5    6
    7    8    9
  程序执行结果为
    0    0    1
    0    0    4
    0    0    7
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #define N 4
3  void fun(int(*t)[N],int m)
4  {  int i,j;
5  /**********found**********/
6  for(i=0;i<N;__1__)
7  {  for(j=N-1-m;j>=0;j--)
8  /**********found**********/
9  t[j+__2__]=t[j];
10  /**********found**********/
11  for(j=0;j<__3__;j++)
12  t[j]=0;
13  }
14  }
15  main()
16  {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j,m;
17  printf(’’\nThe original array:\n’’);
18  for(i=0;i<N;i++)
19  {  for(j=0;j<N;j++)
20  printf(’’%2d’’,t[j]);
21   printf(’’\n’’);
22    }
23  printf(’’Input m(m<=%d):’’,N);scanf(’’%d’’,&m);
24  fun(t,m);
25  printf(’’\nThe result is:\n’’);
26  for(i=0;i<N;i++)
27  {  for(j=0;j<N;j++).
28  printf(’’%2d’’,t[j]);
29  printf(’’\n’’);
30    }
31  }

选项

答案(1)i++ (2)m (3)m

解析 函数fun的功能是将每行元素中的值均右移m个位置。
    第一空:题目要求对每行元素中的值均右移m个位置,故第一空处循环变量每次增1,共循环N次,完成对N行的移位操作,因此,第一空处应为“i++”。
    第二空:循环“for([j=N-1-m;j>=0;j--)”是进行行元素中的值右移m个位置,即把t[j]元素放置在t[j+m]上,因此,第二空应为“m”。
    第三空:循环“for([j=0;j<__3__;j++)”是对空出来的位置补0,每行元素的前m位数据已经移动到后面,每行空处m个元素,因此,第三空为“m”。
转载请注明原文地址:https://kaotiyun.com/show/OAxp777K
0

最新回复(0)