B043

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

所属年份:2011.9

下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。
例如,若N=3,有下列矩阵:
1  2  3
4  5  6
7  8  9
首先累加1、5、9,然后累加3、5、7,函数返回值为30。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

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

#include    <stdio.h>
#define    N    4
fun(int  t[][N], int  n)
{
    int  i, sum;
    /**********found**********/
    ___1___;
    for(i=0; i<n; i++)
        /**********found**********/
        sum+=___2___ ;
    for(i=0; i<n; i++)
        /**********found**********/
        sum+= t[i][n-i-___3___] ;
    return sum;
}

main()
{
    int  t[][N]= {21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;
    printf("\nThe original data:\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)  printf("%4d",t[i][j]);
        printf("\n");
    }
    printf("The result is:  %d",fun(t,N));
}

【参考答案】

(1) sum=0  
(2) t[i][i]  
(3) 1

【考点分析】
本题考查:变量初始化;N×N矩阵对角线下标如何表示;累加操作。
【解题思路】
填空1:变量sum用来储存”和”结果,所以将其初始化为0。
填空2:从题目中我们可以了解到,主对角线元素的行和列下标是相同的,所以应填入t[i][i]。
填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,所以应填入1。