B089

01-程序填空题 田少松, 软件154 1094浏览

所属年份:2012.3;
给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。
例如,有下列矩阵:
1  2  3
4  5  6
7  8  9
10  11  12
若k为2,程序执行结果为:
7  8  9
4  5  6
1  2  3
10  11  12
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
#define   N   3
#define   M   4
/**********found**********/
void fun(int (*a)[N], int __1__)
{
    int i,temp ;
    /**********found**********/
    for(i = 0 ; i < __2__ ; i++)
    {
        temp=a[0][i] ;
        /**********found**********/
        a[0][i] = __3__ ;
        a[k][i] = temp ;
    }
}

main()
{
    int x[M][N]= { {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j;
    printf("The array before moving:\n\n");
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++) printf("%3d",x[i][j]);
        printf("\n\n");
    }
    fun(x,2);
    printf("The array after moving:\n\n");
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++) printf("%3d",x[i][j]);
        printf("\n\n");
    }
}

【参考答案】

(1)k  
(2)N  
(3)a[k][i]

【解题思路】
填空1:变量k在函数体fun中已经使用,但在函数体中没有定义,肯定是在函数的形参中定义的,所以应填k。
填空2:数组共N列,所以应填N。
填空3:这部分语句实现的功能是变量值的交换,所以应填a[k][i]。