填空题 请补充main()函数,该函数的功能是:把1~100的所有素数保存在数组arr中,然后输出这些素数并计算它们的和。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void main()
{
int i,j,k,flag,sum;
int arr[50];
sum=0;
k=0;
system("CLS");
for(i=2;i<100;i++)
{
1;
for(j=2;j<i&&flag;j++)
if(i%j==0)
{
2;
}
if(flag)
{
sum+=i;
3;
}
}
printf("/n***prime nHmber***/n");
for(i=0;i<k;i++)
{
if(i%10==0)
printf("/n");
printf("%4d",arr[i]);
}
printf("/nsum=%d",sum);
}
【正确答案】
【答案解析】flag=1 flag=0 arr[k++]=i[解析] 由整个程序可知,变量flag是判断一个整数是否为素数的标志,flag=1为素数,flag=0为非素数,此处将其初始值赋为1,因此第一处填“flag=1”;当判断出一个整数为非素数时,将flag赋为0,因此第二处填“flag=0”;题目要求将所有的素数放入数组arr中,因此第三处填“arr[k++]=i”。