全国计算机等级三级网络技术机试练习习题(35)
来源:优易学  2010-1-14 20:27:49   【优易学:中国教育考试门户网】   资料下载   IT书店
  第35套上机考试试题
  某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1。
  下列程序的功能是:依次埘于整数M=100、1000和10000求出对应的n值,使其满足:Sn<M 且Sn+1≥M,这里Sn=A1+A2+…+An,并依次把n值存入数组单元b[0]、b[1]和 b[2]中,请编写sumVal()函数求实现此功能。最后调用函数WData()把数组b[]中的值输出到0UT.dat文件中。
  注意:部分源程序已给出。淆勿改动主函数main()写函数WData()的内容。 

  第35套试题答案及详解
  【审题分析】分析题目可知,本题只要实现sumVal()函数的功能即可。sumVal()要实现的功能是:依次对整数M=100、1000和10000求出对应的n值,使其满足:Sn  【解题思路】由题中表达式An=An-2+2*An-1可知,这是一个递归函数的应用问题。我们用变量A1表示An.2的值,用变量A2表示An.1的值,则这两个变量的初始值都等于1。定义两个整型变量sum0、sum,两者的关系是sum=sum0+An。在while循环中用An=A1+A2*2;sum=sum0+An;A1=A2;A2=An;这四条语句实现了递归算法。
  然后再分别对逻辑表达式sumO<100&&sum>=100、sum0<1000&&sum>=1000、sum0<10000&&sum>=10000进行判断,如果表达式的值等于1,则把n值分别赋给b[o]、b[1]、b[2]保存。
  【参考答案】  

  【易错分析】:在while循环中用An=A1+A2*2;sum=sum0+An; A1=A2;A2=An;这四条语句实现了递归算法。
  【考点链接】递归算法。

责任编辑:小草

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