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

 55.已知在文件IN.dat中存有若干个(不多于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中所有的正整数个数totNum;②求这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totave。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。

  【答案】


  void CalValue(void)


  { int i, thou, hun, ten, data;


  for (i=0; i

  { if (!number[i])


  break;


  if (number[i] > 0)


  totNum++;


  thou = number[i]/1000;


  hun = number[i]%1000/100;


  ten = number[i]%100/10;


  data = number[i]%10;


  if ((thou+hun+ten+data)%2)


  { totCnt++;


  totave += number[i];


  }


  }


  totave /= totCnt;


  }


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


  【答案】


  void primeValue()


  { int i, j, half, yy[100];


  for (i=800; i>=500; i--)


  { half = i/2;


  for (j=2; j

  if (i%j == 0)


  break;


  if (j >= half)


  { yy[count] = i;


  count++;


  }


  }


  for (i=0, j=1; i

  { sum += j*yy[i];


  j = j*-1;


  }


  }


  57.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数count以及这些数的和sum。请编写函数calValue()实现程序的要求,最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。


  【答案】


  void calValue()


  { int i, thou, hun, ten, data;


  for (i=5000; i>=1000; i--)


  { thou = i/1000;


  hun = i%1000/100;


  ten = i%100/10;


  data = i%10;


  if (thou+hun==ten+data && thou+hun==(data-thou)*10)


  { count++;


  sum += i;


  }


  }


  }

就业数据资源平台