填空题 请补充main函数,该函数的功能是:把1~100间的所有素数保存在数组aa中,然后输出这些素数并计算它们的和。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
main()

int n, i, j, k, flag, sum;
int aa [50];
sum=O;
k=O;
clrscr ();
for (i=2; i<100; i++)

【1】;
for (j=2; j<i&&flag; j++)
if (i%j==O)

【2】;

if (flag)

sum+=i;
【3】;


printf("/n*** prime number ***/n");
for (i=0; i<k; i++)

if (i%10==0)
printf ("/n");
printf ("%4d", aa [i]);

printf ("/nsum=%d", sum);


  • 1、
【正确答案】 1、flag=1 (2)flag=0 (3)aa[k+++]=i    
【答案解析】[解析]填空1:由后面的if句可以看出,当nag为1时,当前数是素数,所以此处先假设当前数为素数,即置flag为1,再进行判断,如果不是素数,则再将fflag清零。填空2:如果一个数能被除了1和其自身之外的数整除,即余数为0,则这个数不是素数。如果当前数不是素数,则将flag清零。填空3:如果当前数是素数,则将它保存在数组bb中。