----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
一、函数
1.库函数
1.调用C语言标准库函数时要求的include命令行
Include命令行必须以#开头,系统提供的头文件以.h作为文件的后缀,文件名用一对双引号或一对尖括号(需要注意include命令行不是C语句,因此不能在最后加分号)
2.标准库函数的调用
函数名(参数表)
如:putchar(ch)
(1) 出现在表达式中的 ------ch=getchar()
(2) 做为单独的语句完成某种操作。-----printf(“********”);
1.1函数的定义和返回值
由于C语言中的定义的函数不能完成用户所有的要求,所以用户可以为自己定义函数实现相应的功能。
1.2函数定义的语法
1:格式:
函数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2……)
{
说明部分
语句部分
}
2:函数名和形式参数都是用户命名的标识符。在同一个程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可,可以与其他函数中的变量同名。
3:C语言规定,不能在函数的内部定义函数。
4:若在函数的首部省略了函数返回值的类型名,则说明该函数的返回值是int类型
5:除了返回值类型为int类型的函数外,函数必须先定义后调用。
6:当没有函数返回值,则必须把函数定义成void类型。
例:编写求两个双精度数之和的函数。
double add(double a, double b )
{
double s;
s=a+b;
return s;
}
2.函数的返回值
函数的值通过return语句返回,
return 表达式;
此表达式的值必须与函数首部所说明的类型一致,若类型不一致,则以函数值的类型为准。需要注意的是,无论函数体中有多少个return语句,只能执行一次。
函数体内可以没有return语句,这时也必须定义函数为 viod类型。
3.函数的调用
3.1函数的两种调用方式
格式为:
函数名(实在参数表)
当实参的个数多于一个时,各实参用逗号隔开。实参的个数必须与调用函数中形参的个数相周,类型一一对应匹配。
如没有形参,则形式为 函数名() 注意后面的小括号不能丢。
如题:
#include<stdio.h>
double add(double ,double);
main()
{
double m,n,z;
scanf(“%lf%lf”,m,n);
z=add(m,n);
printf(“%lf”,z);
}
double add(double a, double b )
{
double s;
s=a+b;
return s;
}
3.2 函数调用时的语法要求
1.调用函数时,函数名必须与所调用的函数名字完全一致。
2.实参的个数必须与形参的个数一致。
3.C语言中规定,函数必须先定义后使用。
4.C语言中,函数可以直接或间接的自己调用自己。称为递归调用
fac(n)=fac(n-1)*n
4.函数的说明
在C语言中凡是未在调用前定义的函数,C编译程序都默认函数的返回值为int 型。对于返回值是其它类型的,若把函数的定义放在调用之后,应该在调用之前对函数进行说明。
说明的格式:
类型名 函数名(参数类型1,参数类型2.。。。。)
也可以用以下格式
类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,……)
函数说明的位置:
一般为了让程序早点识别出程序中的定义好了的函数,一般将其放在程序的开始部分
5.调用函数和被调用函数之间的数据传递
一:三种格式进行传递
1. 实在参数和形式参数之间进行数据传递
2. 通过return语句把函数值返回调用函数
3. 能过全局变量,但这不是一种好的方式,通常不提倡使用。
通过一个程序来看一下数据到底是怎样传递的。
#include<stdio.h>
viodtry(int,int ,int );
main()
{
intx=2,y=3,z=0;
printf(“(1)x=%dy=%d z=%d\n”,x,y,z);
try(x,y,z);
printf(“(4)x=%d y=%d z=%d\n”,x,y,z);
}
voidtry(intx,int y,int z)
{
printf(“(2)x=%d y=%d z=%d\n”,x,y,z);
z=x+y;
}
再来一个程序
#include<stdio.h>
viodswap(int,int);
main()
{
int x=10,y=20;
printf(“(1)x=%d y=%d\n”,x,y);
swap(x,y);
printf(“(4)x=%d y=%d\n”,x,y);
}
voidswap (inta,int b )
{
int t;
printf(“(2)a=%d b=%d\n”,a,b);
t=a;a=b;b=t;
printf(“(3)a=%d b=%d\n”,a,b);
}
程序运行结果
(1) x=10 y=20
(2) a=10 b=20
(3) a=20 b=10
(4) x=10 y=20
6.程序应用举例
编写一个函数isprime(int a),用来判断自变量a是否为素数。若是素数,函数返回整数1,否则返回0.
#include<stdio.h>
intisprime(int)
main()
{
intx;
printf(“entera integer number:”);
scanf(“%d”,&x);
if(isprime(x))
printf(“%dis prime \n”,x);
else
printf(“%dis not prime\n”,x);
}
intisprime(int a)
{
int=i;
for(i=2;i<=a/2;i++)
{
if(a%i==0)
return 0;
return 1;
}
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
详情请查看: