下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。 例

13 查阅

下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。

例如:若high的值为100,则函数的返回值为1060。

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

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

[试题源程序]

include <conio.h>

include <stdio.h>

include<math.h>

int fun(int high)

{

int sum=0, n=0, j, yes;

while(high>=2)

{

yes=1;

for(j=2;j<=high/2; j++)

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

ifhigh%j==0

{

yes=0;

break;

}

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

if(yes==0)

{

sum+=high;

n++;

}

high--;

}

return sum;

}

main()

{

clrscr();

printf("%d\n", fun(100));

}

参考答案:

(1)错误:ifhigh%j==0 正确:if(high%j==0) (2)错误:if(yes==0) 正确:if(yes)(1)错误:ifhigh%j==0 正确:if(high%j==0) (2)错误:if(yes==0) 正确:if(yes) 解析:fun函数的功能是:用while循环查找high以内的素数;用for循环判断一个数是否为素数;用变量n记录找到的素数的个数:用return返回素数之和sum。 错误1:这个错误比较明显,if语句的两侧要加括号。 错误2:yes为1

计算机二级