[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc

上传人:eventdump275 文档编号:495342 上传时间:2018-11-28 格式:DOC 页数:2 大小:25.50KB
下载 相关 举报
[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc_第1页
第1页 / 共2页
[计算机类试卷]国家三级(数据库技术)机试模拟试卷66及答案与解析.doc_第2页
第2页 / 共2页
亲,该文档总共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,就可实现间隔加、减。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1