实验十
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十函数程序设计(一)【实验目的】
1.熟悉掌握函数的定义和调用。
2.掌握函数的实参、形参和返回值的概念及使用。
【实验内容】
一、试着编写下列程序
【例10-1】输出如下图形
**********
hello
**********
源程序:
#include "stdio.h"
void star() /*定义函数*/
{
printf("**********\n");
}
void fun() /*定义函数*/
{
printf(" hello\n");
}
main()
{
star();
fun();
star();
}
举一反三
【10-1】输出如下图形
**********
**********
hello
**********
**********
【例10-2】在函数fun中求1+2+3+4+5的和值,在main()函数中输出和值。
源程序:
#include "stdio.h"
int fun(int n) /*定义函数*/
{
int i=1,sum=0;
for(;i<=n;i++)
sum+=i;
return sum; /*通过return语句向main()返回值*/
}
main()
{
int i=5,sum;
sum=fun(i);
printf("sum=%d\n",sum);
}
举一反三
【10-2】从键盘输入一个正整数n,计算n!的值。要求定义和调用函数fac(n),计算n!。源程序:
#include “stdio.h”
int fac(int m)
{/***************begin****************/
/***************end******************/
}
int main()
{
int n;
double f;
printf(“input n:”);
scanf(“%d”,&n);
f=fac(n);
printf(“%d!=%f\n”,n,f);
}
【例10-3】输入x,输出相应的y值。要求定义和调用函数fun,实现下面的分段函数。
0 (x=0)
y= sin(x) (x>0)
|x| (x<0)
源程序:
#include "stdio.h"
#include "math.h"
float fun(float x) /*在自定义函数体中可以有若干个return语句,但只有一个起作用*/ {
if(x==0)
return 0;
else if(x<0)
return fabs(x);
else
return sin(x);
}
main()
{ float x,y;
printf("Enter x:");
scanf("%f",&x);
printf("\n");
y=fun(x);
printf("y=%f\n",y);
}
举一反三
【10-3】输入x,输出相应的y值。要求定义和调用函数fun,实现下面的分段函数。
2x-1 (x=0)
y= x(x>0)
cos(x) (x<0)
【例10-4】任意输入两个实型数,输出最大值。
源程序:
#include "stdio.h"
double max(double x,double y); /*函数说明*/
main()
{
double a,b;
printf("Enter a,b:");
scanf("%lf,%lf",&a,&b);
printf("最大者=%.2f\n",max(a,b));
}
double max(double x,double y) /*对形参分别定义*/
{
double max;
if(x>y)max=x;
else max=y;
return max;
}
举一反三
【10-4】任意输入三个实型数,在自定义函数fun中求它们的和值,在主函数中输出和值。
二、程序改错
不允许增加行也不允许删除行,也不得更改程序的结构。
1、下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值。
Y=1+1/(2×2)+1/(3×3)+1/(4×4)+…+1/(m×m)
例如,若m中的值为5,则应输出:1.463611。
源程序:
#include
/********found********/
int fun(int m)
{
double y = 1.0;
int i;
/********found********/
for (i=2; i /********found********/ y += 1/(i*i); return (y); } main() { int n = 5; /********found********/ printf("\nThe result is %1f\n", fun(int n)); } 2、输入三个实型数,输出其中的最大数。要求定义和调用函数max,找出并返回最大数。源程序: #include "stdio.h" /********found********/ int max(double x,double y,double z); /*函数说明*/ main() { double a,b,c; printf("Enter a,b,c:"); scanf("%lf,%lf,%lf",&a,&b,&c);