[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc
《[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc(2页珍藏版)》请在麦多课文档分享上搜索。
1、国家三级(数据库技术)机试模拟试卷 66及答案与解析 一、程序设计题 1 下列程序的功能是:计算 500 800之间素数的个数 cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第 1个素数 -第 2个素数 +第 3个素数 -第 4个素数 +第 5个素数 的值 sum。请编写函数 countValue()实现程序的要求,最后调用函数 writeDat()把结果 cnt和 sum输出到文件 OUT66.DAT中。 注意:部分源程序己给出。 请勿改动主函数 main()和写函数 writeDAT()的内容。 试题程序: include stdio.h int cnt, sum; v
2、oid countValue () void main ( ) cnt=sum=0; countValue (); printf(“素数的个数 =%dn“,cnt); printf(“按要求计算机得值 =%dn“, sum); writeDAT ( ); writeDAT ( ) FILE *fp; fp=fopen (“OUT66.DAT“, “w“); fprintf (fp, “%dn%dn“, cnt, sum); fclose(fp); 国家三级(数据库技术)机试模拟试卷 66答案与解析 一、程序设计题 1 【正确答案】 void countValue() int i, j, hal
3、f, yy100; for(i=500; i 800; i+) half=i/2; for(j=2; j =half; j+) if(i%j=0)break; /*如果该数不是素数,则退出此层循环 */ if(j =half) /*如果该数是素数,则将该数存入数组 yy中 */ yycnt=i; cnt+; /*统计素数的个数 */ for(i=0, j=-1; i cnt; i+) /*计算这些素数的间隔加、减之和 */ i=j*-1; sum+=j*yyi; 【试题解析】 本题考查的知识点如下: (1)利用循环和 “%” 进行素数的判断。 (2)间隔加、减的实现。 在本题中,首先要找出判断素数的方法。若一个数 a依次除以从 2到 a/2的数所得的余数都不是 0,则这个数是素数。用此方法依次判断出从 500到 800区间 内的素数。由题意可知,第 1, 3, 5 个素数计算加法,第 2, 4, 6 个素数计算减法。减去 1个正整数就是加上负的这个正整数,所以可以将这个正整数乘以 -1进行加法。使用循环实现求和,在奇数次的循环中,每个素数乘以 1,偶数次的循环中,素数乘以 -1,就可实现间隔加、减。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 三级 数据库技术 模拟 66 答案 解析 DOC
