[计算机类试卷]国家三级信息管理技术机试模拟试卷66及答案与解析.doc

上传人:eveningprove235 文档编号:494995 上传时间: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中。 注意:部分源程序已给出。 请勿改动主函数 mam()和写函数 writeDAT()的内容。 试 题程序: #include stdio. h int cnt, sum;

2、void countValue ( ) void main () cnt= sum=0; countValue(); printf (“素数的个数 =%dkn“, 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 ( ) in

3、t i,j,half,yy100; for (i=500; i 800; i+) half=i/2; for (j=2; 3 =half; j+) if (i%j=0) break; /*如果该数不是素数,则退出此层循环 */ if (j =half) /*如果该数是素数,则将该数存入数组 yy中 */ yy cnt=i; ont +; /*统计素数的个数 */ for(i=0, j=-1;i cnt; i+) /*计算这些素数的间隔加、减之和 */ j=i*-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