全国计算机等级三级网络技术机试练习习题(34)
来源:优易学  2010-1-14 20:26:57   【优易学:中国教育考试门户网】   资料下载   IT书店
  第34套上机考试试题
  下列程序的功能是:选出100以上、1000之内所有个位数字与十位数字之和被10除所得余数恰好是百位数字的素数(如293),计算并输出上述这些素数的个数count以及这些素数值的和sum。请编写函数countValue()实现程序要求。最后调用函数WData(),把结果count和sum输出到OUT.dat文件中。
  注意:部分源程序已经给出。请勿改动主函数main()和输出数据函数wData()的内容。  


  第34套试题答案及详解
  【审题分析】分析题目可知,本题只要实现counValue()函数的功能即可。函数countValue()要实现的功能是:选出100以上、1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293),计算并输出上述这些素数的个数count以及这些素数值的和sum。凶此解答本题的关键在于如何判断一个数满足“个位数字与十位数字之和被10除所得余数等于百位数字,并且是素数”的条件。
  【解题思路】用for循环对100到1000之间的每个整数进行判断扫描,用当前数除以100得到当前数的百位上的数字,用当前数对100求余再除以10得到当前数的十位上的数字,用当前数对10求余数得到当前数的个位上的数字;然后对当前数的十位上的数字与个位上的数字的和对10求余数,如果这个余数等于当前数字百位上的数字,则对当前数进行是否是素数的判断。
  判断一个数是否是素数的算法是:如果存在一个从2开始到这个数的一半之间的数能被这个数整除,则这个数不是素数;否则这个数是素数。
  题中,循环变量j从2递增到i/2,如果存在一个数j,使表达式i%j的值等于0,则当前数i不是素数,否则i是素数。计数变量count加1,把变量i的值加到变量sum中去。
  【参考答案】   

  【易错分析】求当前数的十位上的数字时,用当前数对100求余再除以10得到十位上的数字。判断一个数是否是素数时,自变量i从2递增到i/2。
  【考点链接】求一个数各个位上的数字、判断一个数是素数的算法。

责任编辑:小草

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