改错题
给定程序MODI1.c中函数fun的功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容,并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序如下:
#include <stdio.h>
void fun()
{
int a[3][3],sum;
int i,j;
/*********found**********/
______;
printf('Input data:');
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
/*********found**********/
scanf('%d',a[i][j]);
}
for (i=0;i<3;i++)
sum=sum+a[i][i];
printf('Sum=%d\n',sum);
}
main()
{
fun();
}
【正确答案】(1)sum=0; (2)scanf('%d',&a[i][j]); 答案考生文件夹
【答案解析】该题考查对循环语句的掌握和对数组概念的理解。本题的解题思路:先从键盘输入一个3×3矩阵,然后循环累加,执行循环语句中的“sum=sum+a[i][i];”。第一处,因为变量sum用来存放累加后的结果,所以应对其初始化为0。第二处错误考查标准输入函数scanf的格式,被赋值的变量前要加上取地址符“&”。