问答题 给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6 7 8 9 程序执行结果为 0 0 l 0 0 4 0 0 7 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 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[i][j+__2___]=t[i][j];10 /**********found**********/11 for(j=0;j<__3__;j++)12 t[i][j]=0;13 }1415 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[i][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(2=0;i<N;i++)27 { for(j=0;j<N;j++)28 printf(''%2d'',t[i][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[i][j]元素放置在t[i][j+m]上,因此第二空应为“m”。 第三空:循环“for(j=0;j<__3__;j++)”是对空出来的位置补0,每行元素的前m位数据已经移动到后面,每行空处m个元素,因此第三空为“m”。