函数及其应用

 2024-02-19 01:01:21  阅读 0

函数及其应用 1 第 1 页,共 69 页,编辑于 2023 年星期

10.1 功能的基本概念 一个较大的程序一般由若干个程序模块(子程序)组成,每个模块(子程序)完成一定的功能。 在C语言中,子程序的功能是通过函数来​​实现的。

AC程序可以由一个主函数和多个函数组成。 主函数调用其他函数,其他函数也可以互相调用。 同一个函数可以被一个或多个函数调用任意多次。下图是程序中函数调用的示意图: 2 第 2 页,共 69 页,2023 年星期五编辑 main()A()B( )C()D()E()F()G ()E()H()H()H()G() 函数调用图:Call 3 第 3 页,共 69 页,2023 年星期五编辑

(1).

源程序文件由一个或多个函数组成。 一个源程序

文件是一个编译单元,而不是以功能单元进行编译。 笔记2)。 AC程序可以由一个或多个源程序文件组成。

这样,编写、编译、调试就可以分开进行。 源文件可以是

多个 C 程序通用。 (3)。 所有功能都是并行的,一个功能不从属于另一功能。

数字和函数可以互相调用,但main()函数不能调用。 4 第4页,共69页,2023年星期五(4)编辑。从使用角度来看,函数可以分为:数学函数(#"math.h")

字符函数 (#"ctype.h")

库函数字符串函数(#".h")

输入和输出函数(#“stdio.h”)

动态存储分配函数(#".h")

……

自定义函数:5 第5页,共69页,2023年星期五编辑,从函数的形式上划分;

无参函数:调用函数没有数据传递给被调用函数

带参数的函数:主调用函数可以向被调用函数传递数据。 空功能:什么都不做,先占位置,后面再扩展功能。 6 第6页,共69页,2023年1月1日星期五编辑。 函数定义 一般形式:(自定义函数)

(1). 无参数函数的定义形式:

类型标识符函数名(){函数体}

函数定义总是

不能添加分号 (;)! 解释:

类型标识符指的是函数返回值的类型。

如果函数不想返回值,可以写 void.7 第 7 页,共 69 页,编辑于 (2), 2023。 带参数的函数定义:类型标识符函数名(形参列表){ 一些语句}形式参数示例: (intx,inty){intz;z=x+y;;} 注意:

返回值z的类型(int)

应与类型标识符统一。 8 第 8 页,共 69 页,2023 年星期五编辑 1. 函数参数和函数值; (1)形式参与及实参:例:main(){inta,b,c;

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

c=max(a,b);("maxis%d",c);}(intx,inty)

/*定义参数化函数 max*/{intz;z=x>y?x:y;(z);}x、y 为形参 a,b 为实参 10.2 函数的参数 9 第 9 页共 6 页 十九页,于 2023 年星期五编辑实际参数可以是常量、变量或表达式,但要求有确定的值。

喜欢:

最大值(3,a+b);c. 实参和形参的类型应该一致,并且一一对应。 注:a. 形参变量(上例中的x、y)在不调用时不占用存储单元。 当函数被调用时,形参分配内存单元。 调用完成后,释放形参。 。 10 第 10 页,共 69 页,2023 年星期五编辑。实参到形式参数的数据传输是一种单向值传输。 只能从实参传递到形参,反之则不行。

实际参数和形式参数在内存中占用不同的单位。

b32

即使形参单元格中的值发生变化,也不会影响实参单元格的值。

函数调用后,形参单元被释放,但实参单元仍然保留。 11 第11页,共六十九页,2023年编辑,星期五 例10.9读取程序并写入程序执行结果 #(intx,inty){;temp=x;x=y;y=temp;; }(){inta,b;scanf("%d%d",&a,&b);

交换(a,b);("%d,%d\n",a,b);;}.c

即使形参单元格中的值发生变化,也不会影响实参单元格的值。

交换两个变量。 12 第 12 页,共 69 页,2023 年星期五编辑 2. 函数的返回值及语句:

执行C语言程序就是一一调用函数。 当函数被调用时,可以返回某个值作为函数的值(供主函数使用)。 当需要返回值时,请使用函数中返回值的语句:

stdio.h包含什么函数_函数包含哪些_函数包含哪些部分

(表达);

这里表达式的值就是函数的返回值。 13 第 13 页,共 69 页 2023 年星期五编辑 说明:

A。 语句后面的括号可以省略:

例如:(z);; 后面可以跟一个表达式。

14 第 14 页,共 69 页,2023 年星期五编辑

b. 当函数不需要带返回值时,C语言中有两种方法:

①. 使用不带表达式的语句,例如:; ②. 连都没用过。 这是因为在函数的末尾,有一个隐含的

语句,当遇到后面的大括号“}”时,控制权交给主调用者

功能。 15 第 15 页,共 69 页,2023 年星期五编辑。为了清楚地表明不会带回任何值,可以使用“void”定义。 例如: (); 这确保该函数不会返回任何值。 C。 如果函数没有指定返回值,并不意味着它不返回任何值,它可能返回一个不定值。

因为不考虑使用,所以即使返回值是不定值,也没有多大关系。

16 第 16 页,共 69 页,2023 年星期五编辑 #(intx,inty){intz;z=x+y;;}(){inta,b,c;scanf("%d% d",&a,&b) ;c=add(a,b);("c=%d\n",c);;} 示例: 10.1 函数值传递示例。 (P149) 该函数必须在定义或解释之前调用! .c17 第 17 页,共 69 页,于 2023 年星期五编辑 示例:10.2

函数地址传送示例。(P150)

输入由数字组成的字符串并将其转换为整数。 #(char*p){=0;while(*p){sum=sum*10;sum=sum+(*p-'0');p++;

};}(){[5];intx;

(":\n");scanf("%s",str);x=ctoi(str);

("%d\n",x);;} 数组名称作为函数参数

.c*p-'0'

将字符数转换为数字。 18 第 18 页,共 69 页,2023 年星期五编辑 3. 函数调用:(1)。 函数调用方法: 函数调用方法有以下三种: a . 语句: 作为语句,函数不需要函数带回值来完成某些功能和操作。 喜欢:

();b. 函数表达式:函数调用出现在表达式中。 喜欢:

c=z*max(a,b); 这时候就需要函数带回一定的值来参与运算。 19 第 19 页,共 69 页,2023 年星期五编辑功能参数:

例如:("%d",max(a,b));max(a,b)用作函数的参数。

20 第 20 页,共 69 页,2023 年星期五编辑 10.3 系统函数的应用 C 语言提供了非常丰富的库函数。 这些功能可以分为:

1.数学函数,例如:

sin()、sqrt() 函数等。它们的包含文件是:“math.h”。

2、字符串函数,如:gets()、()函数等,其包含文件为:“.h”。

3. 输入输出函数,其包含文件为:“stdio.h”。

21 第 21 页,共 69 页,于 2023 年 3 月 1 日星期五编辑。常用的数学函数有:

(1).sqrt():(); 计算; x 应该 >= 0

(2).fabs():(); 计算x的绝对值

x(3).pow():

(,);计算xy

价值

(4).exp():(); 计算前

值 22 第 22 页,共 69 页 于 2023 年星期五编辑 示例 10.3

求 z=xy+c

xy的值可以调用C语言的系统函数

pow() 函数来查找。 ##//必须添加数学库头文件(){,y,z,c;("\n");

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

函数包含哪些部分_stdio.h包含什么函数_函数包含哪些

z=pow(x,y)+c;("z=%lf\n",z);;} C++ 中的另一种注释方法 23 第 23 页,共 69 页,2023 年星期五编辑 例 10.4

使用循环方法生成1到100之间的10个随机数,并将它们显示在屏幕上。 关于 rand() 随机函数:

rand() 将返回一个从 0 到 0 之间的随机值。

24 第 24 页,共 69 页,2023 年星期五编辑##(){("=%ld\n",);}注意:

它是一个宏定义的值。 是系统中rand()返回的最大值。

它的值可以通过以下程序输出: 它取决于系统(32767)。 25 第 25 页,共 69 页,2023 年星期五编辑 2. srand(种子)函数:

srand() 用于设置 rand() 生成随机数时的随机数种子。 参数seed必须是整数,通常可以使用time(0)的返回值作为种子。

如果每次将种子设置为相同的值,则 rand() 生成的随机值每次都会相同。

3. time() 函数返回自 1970 年以来的秒数。 26 第 26 页(共 69 页)于 2023 年星期五编辑 示例 10.4

使用系统函数 rand(),该函数生成 1 到 100 之间的 10 个随机数。该函数在 .h.###(){ 中声明

因蒂,j;

srand(时间(0));

对于(i=0;i

j=1+(int)(100.0*rand()/(+1.0));

("%4d",j);}("\n");;}正在初始化随机数生成器。c27 第 27 页,共 69 页,于 2023 年星期五编辑

C语言提供的库函数中,有丰富的与字符串操作相关的函数。 它们的头文件有些是stdio.h,有些是.h。

1.puts(字符数组名)(头文件为stdio.h)

功能:向终端输出一个字符串。 如:[]=“中国”; 投入(str);

10.3.2 字符串处理函数将输出:China

注意:只能输出一个字符串,不能写成:puts(str1, str2); 28 第28页,共69页,2023年星期五编辑。 2. gets(字符数组名):(头文件为Stdio.h)

功能:从终端输入一串字符放入字符数组中。如:[10];gets(str);——输入一串字符

gets() 函数以回车符结束输入。 3. 其他常用的字符串操作函数有:

a.(s1,s2)函数:将字符串s2复制到s1,s1必须写成数组名的形式,s2可以是

数组名,也可以是字符串常量。 29第 29 页(共 69 页)于 2023 年星期五编辑

b.(S1,S2)函数:

将字符串 S2 连接到 S1 的末尾。 自动删除S1末尾的'\0',仅保留新字符串末尾的'\0'。

c.(S1)功能; 该函数返回S1的实际长度(不包括'\0')。

例如:[10]=“中国”;

(“%d”,(str));

输出不是 10,也不是 6,而是 5。

30 第 30 页,共 69 页,2023 年星期五编辑 d.(S1,S2) 函数;

要从左到右逐个字符地比较两个字符串,请按

ASCII 值比较。 直到出现不同的字符或遇到'\0'。

S1==S2

...该函数返回值 0

S1>S2

...函数的返回值>0

S1

...函数返回值

从键盘输入两个字符串,将两个字符串连接起来输出到屏幕##(){[80],s2[80];

获取(s1);获取(s2);

(s1,s2);puts(s1);;}gets() 以回车符结束输入..c32 第 32 页,共 69 页,于 2023 年星期五编辑 示例 10.6 从键盘输入一个字符串,求该字符串的长度字符串##(){intx;[80];获取(str);

x=(str);("字符串的长度: %d\n",x);;}.c33 第 33 页,共 69 页,于 2023 年星期五编辑 10.3.3 字符操作函数 带转换函数 1.() :函数原型:

(英寸); 检查 ch 是字母还是数字。 如果是字母或数字则返回1,否则返回0.2。():

函数原型:

(英寸); 检查 ch 是否是字母。 如果是字母,则返回 1,否则返回 0.34 第 34 页,共 69 页,编辑于 3, 2023。 ():函数原型:

(英寸); 检查ch是否为小写字母(a~z)。 如果是,则返回 1,否则返回 0.4。 ():函数原型:

(英寸); 检查ch是否为十六进制字符(0~9或a~f或A~F)。 如果是,则返回 1,否则返回 0.35。 第 35 页,共 69 页,编辑于 2023 年,星期五 5.atoi()

函数原型:

(字符*字符串)

功能功能:

将字符串(具有数字内容)转换为整数值。

头文件:

##

(){

国际;

[

]="12345.78";

n=atoi(str);

(“=%s

=%d\n",str,n);

;}36 第 36 页,共 69 页,2023 年编辑,星期五 示例 10.7

从键盘输入一些字符并输出大写字符和十六进制字符。 当输入字符@时,结束字符##(){;while((ch=())!='@'){

if((ch)||(ch))("%3c",ch);}("\n");;}.c37 第 37 页,共 69 页,于 2023 年星期五编辑 10.4 自定义函数 C 语言允许用户自定义功能。 例如:下面是一个自定义函数,其功能是求两个整数之和。

(intx,inty){intz;z=x+y;;}38 第 38 页,共 69 页,于 2023 年星期五编辑

关于被调用函数和函数原型的声明:

在一个函数内调用另一个函数(称为被调用函数)需要什么条件?

A。 该函数必须存在(库函数或自定义函数)。

此外:

b. 如果是库函数,一般应该在文件开头使用#命令。

包括有关相关功能的一些信息。

39 第 39 页,共 69 页,2023 年星期五编辑。 如果用户自己定义了一个函数,并且调用函数和被调用函数在同一个源文件中: 一般情况下,调用函数必须对被调用函数做出声明。

函数声明向编译系统声明该函数将被调用,并通知编译系统相关信息。 40 第 40 页,共 69 页,于 2023 年星期五编辑 示例:main(){,b,c;scanf (“”%f,%f”,&a,&b);c=add(a,b);(“sumis %f”,c);}

(,)

{;z=x+y;(z);}

被调用函数的声明(,);

标签: 函数 星期 字符

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码