1、三级信息管理技术机试-246 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 countValue(),它的功能是:求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和的平方根 s,并作为函数值返回,最后将结果 s 输出到文件 OUT87.DAT 中。注意:部分源程序已给出。请勿改动主函数 main()和输入输出函数 progReadWrite()的内容。试题程序:#include stdlib.h#include math.h#include stdio.hvoid progReadWrite();double
2、 countValue(int n)void main()system(“CLS“);printf(“自然数之和的平方根=% f/n“,countValue(1000);progReadWrite();void progReadWrite()FILE * wf;double s;wf=fopen(“OUT87.DAT“,“w“);s=countValue(1000);fprintf(wf,“% f/n“,s);fclose(wf);(分数:100.00)_三级信息管理技术机试-246 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数
3、 countValue(),它的功能是:求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和的平方根 s,并作为函数值返回,最后将结果 s 输出到文件 OUT87.DAT 中。注意:部分源程序已给出。请勿改动主函数 main()和输入输出函数 progReadWrite()的内容。试题程序:#include stdlib.h#include math.h#include stdio.hvoid progReadWrite();double countValue(int n)void main()system(“CLS“);printf(“自然数之和的平方根=% f/n“,cou
4、ntValue(1000);progReadWrite();void progReadWrite()FILE * wf;double s;wf=fopen(“OUT87.DAT“,“w“);s=countValue(1000);fprintf(wf,“% f/n“,s);fclose(wf);(分数:100.00)_正确答案:(double countValue(int n)int i; /*定义循环控制变量*/double sum=0.0; /*存储满足条件的自然数之和,继而求出平方根*/for(i=1;in;i + +) /*求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和*/if(i%3=0 & i%7=0)sum+=i;sum=sqxt(double)sum); /*再对总和求平方根*/return sum;)解析:解析 本题的解题思路是:利用一个 for 循环依次从 n 个自然数当中取数,对当前取出的数进行判断。判断条件为:既能被 3 整除同时也能被 7 整除。当某数满足判断条件时,就把该数累加到变量 sum中。当该范围内所有满足条件的数都找完后,对累加求得的变量 sum 的值进行求平方根的计算,并把所求得的结果作为函数值返回。