计算机等级考试三级网络技术上机考前必看1

#
计算机等级考试三级网络技术上机考前必看(1) #
试题一:已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.请编制一函数Svalue(),其功能是:求出所有这些四位数是素数的个数CNT,再求出所有满足此条件的四位数平均值PJZ1,以及不满足条件的四位数平均值PJZ2,最后调用写函数WRITEDAT()把结果CNT,PJZ1,PJZ2输出 到OUT.DAT文件. #
例如:5591是素数,则该数满足条件计算平均值PJZ1,且个数CNT=CNT+1.
#
9812是非素数,则该数不满足条件计算平均值PJZ2。
注意:部分源程序已给出。
#
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2. #
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
--------------------- #
PROG1.C #
#include
#
int a[300],cnt=0;
#
double pjz1=0.0,pjz2=0.0; #
int isP(int m) #
{
#
int i;
#
for(i=2;i
#
if(m%i==0)return 0;
return 1; #
} #
void jsvalue() #
{ #
} #
main()
{
int i;
readDat(); #
jsvalue(); #
writeDat();
printf("cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pzj2=%7.21f\n",cnt,pjz1,pjz2); #
system("pause");
}
readDat() #
{ #
FILE *fp; #
int i;
fp=fopen("in.dat","r");
for(i=0;i<300;i++)fscanf(fp,"%d",&a[i]); #
fclose(fp); #
} #
writeDat()
{
#
FILE *fp; #
int i;
#
fp=fopen("out.dat","w"); #
fprintf(fp,"%d\n%7.21f\n%7.21f\n",cnt,pjz1,pjz2);
fclose(fp); #
}
#
/*标准答案如下
void jsvalue() #
{int I; #
for (I=0;I<300;I++) #
if (isP(a[I])) {pjz1+=a[I];cnt++;}
#
else pjz2+=a[I];
pjz1=pjz1/cnt; #
pjz2=pjz2/(300-cnt);
#
} #