在给定程序中,函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
int fun(int n)
int i,j,cnt=0;
printf("\nThe prime number between 3 to%d\n",n);
for(i=3;i<=n;i++)
/**********found**********/
for( (1) ;j<i;j++)
/**********found**********/
if( (2) %j==0)break;
/**********found**********/
if( (3) >=i)
cnt++;printf(cnt%157"%5d":"\n%5d",i);
return ent;
void main( )
int n=20,r;
r=fun(n);
printf("\nThe number of prime is:%d\n",r);
参考答案:j
解析: 素数是指除了1和它本身之外,不能被其他整数整除的数。根据这个数学定义,我们可以发现函数fun使用的算法。在第1空处,对于变量i取出的每一个值,变量j都从2开始循环到i(不包括i本身),如果在这个范围内,i能被j整除,则可以判定变量i一定不是素数,j循环可以通过break强行中断。所以第2空处应填入i。经分析发现,j循环有两个出口,一个是i不是素数,通过break中断循环强行跳出的,此时j小于i;如果i是素数,则不可能通过break中断循环,循环会因为j小于i不成立而跳出,此时j>=i。因此,跳出j循环后,一定要执行一个j>=i的判定,若满足则是素数,若不满足则不是素数。所以第3空处应填j。