实验5 模块化程序设计(一)
一、实验目的和要求
(1)掌握C语言函数定义及调用的规则。
(2)理解参数传递的过程。
(3)理解函数的嵌套调用。
二、实验内容和步骤
1. 阅读并分析下面的程序,并按要求改写程序。
#include<stdio.h>
int main()
{
int max,a,b;
scanf("%d%d",&a,&b);
if(a>b)
max=a;
else
max=b;
printf("max=%d\n",max);
return 0;
}
问题1:该程序的主要功能是什么?
问题2:自定义函数fun实现该程序的功能,要求在主函数内实现数据的输入输出(也就是说数据由主函数提供,fun将求得的结果返回给主函数)。
2. 调试下面程序,并给出正确的程序代码。
#include<stdio.h>
int main()
{
int x,n,s;
s=power(x,n);
return 0;
}
power(y)
{
int i,p=1;
for(i=1;i<=n;i++)
p=p*y;
}
-
编写函数把华氏温度转换为摄氏温度,公式为:
-
编写一个函数fun1,输入3个顶点坐标,求 的面积。
实验6 模块化程序设计(二)
一、实验目的和要求
(1)掌握函数的递归调用。
(2)理解变量的作用域和生存期。
二、实验内容和步骤
- 编写递归函数getPower计算xy。其中x为double类型,y为int型,当y<0时,返回0。
- 用递归的方法编写函数求Fibonacci级数,公式为:
- 分析下面程序,并记录输出结果。
#include<stdio.h>
int z=10;
void fun()
{
static int x=1;
int y=10;
x=x+2;
y=y+x+z;
printf("x0=%d,y0=%d\n",x,y);
}
int main()
{
int x=2,y=3;
printf("x=%d,y=%d\n",x,y);
fun();
z=z+4;
printf("x=%d,y=%d\n",x,y);
fun();
return 0;
}
问题1:输出程序运行结果。
问题2:分析自动变量和静态变量的区别(从作用域和生存期两点进行分析)。
问题3:分析全局变量和局部变量的区别(从作用域和生存期两点进行分析)。