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

  58.已知数据文件IN.dat中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编写函数primecount(),其功能是:如果四位数各个位上的数字均是奇数,则统计出满足此条件的个数count并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。


  【答案】


  void primecount()


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


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


  { thou = a[i]/1000;


  hun = a[i]%1000/100;


  ten = a[i]%100/10;


  data = a[i]%10;


  if (thou%2!=0 && hun%2!=0 && ten%2!=0 && data%2!=0)


  { b[count] = a[i];


  count++;


  }


  }


  for (i=0; i

  for (j=i+1; j

  if (b[i] < b[j])


  { data = b[i];


  b[i] = b[j];


  b[j] = data;


  }


  }


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


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


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


  【答案】


  void encryptChar()


  { int i;


  char *pf;


  for (i=0; i

  { pf = original[i];


  while (*pf != 0)


  { if (*pf%2 && *pf*11%256>32)


  *pf = *pf*11%256;


  pf++;


  }


  }


  }


  60.已知数据文件IN.dat中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编写函数diffVal(),其功能是:把一个四位数的千位数字上的值,减去百位数字上的值,再减去十位数字上的值,最后减去个位数字上的值,如果得出的值大于等于0且原四位数是奇数,则统计出满足此条件的个数count并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数writeDat(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。


  【答案】


  void diffVal()


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


  for (i=0; i

  { thou = a[i]/1000;


  hun = a[i]%1000/100;


  ten = a[i]%100/10;


  data = a[i]%10;


  if ((thou-hun-ten-data>=0) && a[i]%2==1)


  { b[count] = a[i];


  count++;


  }


  }


  for (i=0; i

  for (j=i+1; j

  if (b[i] > b[j])


  { data = b[i];


  b[i] = b[j];


  b[j] = data;


  }


  }

就业数据资源平台