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

admin2019-07-10  38

问题 下列给定程序中,函数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
    请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
#inclucle<stdio.h>
#define N 4
void fun(int(*t)[N],int m)
{
    inL i,j;
/**********found***********/
  for(i=0; i<N;【1】)
  {  for(j=N—1—m;j>=0;j一一)
/**********found***********/
    t[j+【2】]=t[j];
/**********found***********/
    for(j=0;j<【3】,j++)
    t[j]=0;
    }
}
main()
{
  int t[][N]={21,12,13,24,25,16,
47,38,29,11,32,54,42,21,33,10},i,
j,m;
  printf(“\nThe original array:\n”);
  for(i=0 ; i<N; i++)
  {for(j=0,j<N;j++)
    printf(“%2d”,t[j]);
    printf(“\n”),
    }
    printf(“Input m(m<=%d):”,N);
    scanf(“%d”,&m);
    fun(t,m);
    printf(“\nThe result is:\n”),
    for(i=0,i(N;i++)
    {  for(j=0;j<N; j++)
    printf(“%2d”,t[j]);
    printf(“\n”);
    }
}

选项

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

解析 填空1:循环语句中,循环变量i增量为1。
  填空2:将每行元素中的值均右移m个位置,所以数组元素的下标是:[j+m]。
    填空3:此for循环语句实现左边元索置0操作,所以j的取值范围是0一m。
转载请注明原文地址:https://kaotiyun.com/show/FZID777K
0

最新回复(0)