首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 考试试题 >

09年计算机等级考试三级网络技术上机试题(1)

2008-12-07 
三级网络技术上机试题
调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat中。
  例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。
  注意:部分程序已经给出。请勿改动丰函数main()和输出数据函数rwdata()的内容。

 


第1套试题答案及详解
  【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。
  【审题分析】分析题目可知,题中需要解决的问题就是Primenum函数的功能问题(rwdata函数功能题中已经给出),而Primenum函数的功能是求在指定数m之后的k个素数,因此本题的关键在于如何判断一个数是素数,之后就可以通过一个for循环来求得在m之后的k个素数了。
  【解题思路】根据素数的定义,本题采用的算法是:首先定义一个变量Value,并把m之后的数逐个赋值给该变量:然后用2~value/2数除value,如果value能被2~value/2之中的任何一个整数整除,则value不是素数,结束循环;如果value小能被2~value/2之间的任一整数整除,则退出循环,然后判断循环变量i是否大于value/2,如果大于,则value是素数,并将value值赋给array[n],然后n++;再判断n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循环,否则value加1,根据以上算法继续进行。

  【易错分析】判断一个数m(大于1)是否素数的简单的算法:枚举2到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。
  【考点链接】c语言中循环语句、if语句的应用和素数的算法。

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行