1、三级信息管理技术机试-290 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN40.DAT 中存有 300 个 4 位数,并已调用函数 readDat()把这些数存入数组 a 中,请编制一函数 jsValue(),其功能是:求出这些 4 位数是素数的个数 cnt,再求出所有满足此条件的 4 位数的平均值 pjz1,以及所有不满足此条件的 4 位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt、pjz1、pjz2 输出到 out40.dat 文件中。例如:5591 是素数,则该数满足条件,计算平均值 pj
2、z1,且个数 cnt=cnt+1。9812 是非素数,则该数不满足条件,计算平均值 pjz2。注意:部分源程序已给出。程序中已定义数组:a300,b300,已定义变量:ent,pjzl,pjz2。请勿改动主函数 main()、读函数 readDat()和写函数 wfiteDat()的内容。试题程序#includestdio.hint a300,cnt=0;double Pjz1=0.0,Pjz2=0.0;void readDat();void writeDat();int isP(int m)int i;for(i=2;im;i+)if(m%i=0)return 0;return 1;void
3、 jsValue()voidmain()readDat();jsValue();writeDat();printf(“cnt=%d/n 满足条件的平均值 pjz1=%7.2lf/n 不满足条件的平均值pjz2=%7.2lf/n“,cnt,Pjz1,pjz2);void readDat()FILE*fp;int i;fp=fopen(“in40.dat“,“r“);for(i=0;i300;i+)fscanf(fp,“%d,“,fclose(fp);void writeDat()FILE*fP;fp=fopen(“out40.dat“,“w“);fprintf(fp,“%d/n%7.2lf/n%
4、7.2lf/n“,cnt,pjz1,Pjz2);fclose(fp);(分数:100.00)_三级信息管理技术机试-290 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN40.DAT 中存有 300 个 4 位数,并已调用函数 readDat()把这些数存入数组 a 中,请编制一函数 jsValue(),其功能是:求出这些 4 位数是素数的个数 cnt,再求出所有满足此条件的 4 位数的平均值 pjz1,以及所有不满足此条件的 4 位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt、pjz1、pjz2
5、输出到 out40.dat 文件中。例如:5591 是素数,则该数满足条件,计算平均值 pjz1,且个数 cnt=cnt+1。9812 是非素数,则该数不满足条件,计算平均值 pjz2。注意:部分源程序已给出。程序中已定义数组:a300,b300,已定义变量:ent,pjzl,pjz2。请勿改动主函数 main()、读函数 readDat()和写函数 wfiteDat()的内容。试题程序#includestdio.hint a300,cnt=0;double Pjz1=0.0,Pjz2=0.0;void readDat();void writeDat();int isP(int m)int i
6、;for(i=2;im;i+)if(m%i=0)return 0;return 1;void jsValue()voidmain()readDat();jsValue();writeDat();printf(“cnt=%d/n 满足条件的平均值 pjz1=%7.2lf/n 不满足条件的平均值pjz2=%7.2lf/n“,cnt,Pjz1,pjz2);void readDat()FILE*fp;int i;fp=fopen(“in40.dat“,“r“);for(i=0;i300;i+)fscanf(fp,“%d,“,fclose(fp);void writeDat()FILE*fP;fp=fo
7、pen(“out40.dat“,“w“);fprintf(fp,“%d/n%7.2lf/n%7.2lf/n“,cnt,pjz1,Pjz2);fclose(fp);(分数:100.00)_正确答案:(void jsValue()int i,n=0; /*定义循环控制变量和计数器变量*/for(i=0;i300;i+) /*逐个取 4 位数*/if(isp(ai) /*如果该数为素数*/pjz1+=ai; /*对满足条件的数求和*/cnt+; /*统计满足条件的数的个数*/elSepjz2+=ai; /*对不满足条件的数求和*/n+; /*统计不满足条件的数的个数*/pjz1/=cnt; /*求满足条件的数的平均值*/pjz2/=n; /*求不满足条件的数的平均值*/)解析:解析 根据题意可知,函数 jsValue()要实现两个功能:一是分别找出满足条件和不满足条件的数,本题中即素数和非素数,并分别求出它们的平均值。首先要找出满足条件的数,本题已经给出了判断素数的函数,因此只需调用函数对每个数进行判断即可。然后,对符合条件和不符合条件的数分别进行统计。最后再分别计算出它们的平均值。