M066

02-程序修改题 软件154 范金瑞 1515浏览

所属年份:2011.3

下列给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如,输入1、2、3、4,程序运行后输出以下方阵:
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
#define  M  4
/*************found**************/
void fun(int a)
{
    int I,j,k,m;
    printf("Enter 4 number: ");
    for(I=0; I<M; I++) scanf("%d",&a[I]);
    printf("\n\nThe result :\n\n ");
    for(I=M; I>0; I--)
    {
        k=a[M-1];
        for(j=M-1; j>0; j--)
            /*************found**************/
            a[j]=a[j+1];
        a[0]=k;
        for(m=0; m<M; m++) printf("%d ",a[m]);
        printf("\n ");
    }
}
void main()
{
    int a[M];
    fun(a);
    printf("\n\n ");
}

【参考答案】

(1)void fun(int *a)
(2)a[j]=a[j-1];

【考点分析】
本题考查:形参函数的表示;数组的赋值。

【解题思路】
(1)由函数的调用形式可知,函数fun的形参变量应为指针类型。
(2)每次循环都将最后一个元素取出,使前面的元素向后移动一位,因此为a[j]=a[j-1];。