2015年计算机等级三级《数据库技术》上机考试题(6)

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2015年5月4日

第6套 上机考试试题

程序test.c的功能是:计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数.第2个素数+第3个素数.第4个素数+第5个素数…的值sum。请编写函数count Value()实现程序的要求,最后main()函数调用函数writeOAT()把结果cnt和Sum,输出到文件out.dat中。

答案及解析

【审题关键句】计算500~800区间内素数的个数,素数的值从大到小排序,再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值。
【解题思路】
①首先定义一个循环变量循环i和用于正负号转换的变量j,同时赋i的初值为-1。
②通过for循环对800到500的每个数字进行逐个的扫描,指定循环变量i的初值为800,当i值等于500停止循环,每执行一次循环,i的值便减1。(注意,本题for循环从大到小依次读取数据是根据题目要求设计的,这样得到的素数值其排序方式就是从大到小排序。)
③在每次执行for循环时,都调用素数判断函数isPrime()判断当前的i值是否为素数,如果是素数,则素数计数变量cnt值加1,正负号转换变量j的值乘以-1,实现正负数的交替转换,最后将每次循环得到的i*j的值累加到求和变量 sum中。
【参考答案】


相关文章