就业数据资源平台
当前位置:首页 > 数据库技术
2011年计算机等级三级数据库上机题及答案(3)

 7.编写函数findStr(),其功能是:统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。

  函数ReadWrite()实现从文件IN.dat中读取两个字符串,并调用函数findStr(),最后,把结果输出到文件OUT.dat中。


  【答案】


  int findStr(char *str, char *substr)


  { int n;


  char *p, *r;


  n = 0;


  while (*str)


  { p = str;


  r = substr;


  while (*r)


  if (*r == *p)


  { r++;


  p++;


  }


  else


  { break;


  }


  if (*r == '\0')


  n++;


  str++;


  }


  return n;


  }


  8.请编写函数CountValue(),它的功能是:求n以内(不包括n),同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。


  主函数最后调用函数progReadWrite()从IN.dat文件中读取10组数据,分别得出结果,且把结果输出到文件OUT.dat中。


  例如,若n为1000时,函数值应为:s=153.909064。


  【答案】


  double countValue(int n)


  { double xy = 0.0;


  int i;


  for (i=1; i

  if (i%3==0 && i%7==0)


  xy += i;


  xy = sqrt((double)xy);


  return xy;


  }


  9已知在文件IN.dat中存有N个(N<200)实数,函数RData()读取这N个实数并存入数组original中。请编写函数CalValue(),要求实现的功能有:①求出这N个实数的平均值(aver);②分别求出这N个实数的整数部分之和(sumint)以及小数部分之和(sumdec),最后调用函数WData()把所求的结果输出到文件OUT.dat中。


  【答案】


  void CalValue(void)


  { int i;


  double x, sum = 0;


  for (i=0; i

  { sumint = sumint+(int)original[i];


  x = original[i]-(int)original[i];


  sumdec = sumdec+x;


  sum = sum+original[i];


  }


  aver = sum/MAXNUM;


  }

就业数据资源平台