问答题 给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵 1 2 3 4 5 6 7 8 9 计算结果为 3 1 2 6 4 5 9 7 8 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #define N 4 void fun(int (*t)[N]) { int i, j, x; /**********found**********/ for(i=0; i<___1___; i++) { /**********found**********/ x=t[i][___2___] ; for(j=N-1; j>=1; j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][___3___]=x; } } main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("The original array:/n"); for(i=0; i { for(j=0; jprintf("/n"); } fun(t); printf("/nThe result is:/n"); for(i=0; i { for(j=0; jprintf("/n"); } }
【正确答案】第一处:函数fun是对N×N矩阵进行操作,for循环的终止值为N。 第二处:把最后一列的元素值赋值给临时变量x保存用来交换,所以应填:N-1。 第三处:第1列元素值使用x替换,由于C语言的下标是从0开始的,所以应填:0。
【答案解析】