十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言中一个函数(function)是一个可以从程序其它地方调用执行的语句块。
成都创新互联公司专注于乌兰察布企业网站建设,响应式网站建设,商城网站建设。乌兰察布网站建设公司,为乌兰察布等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
1、通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来,从而利用C语言所支持的结构化程序设计。
2、从数学角度,函数即集合A和集合B之间的映射关系。实际上计算机中的函数概念也是源于此,因此,一般函数,都有形参和返回值。
3、从计算机组成原理的角度来看,函数即是一个小型的计算机系统,依据冯诺伊曼的“存储程序原理”,每一个计算机系统包含:输入系统、输出系统、运算器以及控制器,实际上对于C语言中的函数来说,它是“存储程序原理”的软实现,其中形参、实参这是输入系统,返回值是输出系统,函数体中的运算符,比如+、-、*、/四则运算即为运算器,而逻辑运算符以及if、while等控制语句便是一个控制器。
准确的说,叫“声明”。在c中,可以“声明-使用-定义”的方法,也可以用定义代替声明,但是必须在使用它之前。如 191462264举的例子,可以这样写:
#includestdio.h
int fun(int x,int y) /*函数定义*/
{
int z;
z=x+y;
return z;
}
main()
{
int a,b,c;
scanf("%d%d",a,b);
c=fun(a,b);
printf("%d",c);
}
如果是先声明,需要注意格式:
【返回类型】 函数名(参数1类型 参数1,【参数2类型 参数2,……】);
注意最后的分号,因为这是一个语句。但是如果是定义的话,如上,int fun(int x,int y) ,最后并没有分号,因为紧接着是函数体,函数头和函数体合起来算是一个程序段,在{ }最后也不需要分号。
按英文。
scanf --- 由 scan 和 f 组成。 scan 扫描的意思,普通话音“斯看”,f 按字母读音 “爱夫”,f 是 formated (有格式)缩写。连读“斯看-爱夫”。
printf --- 由 print 和 f 组成。print 打印,普通话音 扑林特,其中扑 不带韵母地发音。 f 按字母读音 “爱夫”,f 是 formated (有格式)缩写。连读 扑林特-爱夫
gets -- 由 get 和 s 组成。 get 取得的意思,普通话音“盖特”,其中特 不带韵母地发音. s 按字母读音. s -- strings 缩写。
fscanf -- 由f , scan 和 f 组成。两个f 分别按字母读音 “爱夫。连读“爱夫-斯看-爱夫”。
其他类推。
函数是数学名词,代数式中,凡相关的两数X与Y,对于每个X值,都只有一个Y的对应值。这种对应关系就表示Y是X的函数。
函数(function)的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。
函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
函数,最早由中国清朝数学家李善兰翻译,出于其著作《代数学》。之所以这么翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量。
1.i/o函数
(1)scanf函数:
int
scanf(const
char
*format…..);
从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的参数个数,否则返回eof;
注意以下几点:
①scanf函数没有精度控制
如出现:
scanf(“%6.2f”,a);
是绝对错误的
②在以%c格式输入字符数据时,所有输入的均为有效字符
如:
scanf(“%c%c%c”,a,b,c);
输入:d
e
f
则a=’d’,b为空格字符'
',c=’d’
如果以%s读入字符串,则空格键和回车键都可以作为输入结束的标志
如:
scanf(“%s%s”,p,q);---------p,q均为指针
输入:hello
world与
hello
world
效果是相同的,p均指向hello这个字符串,q均指向world这个字符串
③如果在格式控制字符串中有非格式字符,则输入时要照原样入;
如:
scanf(“%d,%d,%d,”,,b,c);
则输入时必须加上逗号:5,6,7
④如果同while配合用的话,则需注意去掉回车键
如有下面一段程序:
while(scanf(“%d”,n)==1n!=0)
{
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
则输出结果是:
2
3
结果表明ch字符是回车键
所以如果要消除影响:
有两种方法:
1)加上getchar();
while(scanf(“%d”,n)==1n!=0)
{
getchar();
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
2)在while中加上%*c
while(scanf(“%d%*c”,n)==1n!=0)即可
2.数学函数
(1)求绝对值
double
fabs(double
);
float
fabsf(float);
long
double
fabsl(long
double);
int
abs(int);
long
int
labs(long
int);
(2)floor函数:返回不大于参数的整数
float
floor(float);
double
floor(double);
(3)ceil函数:返回不小于参数的整数
float
ceil(float);
double
floor(double);
(4)pow:返回x^y;
double
pow(double
x,double
y);
(5)sqrt:返回x的开方
double
sqrt(double
x);
(6)log2,log10:返回底数的自然对数值
double
log2(double
x);
double
log10(double
x);
3.字符串处理函数
(1)char
*strchr(const
char
*str,int
ch);
返回str中第一次出现字符ch的位置指针,否则返回null;
(2)char
*strstr(const
char
*str1,const
char
*str2);
返回str1中第一次出现str2的位置指针,否则返回null;
(3)int
stricmp(const
char
*str1,const
char
*str2);
忽略字符的大小写进行比较
(4)int
strncmp(const
char
*str1,const
char
*str2,int
count);
将str1前n个字符与str2的前n个字符进行比较
(5)char
*strncpy(char
*str1,const
char
*str2,int
count);
将str2的前n个字符复制到str1中
(6)char
*strrev(char
*str);
将字符串str逆序,并返回逆置后的结果
4.常用使用函数
(1)double
atof(const
char
*str);
将字符串str表示的数转换成浮点数
(2)int
atoi(const
char
*str);
将字符串str表示的数转换成整数
(3)void
qsort(void
*buf,int
count,int
size,cmp);————count为所需要进行排序的元素个数,size为每个元素所占用的空间
快速排序
在开始加上#include math.h;
程序中就可以调用pow(x,y)。
main()
{
double z;
z=pow(10,5);
printf("%lf/n",z);
}
输出结果:
285.000000
扩展资料
c语言求自然对数的底e的指数,可以使用函数exp().
exp()的头文件:#include
exp()的函数原型:double exp(double x);
exp()函数的作用:返回e的x次方。
exp()的相关函数:float expf(float x);
long double expl(long double x);
注:自然对数的底e叫做: 欧拉数(eula's number)