问题 问答题

下列给定程序中,函数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)

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

单项选择题
判断题