全国计算机等级三级网络技术机试练习习题(37)
来源:优易学  2010-1-14 20:29:04   【优易学:中国教育考试门户网】   资料下载   IT书店
  37套上机考试试题
  已知在文件IN.dat中存有100个产品销售记录,每个产品销售记录由产品代码code(字符型4位)、产品名称name(字符型10位)、单价uprice(整型)、数量amount(整型)、金额sum(长整型)5部分组成。
  其中:金额=单价×数量。函数RData()是读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),
  其功能是:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。最后调用函数WData(),把结果输出到OUT.dat文件中。
  注意:部分程序已给出。请勿改动丰函数main()、读数据函数RData()和输出数据函数WData()的内容。 


  第37套试题答案及详解
  【审题分析】分析题目可知,本题只要实现SortDat()函数的功能即可。SortDat()要实现的功能是:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中。因此解答本题的关键在于如何通过自定义类犁变最读取一条销售记录,并按其中的指定成员排序。
  【解题思路】在双重for循环中首先用字符串比较函数strcmp比较两个产品的代码,如果返回的值大于0,则这两个产品进行数据交换;如果返回的值等于0,再比较两个产品的金额,如果前一个产品的金额大于后一个产品的金额,则这两个产品进行数据交换。
  【参考答案】  

  【易错分析】结构型数据对成员的访问用“.”成员运算符;两个字符串的比较用字符串比较函数strcmp()。
  【考点链接】成员运算符、字符串比较函数strcmp、ifelse语句。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训