实验八函数应用一daan

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八函数应用(一)

一、实验目的

1.掌握函数的定义和调用;

2.掌握形参和实参的使用和传值调用;

3.了解函数声明的使用;

4.掌握函数的嵌套调用;

5.了解函数的递归调用,掌握递归函数的编写规律;

6.重点掌握数组作函数参数。

二、实验学时数

3学时

三、实验步骤

(一)阅读程序

1.fun (int x, int y, int z)

{ z=x * x + y * y;

}

main()

{ int a=38;

fun(7,3,a);

printf(“%d”,a);

2.void fun (int x,int y );

main()

{int x=5,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

void fun (int x,int y )

{ x=x+y;

y=x-y;

x=x-y;

printf(“%d,%d\n”,x,y);

3.int f (int a) ;

main()

{ int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0;

for (i=0; f( s[i] ) ; i++)

d+=s[i];

printf("%d\n",d);

}

int f(int a)

{ return a%2;

}

4.long f( int g)

{ switch(g)

{ case 0:return 0;

case 1:

case 2: return 1;

}

return ( f(g-1)+ f(g-2));

}

main ( )

{ long int k;

k = f(7);

printf("\nk= %d\n",k);

5. int f(int b[ ][4])

{ int i,j,s=0;

for(j=0;j<4;j++)

{ i=j;

if(i>2) i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

printf(“%d\n”,f(a) );

(二)

要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。

1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

___________________________

main()

{double x,y;

scanf("%lf%lf",&x,&y);

printf("%.8lf\n",max(x,y));

}

double max(double a,double b)

{return (a>b ? a:b) ;

}

double max(double a,double b);

main()

{double x,y;

scanf("%lf%lf",&x,&y);

printf("%.8lf\n",max(x,y));

}

double max(double a,double b)

{return (a>b?a:b) ;

}

2.以下函数的功能是:求x的y次方,请填空,并配写出主调函数。

double fun( double x, int y)

{int i;

double z;

for(i=1, z=x; i

return z;

}

main( )

{

}

double fun( double x, int y)

{int i;

double z;

for(i=1, z=x; i

return z;

}

main( )

{ double a;

int b;

scanf("%lf%d",&a,&b);

printf("%lf的%d次方为%lf",a,b,fun(a,b));

}

3.mystrlen函数的功能是计算字符串的长度,并作为函数值返回。请填空,并配写主调函数。

int mystrlen(char str[ ])

{int i;

for(i=0; ____________!=‘\0';i++);

return(_______);

}

main ( )

{

}

int mystrlen(char str[ ])

{int i;

for(i=0; str[i]!='\0';i++);

return(i);

}

main ( )

{char a[81];

scanf("%s",a);

printf("所输入字符串的长度为%d\n",mystrlen(a));

}

4.通过函数求f(x)的累加和,其中f(x)=x*x*x+1

SunFun(int n) ;

F( int x) ;

main()

{

printf("The sum=%d\n",SunFun(3));

}

SunFun(int n)

{

int x,s=0;

for(x=1;x<=n;x++) s+=F( ____________ );

return s;

}

F( int x)

{ return (___________);}

相关文档
最新文档