1、三级数据库技术机试-72 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 countValue(),其功能是:找出所有 100以内(含 100)满足 I,I+4,I+10 都是素数的整数I(I+10也是在 100以内)的个数 count,以及这些 I之和 sum。函数 WriteData()负责把结果输出到OUT.DAT文件中。注意:部分源程序已给出。请勿改动主函数 main()和写函数 WriteData()的内容。试题程序:#includestdio.hint count,sum;void writeData();void
2、countValue()void main()count=sum=0:countValue();printf(“count=%sum=%d“,count,sum);writeData();void writeData()FILE*fp;fp=fopen(“OUT.DAT“,“w“);fprintf(fp,“%d%d“,count,sum);fclose(fp);(分数:100.00)_三级数据库技术机试-72 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 countValue(),其功能是:找出所有 100以内(含 100)满足
3、 I,I+4,I+10 都是素数的整数I(I+10也是在 100以内)的个数 count,以及这些 I之和 sum。函数 WriteData()负责把结果输出到OUT.DAT文件中。注意:部分源程序已给出。请勿改动主函数 main()和写函数 WriteData()的内容。试题程序:#includestdio.hint count,sum;void writeData();void countValue()void main()count=sum=0:countValue();printf(“count=%sum=%d“,count,sum);writeData();void writeDat
4、a()FILE*fp;fp=fopen(“OUT.DAT“,“w“);fprintf(fp,“%d%d“,count,sum);fclose(fp);(分数:100.00)_正确答案:(void countValue()int i,j,k,d3,flag;for(i=0;i=100-10;i+)d0=i;d1=i+4;d2=i+10;/将三个数存入数组flag=0;/将标志位清零for(k=0;k3;k+)for(j=2;jdk;j+)/判断是否为素数if(dk%j=0)/如果一个数除了自身和 1之外还有其他余数,则该数不是素数flag=1;/将标志位置 1break;/一旦发现不满足条件的数就退出循环if(flag=0)/如果满足条件sum+=i;/将该数加入总和count+;/计数器加 1)解析:解析 本题主要考查素数的判断问题。判断是否为素数:素数的定义是,若一个数除了其自身和 1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断,在 2到所判断数之间的数进行扫描,若有一个除数,则该数就不是素数;判断4个数是不是都是素数,若有一个不是,则不符合要求,即可进行下一轮判断。