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

 70.函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中。编写函数Compute(),其功能是:分别计算出xx数组中奇数的个数odd、奇数的平均值ave1、偶数的个数even、偶数的平均值ave2,以及所有奇数的方差totfc的值。调用函数WriteDat(),把结果输出到OUT.dat文件中。计算方差的公式如下:

  其中:N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。


  原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。


  【答案】


  void Compute(void)


  { int i, yy[MAX];


  for (i=0; i<1000; i++)


  if (xx[i]%2)


  { odd++;


  ave1 += xx[i];


  yy[odd-1] = xx[i];


  }


  else


  { even++;


  ave2 += xx[i];


  }


  ave1 /= odd;


  ave2 /= even;


  for (i=0; i

  totfc += (yy[i]-ave1)*(yy[i]-ave1)/odd;


  }


  71.请补充完整程序,使得程序能实现以下功能:


  从文件IN.dat中读取200个整数至数组number中,求出最大数max及最大数的个数cnt和数组number中能被3整除或能被7整除的算术平均值ave(保留2位小数)。把结果max、cnt、ave输出到OUT.dat文件中。


  【答案】


  max = number[0];


  for (i=1, k=0; i

  { if (number[i] > max)


  max = number[i];


  if (number[i]%3==0 || number[i]%7==0)


  { j += number[i];


  k++;


  }


  }


  for (i=0, cnt=0; i

  if (number[i] == max)


  cnt++;


  ave = (float)(j*100/k)/100;


  72.函数RData()实现从文件IN.dat中读取一篇英文文章,存入字符串数组str中,请编写函数encryptChar(),其功能是:按给定的替代关系对数组str中的所有字符进行替代后,仍存入数组str的对应位置上。最后调用函数WData(),把结果str输出到OUT.dat文件中。


  替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。


  原始数据文件存放的格式是:每行的宽度均小于80个字符。


  【答案】


  void encryptChar()


  { int i;


  char *pf;


  for (i=0; i

  { pf = str[i];


  while (*pf != 0)


  { if ((*pf>='A' && *pf<='Z') || *pf*11%256<=32)


  { pf++;


  continue;


  }


  *pf = *pf*11%256;


  pf++;


  }


  }


  }

就业数据资源平台