(实验六)模块化(函数)程序设计

(实验六)模块化(函数)程序设计

ID:40657742

大小:45.00 KB

页数:3页

时间:2019-08-05

(实验六)模块化(函数)程序设计_第1页
(实验六)模块化(函数)程序设计_第2页
(实验六)模块化(函数)程序设计_第3页
资源描述:

《(实验六)模块化(函数)程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验六模块化(函数)程序设计一、实验目的l了解并掌握函数的定义方法l了解并掌握函数的调用方法l了解并掌握函数参数的单向传递l了解并掌握函数的递归调用二、实验环境l个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以上硬盘剩余空间。lWindows2000、WindowsXP或Win7操作系统lCode::Blocks(版本12.11或近似版本,英文版)三、实验内容1.课本习题完成课本P197第3题。/*example-22.c*/2.年龄谜题有5个人坐在一起,问第5个人多少岁?他说比第4个大2岁。问第4个人

2、多少岁?他说比第3个大2岁。问第3个人多少岁?他说比第2个大2岁。问第2个人多少岁?他说比第1个大2岁。最后问第一个人,他说是10岁。请问第5个人有多大?编写一函数fun来用递归调用来计算第5个人的岁数,并在main函数中调用它。/*example-23.c*/3.课本习题3完成课本P197第1题。例如:输入两个整数319和377,两者的最大公约数为29,两者的最小公倍数为4147。/*example-24.c*/【解题提示】两个整数a与b(a>b)的最大公约数gcd(a,b)可用辗转相除法来求得:若a%b=0,则gcd(a,b)=b;若a%

3、b=r¹0,则gcd(a,b)=gcd(b,r),即a与b的最大公约数等于b与r的最大公约数。把b赋给a,把r赋给b,获得新的a和b,继续这个过程。一定有一个时刻,b的值会为0,此时a即为原来的a和b的最大公约数。用公式表示如下:gcd(a,b)=gcd(b,r1)=gcd(r1,r2)=gcd(r2,r3)...=gcd(rn-1,rn),当rn=0,rn-1即为a和b的最大公约数。(a%b=r1,b%r1=r2,r1%r2=r3…ri%ri+1=ri+2)两个整数a与b的最小公倍数lcm=a*b/gcd(a,b),即为a和b的乘积除以两者

4、的最大公约数。4.结构体数据在函数之间的传递将下列程序补充完整,练习结构体变量作为函数参数和函数返回值的方法。在主函数中定义结构体变量s,并将其成员的初值赋为1、1.0和²example_1²;在子函数fun()中,将三个成员的值分别改为20、2.0和²example_2²,再传回到主函数中赋给s。程序的输出为:20,2.000000,example_2。/*example-25.c*/#include"stdio.h"#include"string.h"typedefstructst{inta;floatb;charc[20];}ST;fu

5、n(){}intmain(){s={10,1.0,"example1"};printf("%d,%f,%s",s.a,s.b,s.c);return0;}3四、总结与思考一般而言,程序都是有多个函数组成的,因为一个函数中实现的功能会造成逻辑混乱以及阅读上的困难。模块化的思想要求每个函数都只实现单一的功能,这也是实际的程序设计中,程序员所共同遵守的。因此,了解和掌握函数调用方法及函数之间的数据传递方法是非常重要的。只有掌握好了这些,才能让多个函数完美融合成一个整体。函数调用的难点是递归调用,关键在于在某个时刻,递归要能够结束,否则程序就会陷

6、入无穷的递归。在完成以上实验的基础上,有兴趣的同学可以在课后思考以下问题,该题难度较大:思考题:汉诺塔问题课本习题P19812/*think-4.c*/3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。