填空题 给定程序中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
int fun(int k)
{int m=0,mc=0;
while((k>=2)&&(mc<10))
{
/************found************/
if((k%13=0)||(k%17=0))
{m=m+k;mc++;}
k--;
}
return m;
/************found************/
1
main()
{
printf("%d/n",fun(500));
}
【正确答案】
【答案解析】(1)if((k%13==0)||(k%17==0))
(2)} [解析] (1)C语言中,x能被y整除的表示方法是x%y==0,而不是题目中所表示的x%y=0。所以,if((k%13=0)||(k%17=0))修改后的结果应该是答案所示信息。
(2)程序中缺少程序完整所需的"}",此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来。比如丢失"}"的错误信息是"Compound statement missing } in function fun"。