给定程序MODI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为100,则函数的值为732。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODI1.C内容如下:
#include<stdio.h>
#include<math.h>
int fun(int high)
int sum=0,n=0,j,yes;
/**********found**********/
while((high>=2)&&(n<10))
yes=1;
for(j=2;j<=high/2;j++)
if(high%j==0)
/**********found**********/
yes=0;break
if(yes)
sum+=high:
n++;
high--;
return sum;
void main( )
printf("%d\n",fun(100));
参考答案:第1处:将“while((high>=2)&&(n<10)”改为“while((high>=2)&&(n<10))”。
第2处:将“break”改为“break;”。
解析: 程序中的两处错误都是语法错误。第1处错误在于括号没有配对,所以应该改为while((high>=2)&&(n<10));第2处错误在于“break”语句末尾少了“;”号,C语言语句的末尾必须加上“;”号。
考生可能没有仔细分析程序的算法,但是并不影响对语法错误的判断。关键是要熟练掌握C语言的语法规则、语句的书写格式、各类运算符的使用以及各种数据类型变量的定义。