下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返回此和数。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>define M 5int fun(int n,int XX[][M]){int i,j,sum=O;printf("\nThe %d x %d matrix:\n",M,M);for(i=0;i<N;i++){fo

题目

下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返回此和数。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <conio.h>

include <stdio.h>

define M 5

int fun(int n,int XX[][M])

{

int i,j,sum=O;

printf("\nThe %d x %d matrix:\n",M,M);

for(i=0;i<N;i++)

{

for(j=0;j<M;j++)

/*************found*************/

printf("%4d",XX[i j]);

/*************found*************/

printf('\n');

}

for(i=0;i<n;i++)

sum+=xx[i][i]*XX[i][i]+XX[i][n-i-1]

*XX[i][n-i-1];

return(sum);

}

main()

{

int aa[M][M)={{3,12,4,24,35},

{11,3, 3,7, 56},{61,27,58,49,24},

{17,28,7,36,85},{15,33,5,24,9}};

clrscr();

printf("\nThe result of all elements on 2

diagnals iS%d",fun(M,aa));

}


相似考题
更多“下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返 ”相关问题
  • 第1题:

    下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

    例如:输入352,则输出应该是38;若输入328,则输出应该是77。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    include <conio.h>

    long fun(long num)

    {

    /*+**+*+*+*found************/

    long k=1;

    do

    {

    k+=(num%10)*(num%10);

    num/=10;

    /*********+found*+**+*+******/

    }while(num)

    return(k);

    }

    main()

    {

    long n;

    clrscr();

    printf("\Please enter a number:");

    scanf("%ld",&n);

    printf("\n%ld\n",fun(n));

    }


    正确答案:(1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num);
    (1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num); 解析:错误1:k用来存放各位数字的平方和,初值应为0。
    错误2:do-while语句的语法,while()后加分号。

  • 第2题:

    请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。

    例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    long fun(int n)

    {

    }

    main()

    {

    int n;

    long sum;

    printf("Input n:");

    scanf("%d",&n);

    sum=fun(n);

    printf("sum=%ld\n",sum);

    }


    正确答案:long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ }
    long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ } 解析:本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。

  • 第3题:

    下列给定程序中,函数proc()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。 请修改函数proc()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:
    (1)错误:for(i=0;j<3;j++)

  • 第4题:

    下列给定程序中,函数fun()的功能是:判断一个整数m是否是素数,若是返回l,否则返回0。在main()函数中,若fun()返回1则输出YES,若fun()返回0则输出NO!

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

    试题程序:

    include <conio.h>

    include <stdio.h>

    int fun(int m)

    { int k=2;

    while (k<=m&&(m%k))

    /*************found*********************/

    k++

    /*************found*********************/

    if(m=k)

    return 1;

    else return O;

    }

    main ( )

    { iht n;

    clrscr ();

    printf("\nPlease enter n: ");

    scanf ("%d", &n);

    if (fun (n)) printf ("YES\n");

    else printf ("NO! \n");

    }


    正确答案:(1)错误:k++ 正确:k++ (2)错误:if(m=k) 正确:if(m==k)
    (1)错误:k++ 正确:k++ (2)错误:if(m=k) 正确:if(m==k) 解析:函数fun()的功能是判断m是否为素数:m从2开始作为除数,并对m取余,若不存在一个数使得余数为0,则m为素数,程序的错误在于if(m=k)语句中的逻辑表达式写成了赋值表达式。

  • 第5题:

    下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

    试题程序:

    include <conio.h>

    include <stdio.h>

    define M 5

    /**********************************/

    iht fun(int n, int xx[ ][ ])

    { int i, j, sum=0;

    printf("\nThe %d x %d matrix:\n",M,M);

    for(i=0;i<M;i++)

    { for (j=0; j<M; j++)

    /**********************************/

    printf("%4f",xx[i][j]);

    printf("\n");

    }

    for(i=0;i<n;i++)

    sum+=xx[i][i]+xx[i][n-i-1];

    return(sum);

    }

    main ()

    { int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},

    {6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};

    clrscr();

    printf("\nThe sum of all elements on 2

    diagnals is %d",fun(M, aa));

    }


    正确答案:(1)错误: int fun(iht nintxx[][]) 正确: int ltm(iht mint r.x[][M]) (2)错误: printf("%4ff'xx[i]fj]); 正确: printf("%4d"xx[i][j]);
    (1)错误: int fun(iht n,intxx[][]) 正确: int ltm(iht mint r.x[][M]) (2)错误: printf("%4f,f',xx[i]fj]); 正确: printf("%4d",xx[i][j]); 解析:该题错误比较隐蔽,一般的C语言上机考试很少涉及printf顺数中的错误,在这里,我们只要明白“d”和“f”的区别就OK了。格式字符d表示:以带符号的十进制形式输出整数(正整数不输出符号);格式字符f表示;以小数形式输出单、双精度,隐含输出6位小数。