1、三级网络技术机试-4 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN82.DAT中存有 300个 4位数,并已调用函数 readDat()把这些数存入数组 a中,请编制一函数 isValue(),其功能是:求出这些 4位数是素数的个数 cnt,再求出所有满足此条件的 4位数的平均值 pjz1,以及所有不满足此条件的 4位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt,pjz1,pjz2,输出到 out82.dat文件中。例如:5591 是素数,则该数满足条件,计算平均值 pjz1,且个数 cnt=c
2、nt+1。9812是非素数,则该数不满足条件,计算平均值 pjz2。注意:部分源程序已给出。程序中已定义数组:a300,b300,已定义变量:cnt,pjz1,pjz2。请勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序:#includestdio. hint a300, cnt=0;double pjz1=0.0, pjz2=0.0;int isP(int m)int i;for (i=2; im; i+)if(m%i=0) return 0;return 1;void jsValue()main ( )int i;readDat ();j
3、sValue();writeDat ();printf (“cnt=%d/n满足条件的平均值 pjz1=%7.21f/n不满足条件的平均值pjz2=%7.21f/n“, cnt, pjz1, pjz2);readDat ( )FILE *fp;int i;fp=fopen(“in82.dat“,“r“);for (i=0; i300; i+)fscanf (fp, “%d, “, fclose (fp);writeDat ()FILE *fp;int i;fp=fopen(“out82.dat“,“w“);fprintf(fp,“%d/n%7.21f/n%7.21f/n“,cnt,pjz1,p
4、jz2);fclose(fp);(分数:100.00)_三级网络技术机试-4 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN82.DAT中存有 300个 4位数,并已调用函数 readDat()把这些数存入数组 a中,请编制一函数 isValue(),其功能是:求出这些 4位数是素数的个数 cnt,再求出所有满足此条件的 4位数的平均值 pjz1,以及所有不满足此条件的 4位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt,pjz1,pjz2,输出到 out82.dat文件中。例如:5591 是素数,则
5、该数满足条件,计算平均值 pjz1,且个数 cnt=cnt+1。9812是非素数,则该数不满足条件,计算平均值 pjz2。注意:部分源程序已给出。程序中已定义数组:a300,b300,已定义变量:cnt,pjz1,pjz2。请勿改动主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序:#includestdio. hint a300, cnt=0;double pjz1=0.0, pjz2=0.0;int isP(int m)int i;for (i=2; im; i+)if(m%i=0) return 0;return 1;void jsValue(
6、)main ( )int i;readDat ();jsValue();writeDat ();printf (“cnt=%d/n满足条件的平均值 pjz1=%7.21f/n不满足条件的平均值pjz2=%7.21f/n“, cnt, pjz1, pjz2);readDat ( )FILE *fp;int i;fp=fopen(“in82.dat“,“r“);for (i=0; i300; i+)fscanf (fp, “%d, “, fclose (fp);writeDat ()FILE *fp;int i;fp=fopen(“out82.dat“,“w“);fprintf(fp,“%d/n%
7、7.21f/n%7.21f/n“,cnt,pjz1,pjz2);fclose(fp);(分数:100.00)_正确答案:(void jsValue()int i;for(i=0;f300;i+)if(isP(ai) /*如果该数为素数*/pjz1+=ai; /*将满足条件的数求和*/cnt+; /*统计满足条件的数的个数*/else pjz2+=ai; /*将不满足条件的数求和*/pjz1=pjz1/cnt; /*求满足条件的数的平均值*/pjz2=pjz2/(3OO-cnt); /*求不满足条件的数的平均值*/)解析:解析 本题考查的知识点如下: (1)循环结构的使用。(2)判断结构的使用。在本题中,已给出判断素数的函数 isP(),只要依次将数据带入即可。300 个数据依次存入数组中,可以使用循环实现对数据的访问。当数是素数时,求其和 pjz1,并统计素数的个数。不是素数时,求和pjz2。最后将和除以个数,即可得其平均值。