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

admin2019-09-02  70

问题 给定程序中,函数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中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#define N 4
void fun(int(*t)[N],int m)
{  int 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

解析 函数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/zORp777K
0

相关试题推荐
最新回复(0)