全国计算机等级三级网络技术机试练习习题(19)
来源:优易学  2010-1-14 20:16:46   【优易学:中国教育考试门户网】   资料下载   IT书店
  第19套上机考试试题
  已知数据文件IN.dat中存有200个四位数,并已调用读函数rdata()把这些数存入数组a中,请编写函数evenvalue(),其功能是:如果四位数每位上的数字均是0、2、4、6或8,则统计出满足此条件的四位数的个数count,并把这些四位数按从大剑小的顺序存入数组b中。最后main()调用函数wdata(),把结果count以及数组b中符合条件的四位数输出剑OUT.dat义件。
  注意:部分程序已经给出。程序中已定义数组a[200],b[200];已定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数rdata()和写函数wdata()中的内容。 

  第19套试题答案及详解
  【审题分析】分析题目可知,题中需要解决的问题就是实现evenvalue函数的功能问题,而 evenvalue函数的功能是:统计满足“四位数每位上的数字均是0、2、4、6或8”条件的数字个数count,并把这些四位数按从大到小的顺序存入数组b中。因此本题的关键在于如何判断一个四位数的每位数都满足条件,之后就可以通过一个for循环来对这200个数逐个判断。
  【解题思路】解答本题可分为以下4个步骤:
  第1步:分解出这个四位数的每位数字。木题用a[i]除以1000得到a[i]的千位上的数字,然后存入bb[O](这里要定义一个数组bb[4]);用a[i]对1000求余数再除以100得到a[i]百位上的数字存入bb[1];用a[i]对100求余数再除以10得到a[i]十位上的数字存入bb[2];用a[i]埘10求余得到a[i]的个位上的数字,然后存入bb[3],这样数组bb[4]就存入了a[i]的每位上的数字。
  第2步:判断每位数字是否为“0或2或4或6或8”。这里我们利用循环语句对数组bb[4]中的各个元素对2求余,如果每个元素的余数为0,则说明该元素的每位数字均是0或2或4或6或8,则设簧flag为1(这里要定义一个变量flag),否则设置flag为0。
  第3步:将符合条件的数存入数组b[count]中。这里只要对flag进行判断即可,即如果flag的值为1,则说明a[i]符位卜的数字均是0或2或4或6或8。把a[i]的值赋给数组b[count],变量count加1。在第一个for语句执行完成后,就得到了200个四位数中所有符合条件的四位数。
  第4步:执行第二个for语句对数组b的各元素进行从大到小的排序即可。
  【参考答案】
  


  【易错分析】利用求余运算得到四位数各位上的数字。
  【考点链接】求余运算、for循环语句、数组的排序问题。

责任编辑:小草

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