Hw5递归变量作用域.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hw5递归变量作用域.doc

作业 5 递归函数、变量作用域 一、作业要求 书写在16开(A4纸)大小的本子上。无需抄题,但需标清题号。 作业最后需写作业小结,写出本次作业中遇到的问题或程序中遇到的错误,以及解决问题的方法。无作业小结者,本次作业无成绩。 作业成绩取决于作业的认真程度(反映在作业小结中),而不是作业题目的对错。雷同者双方成绩均为0,未事先说明迟交者,作业成绩为0。 二、作业内容 任选4个难度级别不同的题目!! 所有程序要求写出自己程序的运行结果!!! 1、(难度:★) 某机构举办了一个捐款活动来为慈善事业捐款。每笔捐款的一小部分会用做捐款机构的操作费,捐款的其余部分会存入慈善基金。我们所编写的程序要记录该机构所有募集款项的数量,并从每笔捐款中扣除17%作为操作费用,剩余的83%存入慈善基金。程序应能显示每笔捐款扣除了17%的操作费用后的金额,以及目前慈善基金中的总金额。运行结果如下: 要求:1)合理划分函数 2)合理定义变量的存储类型 2、(难度:★★) 下面这个程序的功能是什么? #include stdio.h int mystery( int, int ); // function prototype int main() { int x, y; printf(Enter two integers: ); scanf(%d%d,x,y); printf(The result is %d\n,mystery( x, y )); return 0; // indicates successful termination } // end main // Parameter b must be a positive // integer to prevent infinite recursion int mystery( int a, int b ) { if ( b == 1 ) // base case return a; else // recursion step return a + mystery( a, b - 1 ); } // end function mystery 3、(难度:★★★) 在不改变主函数的前提下,适当修改第二题,保证在删除第二个参数必须是非负数这个限制条件后,程序仍然能正常工作。 4、(难度:★★)此题为历年期中试题 编写程序使用辗转相除法求最大公约数。要求:使用递归实现。 提示: MaxCommonFactor(22,8)— MaxCommonFactor(8,22%8) — MaxCommonFactor(6,8%6) — MaxCommonFactor(2,6%2) 由于6%2=0,2即为22与8的最大公约数。 5、(难度:★★★★) 用下面给定的代码调用,实现函数int CommonFactors(int a, int b),计算a和b的所有公约数。第一次调用,返回最大公约数。以后只要再使用相同参数调用,每次返回下一个小一些的公约数。无公约数时返回-1。 提示使用static变量。 主函数如下: #includestdio.h int CommonFactors(int a, int b); int main() { int sub,a,b; printf(Please input a and b:); scanf(%d%d,a,b); while((sub=CommonFactors(a, b)) 0) { static int counter=1; printf(Common factor %d is %d\n,counter++,sub); } return 0; } 给小学生出加法考试题(6-9题每题只需交一个程序,即最终结果,如,选第九题,那么仅提交程序5,程序1-4仅作为过渡使用) 6、完成程序1、2(难度:★★) 7、完成程序1、2、3(难度:★★★) 8、完成程序1、2、3、4(难度:★★★★) 9、完成程序1、2、3、4、5(难度:★★★★★) 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。 程序1 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。 提示:拆分函数:AddTest函数:计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0;Print函数:打印结果正确与否的信息 程序2 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档