2013年计算机三级网络技术上机模拟题及答案解析三十七

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

 请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT87.DAT中。
  例如,若n为1000时,函数值应为s=153.909064。
  注意:部分源程序已给出。
  请勿改动主函数main()和输入输出函数progReadWrite()的内容。
  试题程序:
  #include <stdlib.h>
  #include <math.h>
  #include <stdio.h>
  void progReadWrite();
  double 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);
  }

  【答案】
  double countValue(int n) 
  {
  int i; /*定义循环控制变量*/
  double sum=0.0; /*存储满足条件的自然数之和,继而求出平方根*/
  for(i=1;i<n;i++) /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/
  if(i%3==0 && i%7==0)
  sum+=i;
  sum=sqrt((double)sum); /*再对总和求平方根*/
  return sum;
  }
  【解析】本题的解题思路是:利用一个for循环依次从n个自然数当中取数,对当前取出的数进行判断。判断条件为:既能被3整除同时也能被7整除。当某数满足判断条件时,就把该数累加到变量sum中。当该范围内所有满足条件的数都找完后,对累加求得的变量sum的值进行求平方根的计算,并把所求得的结果作为函数值返回。


相关文章