三级数据库技术机试-228.doc

上传人:scccc 文档编号:13194177 上传时间:2021-12-18 格式:DOC 页数:2 大小:23KB
返回 下载 相关 举报
三级数据库技术机试-228.doc_第1页
第1页 / 共2页
三级数据库技术机试-228.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《三级数据库技术机试-228.doc》由会员分享,可在线阅读,更多相关《三级数据库技术机试-228.doc(2页珍藏版)》请在三一文库上搜索。

1、三级数据库技术机试 -228( 总分: 100.00 ,做题时间: 90 分钟 )、上机题( 总题数: 1,分数: 100.00)1.请编写函数countValue(),其功能是:计算500 800之间素数的个数count ,并按所求素数的值从小到 大的顺序,再计算其间隔加、减之和,即第1个素数一第2个素数+第3个素数一第4个素数+第5个素数 的值sum 函数 WriteData()负责把结果输出到 OUT.DAT文件中。注意:部分源程序已给出。请勿改动主函数 main() 和写函数 WriteData() 的内容。试题程序:#include < stdio.h >int coun

2、t , sum;void writeData() ;void countValue()void main()count=sum=0:countValue() ;printf("count=%d , sum=%”d , count , sum);writeData() ;void writeData()FILE*fp ;fp=fopen("OUT.DAT" , "w") ;fprintf(fp , "%d%d", count , sum);fclose(fp) ;分数: 100.00)正确答案: (void countValu

3、e()int i , j , flag , temp;int outBuf300 ;for(i=500 ;i < 800;i+)flag=0 ;for(j=2 ;j < i ;j+)/ 判断否为素数if(i%j=O)flag=1 ;/ 如果当前数据可被除 1 和其自身之外的整数整除的话,则将标志置 1,表明该数不是素数 break ; / 一旦发现不是素数,就退出循环if(flag=0)/ 如果是素数outBufcount=i; / 将该数放到 outBuf 中count+ ; / 计数器加 1for(i=0 ; i < count-1 ; i+)以下是将数据进行从小到大排序

4、的程序for(j=i+1 ; j < count ; j+)if(outBufi>outBufj)/如果第 i 位比它后面的数大, 则将两者进行交换, 也即将更小的值放到第 i 位temp=outBufi ;outBufi=outBufj ;outBufj=temp ;for(i=0 ; i < count ; i+)if(i%2=0)sum+outBufi ; / 如果下标是偶数,则加上该数else sum=outBufi ; / 如果下标是奇数,则减去该数)解析: 解析 本题主要考查素数的判断、排序和数组中指定下标元素的求和问题。判断是否为素数,素数的定义是,若一个数除了其自身和1再没有其他的除数,则该数就是素数,故用其定义可以很容易判断, 在 2到所判断数之问的数进行扫描,若有一个除数, 则该数就不是素数; 排序,排序的思想是 (以从小到大为例 ) ,将当前数据与其后的各个数据相比较, 如果当前的数据比其后的数据大, 则将两数据进行交换, 从而使得前面的数据小于后面的数据,达到从小到大排序的目的; 计算其间隔加、减之和:判断下一位数的标号是奇数还是偶数,若下标为偶数则加,否则则减。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1