填空题 给定程序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{{U}} {{/U}}{ printf("%d/n",fun(100)); }
  • 1、
【正确答案】 1、第1处:将“while((high>=2)&&(n<10)”改为“while((high>=2)&&(n<10))”。 第2处:将“break”改为“break;”。    
【答案解析】[解析] 程序中的两处错误都是语法错误。第1处错误在于括号没有配对,所以应该改为while((high>=2)&&(n<10));第2处错误在于“break”语句末尾少了“;”号,C语言语句的末尾必须加上“;”号。 考生可能没有仔细分析程序的算法,但是并不影响对语法错误的判断。关键是要熟练掌握C语言的语法规则、语句的书写格式、各类运算符的使用以及各种数据类型变量的定义。