问答题 给定程序中,函数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 #define N 4 void fun(int (*t)[N], int m) { int i, j; /**********found**********/ for(i=0; i { for(j=N-1-m; j>=0; j--) /**********found**********/ t[i][j+___2___ ]=t[i][j]; /**********found**********/ for(j=0; j<___3___; j++) t[i][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 { for(j=0; j printf("- ",t[i][j]); printf("/n"); } printf("Input m (m<=%d): ",N);scanf("%d",&m); fun(t,m); printf("/nThe result is:/n"); for(i=0; i { for(j=0; j printf("- ",t[i][j]); printf("/n"); } }
【正确答案】第一处:for循环变量的增量,所以应填:i++。 第二处:由于右移m个位置,所以应填:m。 第三处:左边m列均置于0,所以for循环的终止值应为m。
【答案解析】