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

  64.已知数据文件IN.dat中存有200个四位数,并已调用读函数rData()把这些数存入数组a中,请编写函数spellNum(),其功能是:把个位数字和千位数字重新组成一个新的二位数(新二位数的十位数字是原四位数的个位数字,新二位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的二位数(新二位数的十位数字是原四位数的百位数字,新二位数的个位数字是原四位数的十位数字),如果新组成的两个二位数一个是奇数,另一个为偶数,并且两个二位数中至少有一个数能被17整除,同时两个新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数count。最后main()函数调用写函数wData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。


  【答案】


  void spellNum()


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


  int ab, cd;


  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 (data==0 || hun==0)


  continue;


  ab = 10*data+thou;


  cd = 10*hun+ten;


  if ((ab-cd)%2!=0 && (ab*cd)%17==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;


  }


  }


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


  【答案】


  void diffCal()


  { 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 (data-thou-hun-ten>=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;


  }


  }


  66.已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数的平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。


  例如,6712,6+2=7+1,则该数满足条件计算平均值Ave1,且个数count=count+1。8129,8+9!=1+2,则该数不满足条件计算平均值Ave2。


  【答案】


  void NumCal()


  { int i, n = 0, thou, hun, ten, data;


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


  { thou = a[i]/1000;


  hun = a[i]%1000/100;


  ten = a[i]%100/10;


  data = a[i]%10;


  if (thou+data == hun+ten)


  { count++;


  Ave1 += a[i];


  }


  else


  { n++;


  Ave2 += a[i];


  }


  }


  Ave1 /= count;


  Ave2 /= n;


  }

就业数据资源平台