1、计算机三级数据库技术-147 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:找出所有 100 以内(含 100)满足 I、I+4 和 I+10 都是素数的整数 I(I+10 也是在 100以内)的个数 cnt,以及这些 I 之和 sum。请编写函数 countValue()实现程序功能,最后调用函数writeDAT(),把结果 cnt 和 sum 输出到文件 OUT.DAT 中(数值 1 不是素数)。 注意:请勿改动主函数 main()和输出数据函数 writeDAT()的内容。 【试题程序】 #include stdi
2、o.h int cnt, sum; void writeDAT () ; int isPrime (int number) int i,tag=1; if (number = 1 ) return 0 ; for (i =2 ;tag i + ) if (number%i = 0 ) tag =0; return tag; void countValue () void main () cnt = sum =0; countValue () ; printf (“满足条件的整数的个数 =%dn“, cnt) ; printf ( “满足条件的整数的和值 =% d n“, sum) ; writ
3、eDAT () ; void writeDAT () FILE * fp; fp = fopen ( “OUT. DAT“, “w“) ; fprintf (fp, “%dn%dn“, cnt, sum) ; fclose (fp) ; (分数:100.00)_计算机三级数据库技术-147 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:找出所有 100 以内(含 100)满足 I、I+4 和 I+10 都是素数的整数 I(I+10 也是在 100以内)的个数 cnt,以及这些 I 之和 sum。请编写函数 countVal
4、ue()实现程序功能,最后调用函数writeDAT(),把结果 cnt 和 sum 输出到文件 OUT.DAT 中(数值 1 不是素数)。 注意:请勿改动主函数 main()和输出数据函数 writeDAT()的内容。 【试题程序】 #include stdio.h int cnt, sum; void writeDAT () ; int isPrime (int number) int i,tag=1; if (number = 1 ) return 0 ; for (i =2 ;tag i + ) if (number%i = 0 ) tag =0; return tag; void co
5、untValue () void main () cnt = sum =0; countValue () ; printf (“满足条件的整数的个数 =%dn“, cnt) ; printf ( “满足条件的整数的和值 =% d n“, sum) ; writeDAT () ; void writeDAT () FILE * fp; fp = fopen ( “OUT. DAT“, “w“) ; fprintf (fp, “%dn%dn“, cnt, sum) ; fclose (fp) ; (分数:100.00)_正确答案:()解析:void countValue() int i; /*定义
6、循环控制变量*/ cnt=0; sum=0; /*初始化变量*/ for(i=2;i90;i+) /*找数的范围为 100 以内*/ if(isPrime(i) /*统计满足条件的数的个数*/ sum+=i; /*将满足条件的数求和*/ 解析 本题属于数学类问题;要求判断在 100 以内,i,i4,i10 都是素数的数的个数。因为i10 也必须在 100 以内,1 不是素数,所以我们可以从 2 开始判断到 89 即可(90 是偶数,明显不是素数)。本题已经给出了判断素数的函数,所以这里只需调用即可。通过一个 if 语句判断 i,i4 以及 i10 是否都是素数,对满足条件的数进行求和,同时用 cnt 统计其个数。