问答题 编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include #define MAX 100 int fun(int lim, int aa[MAX]) { /* 以下代码仅供参考 */ int i,j,k=0; /* 其中变量k用于统计素数个数 */ for(i=2;i<=lim;i++) { /* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */ } return k; } main() { int limit, i, sum; int aa[MAX] ; printf("输入一个整数"); scanf("%d", &limit); sum=fun(limit, aa); for(i=0 ; i < sum ; i++) { if(i % 10 == 0 && i != 0) printf("/n") ; printf("]", aa[i]) ; } NONO(); }
【正确答案】int fun(int lim, int aa[MAX]) { /* 以下代码仅供参考 */ int i,j,k=0; /* 其中变量k用于统计素数个数 */ for(i=2;i<=lim;i++) { /* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */ for(j = 2 ; j <= (i/2) ; j++) if(i % j == 0) break; if(j > (i/2)) aa[k++] = i; } return k; }
【答案解析】解题思路: 本题是考察考生如何判断一个数是素数,再求出所有小于lim数的素数并存入数组aa中保存,最后由形参aa返回,素数的个数由函数值返回。