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

79.下列程序的功能是:利用"Xn+1=cos(Xn)"迭代方法求方程:cos(X)-X=0的一个实根。

  迭代步骤为:①取X1初值为0.0;②X0=X1,把X1的值赋给X0;③X1=cos(X0),求出一个新的X1;④若X0-X1的绝对值小于0.000001,执行步骤⑤,否则执行步骤②;⑤所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。


  请编写函数countValue()实现程序的要求,最后调用函数WData(),把结果输出到文件OUT.dat中。


  【答案】


  float countValue()


  { float X0, X1 = 0.0;


  while (1)


  { X0 = X1;


  X1 = (float)cos(X0);


  if (fabs(X0-X1) < 1e-6)


  break;


  }


  return X1;


  }


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


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


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


  【答案】


  void encryptChar()


  { int i;


  char *pf;


  for (i=0; i

  { pf = string[i];


  while (*pf != 0)


  { if (((*pf*11 % 256)%2 != 0) || *pf*11 % 256<=32)


  { pf++;


  continue;


  }


  *pf = *pf*11%256;


  pf++;


  }


  }


  }


  81.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选均为无效的选票。给定函数RData()的功能是把选票数据读入字符串数组original中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。


  【答案】


  void CountRs(void)


  { int i, j = 0, k;


  char *str;


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


  result[i] = 0;


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


  { str = original[i];


  j = 0;


  while (*str)


  { if (*str == '1')


  j++;


  str++;


  }


  if (j!=0 && j!=10)


  for (k=0; k<10; k++)


  result[k] += original[i][k]-'0';


  }


  }

就业数据资源平台