1、三级数据库技术机试-255 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN82.DAT中存有 300个 4位数,并已调用函数 readDat()把这些数存入数组 a中,请编制一函数 JsValue(),其功能是:求出这些 4位数是素数的个数 cnt,再求出所有满足此条件的 4位数的平均值 pjz1,以及所有不满足此条件的 4位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt,pjz1,pjz2,输出到 out82.dat文件中。例如:5591 是素数,则该数满足条件,计算平均值 pjz1,且个数 cn
2、t=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 ( )main ( )int i; readDat();j
3、sValue ();writeDat ();print f (“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 ,pj
4、z1,pjz2);fclose(fp);(分数:100.00)_三级数据库技术机试-255 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN82.DAT中存有 300个 4位数,并已调用函数 readDat()把这些数存入数组 a中,请编制一函数 JsValue(),其功能是:求出这些 4位数是素数的个数 cnt,再求出所有满足此条件的 4位数的平均值 pjz1,以及所有不满足此条件的 4位数的平均值 pjz2,最后调用函数 writeDat()把结果cnt,pjz1,pjz2,输出到 out82.dat文件中。例如:559
5、1 是素数,则该数满足条件,计算平均值 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 jsValu
6、e ( )main ( )int i; readDat();jsValue ();writeDat ();print f (“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
7、,“%d/n%7.21f/n%7.21f/n.,cnt ,pjz1,pjz2);fclose(fp);(分数:100.00)_正确答案:(void jsValue() int i;for(i=0;i300;i+)if(isP(ai) /*如果该数为素数*/ pjz1+=ai; /*将满足条件的数求和*/cnt+; /*统计满足条件的数的个数*/else pjz2+;ai; /*将不满足条件的数求和*/piz1;piz1/cnt; /*求满足条件的数的平均值*/piz2:piz2/(300-cnt); /*求不满足条件的数的平均值*/)解析:解析 本题考查的知识点如下:(1)循环结构的使用。(2)判断结构的使用。在本题中,已给出判断素数的函数 isP(),只要依次将数据带入即可。300 个数据依次存入数组中,可以使用循环实现对数据的访问。当数是素数时,求其和 pjz1,并统计素数的个数。不是素数时,求和pjz2。最后将和除以个数,即可得其平均值。