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

 16.下列程序的功能是:寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指各位数字左右对称的整数,例如121、676、94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编写函数int palindromevalue(long n)实现功能:如果是回文数,则函数返回1,反之则返回0。最后,把结果输出到文件OUT.dat中。

  【答案】


  int palindromevalue(long n)


  { int i, strl, half;


  char temp[20];


  ltoa(n, temp, 10);


  strl = strlen(temp);


  half = strl/2;


  for (i=0; i

  if (temp[i] != temp[--strl])


  break;


  if (i >= half)


  return 1;


  else


  return 0;


  }


  17请补充程序,使得程序能实现以下功能:


  从文件IN.dat中读取200个整数至数组number中,求出奇数的个数cnt1和偶数的个数cnt2以及数组number下标为偶数的元素值的算术平均值ave(保留2位小数)。把结果cnt1、cnt2、ave输出到OUT.dat中。


  【答案】


  for (i=0, j=0, cnt1=0, cnt2=0; i

  { if (number[i]%2)


  cnt1++;


  else


  cnt2++;


  if (i%2 == 0)


  j += number[i];


  }


  ave = (float)j/(N/2);


  18.函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中,请编写函数CharRight(),其功能是:以行为单位把字符串中的最后一个字符的ASCII值右移4位后加倒数第二个字符的ASCII值,得到最后一个新的字符;倒数第二个字符的ASCII值右移4位后加倒数第三个字符的ASCII值,得到倒数第二个新的字符;依此类推,一直处理到第二个字符;第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符。得到的新字符分别存放在原字符串对应的位置上,最后已处理的字符串仍按行重新存入字符串数组string中。最后调用函数Wdata(),把结果string输出到文件OUT.dat中。


  原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。


  【答案】


  void CharRight(void)


  { int i, j, strl;


  char ch;


  for (i=0; i

  { strl = strlen(string[i]);


  ch = string[i][strl-1];


  for (j=strl-1; j>0; j--)


  { string[i][j] >>= 4;


  string[i][j] += string[i][j-1];


  }


  string[i][0] += ch;


  }


  }

就业数据资源平台