第七章函数分类

第七章函数分类
第七章函数分类

一、函数分类

1、主函数main() { }

2、库函数scanf printf getchar putchar sqrt pow(x,y) fabs

只知道功能是什么就可以,不用具体的了解内部结构。#include “math.h”

#include “ctype.h”字符函数

#include “string.h”字符串函数

#include “stdio.h”输入输出函数

#include “stdlib.h”动态分配和随机函数

3、自定义函数

用户根据自己的需要定义的函数,称为自定义函数,具体功能是完成一个操作/计算。

C程序的基本组成单位是函数。

一个可以执行程序,可以由多个函数组成,不管有多少的函数,总是从主函数开始执行,在主函数结束程序。

double sum(double x,double y)

{double z;

z=x+y;

return z;}

main()

{double a,b,c;

scanf(“%lf%lf”,&a,&b);3.4 5.9

c=sum(a,b);

printf(“%lf”,c);

}

二、自定义函数的定义

1、格式:

函数返回值的类型函数名(类型名形式参数1,类型名形式参数2,……..) 函数首部{定义部分

执行部分

} 函数体

int sum(int x,int y)形式参数

{int z;

z=x+y;

return z;}

说明:1)函数返回值的类型int(可以省略) float double char void(无值型)

2) 函数名是用户根据自己的需要定义的名字,见名知义.

3)( )不能省略,可以为空.为形式参数.个数应该和实际参数个一致.类型一致.

4){}为函数体,定义部分和执行部分.

void fun(int x,int y)

{if(x>y) return x;

else return y;

}

main()

{int x,y;

scanf(“%d%d”,&x,&y);

printf(“%d”, fun(x,y););

}

三、函数的调用

格式1:函数做为表达式的一部分出现.

max=fun(x,y);

printf(“%d ”, fun(x,y));

格式2:函数做为一条独立语句出现.

printf(“%d ”,a);

四、函数的返回值

格式: 1) return 表达式

2)return (表达式)

3)return ;

4)没有return

说明,一个函数中可以有多个return,不管有几个return,只有一个执行.

注意:1)函数必须选定义,后使用.返回值是int 或char 时除外.

2)若函数的定义位置在main()的下面,应该在main()上给该函数进行说明.

double fun(double a,double b)

double fun(double a,double b);

double fun(double x,double y);

double fun(double,double);

fun(int a,int b)

{int t;

t=a;a=b;b=t;

}

a b

a b

main()

{int a,b;

scanf(“%d%d”,&a,&b);

fun(a,b);

printf(“%d%d”,a,b);

}

7.4

int func(int a 13,int b 8)

{c=a+b;return c;}

main()

{int x=6,y=7,z=8,r;

r=func((x--,y++,5+8),z--);

printf(“%d\n”,r);

}

7.9

double sub(double x,double y,double z) {y=y-1.0;z=z+x;return z;}

main()

{double a=2.5,b=9.0;

Printf(“%f\n”,sub(b-a,a,a));

7.10

int fun2(int a,int b)

{int c;

c=(a*b)%3;return c;22*38 }

int fun1(int a 11,int b 19) {int c;

a+=a; 22

b+=b;38

c=fun2(a,b);

return c*c;

}

main()

{int x=11,y=19;

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

int float double char sum(int a, int b) {return a+b;}

main() 入口

{int x=1,y=3,z;

z=sum(x,y);实际参数

printf(“%d”,z);

}出口

7.7

double f(int n) 2

{int i;double s;

s=1.0;

for(i=1;i<=n;i++) s+=1.0/i; i=2 s=2.5

return s;

}

main()

{int i,m=3;double a=0.0;

for(i=0;i

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

}

i=0 a=a+f(0)=0.0+1.0=1.0

i=1 a=a+f(1)=1.0+2.0=3.0

i=2 a=a+f(2)=3.0+2.5=5.5

i=3

7.8

unsigned fun6(unsigned num 26) {unsigned k=1;

do

{k*=num%10;num/=10;}k=12;num=0; while(num);

return k;

}

main()

{unsigned n=26;

printf(“%d \n”,fun6(n)); }

7.12

x y

23

double fun(double x 2,int y 3) {int i;double z=1.0;

for(i=1;i<=y;i++) z=z*x; return z;

}

I=4 i<=3 z=8

∑==n

k k s 0!

s=0!+1!+2!+….+n ! long f(int n)

{int i;long s;

s=1;

for(i=1;i<=n;i++) s=s*i; return s;

}

main()

{long s;int k,n;

scanf(“%d”,&n);10 s=0;

for(k=0;k<=n;k++) s=s+f(k); printf(“%ld \n”,s); }

通项式

+-+-=4*3*23*221x x x x x x f

相关主题
相关文档
最新文档