6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 21页
| 40人阅读
| 11人下载
普通

内容正文:

第六章 程序的模块化--函数 1 CONTENTS 目录 01 02 函数的分类 函数的认知 03 自定义函数及其应用 04 函数的调用 CONTENTS 目录 05 06 函数的递归调用 函数的嵌套调用 07 数组作为函数的参数 08 变量的作用域 C语言 知识树 My First Template 函数的调用(值与址) C语言程序设计 5 C语言 本次任务 任意输入两个数通过函数调用完成交换两个数的值。 C语言程序设计—函数的调用 My First Template C语言 任务分析 #include "stdio.h" void main() { int x,y,temp; printf("请输入x,y的值: "); scanf("%d,%d",&x,&y); printf("x=%d,\ty=%d ",x,y); temp=x; x=y; y=temp; printf("交换后x=%d,\ty=%d ",x,y); } 基本实现 函数的调用—任务分析 My First Template 交换任务 输入两 个数 交换 大小 函数 C语言 任务初探 #include "stdio.h" swap(int a,int b); void main() { int x,y,temp; printf("请输入x,y的值: "); scanf("%d,%d",&x,&y); printf("交换前:x=%d,\ty=%d ",x,y); printf("swapped: "); swap(x,y); printf("交换后:x=%d,\ty=%d ",x,y); } swap(int a,int b) { int temp; temp=a; a=b; b=temp; } 函数的调用—任务初探 My First Template C语言 通过在程序中使用函数名称,可以执行函数中包含的语句,这称为调用函数。 调用形式 函数名(实参表); 说明:实参与形参个数相等,类型一致,按顺序一一对应,实参必须有确定的值,形参必须指定类型。 函数调用 函数语句: 例 printf("我是一个好人! "); 函数表达式: 例 c= tolower ('T'); 函数参数: 例 m=max(a,max(b,c)); 函数的调用—相关知识 My First Template C语言 库函数调用: 由C语言系统提供; 用户无须定义,也不必在程序中作类型说明; 只需在程序前包含有该函数定义的头文件; 自定义函数调用: 用户在程序中根据需要而编写的函数; 如果自定义函数在主调函数的后面,需要在调用前声明 函数调用说明 #include "stdio.h" #include "math.h" void main() { int n=3,p; p=pow(2,n); printf("%d ",p); } #include "stdio.h" int add(int x,int y); void main() { int sum,a=10,b=20; sum=add(a,b); printf("%d ",sum); } int add(int x,int y) { return x+y; } 函数的调用—相关知识 My First Template C语言 参数传递方式 1、值传递方式 方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值 特点:形参与实参占用不同的内存单元,单向传递。 2、址传递方式 方式:函数调用时,将数据的存储地址作为参数传递给形参 特点:形参与实参占用同样的存储单元;“双向”传递;实参和形参必须是地址常量或变量 地址:ED2F 形参 5 实参 地址:EF3D 5 地址:ED2F 形参 实参 地址:EF3D 5 EF3D 8 函数的调用—相关知识 My First Template C语言 地址的表示 EF3D C语言中取一个变量的地址用“&” 符号。如:int a ; &a表示取a的地址 存储地址,使用指针(数据类型)变量。格式: int *p; int * 代表指针类型,p为变量名。 内存 10 int x ED53 地址 变量 数据 ED53 int *p 指针 在指针定义(int *p)后: p表示地址 *p表示取地址里面的值。 函数的调用—相关知识 My First Template C语言 任务再分析 #include "stdio.h" swap(int a,int b); void main() { int x,y; printf("请输入x,y的值: "); scanf("%d,%d",&x,&y); printf("交换前:x=%d,\ty=%d ",x,y); printf("swapped: "); swap(x,y); printf("交换后:x=%d,\ty=%d ",x,y); } swap(int a,int b) { int temp; temp=a; a=b; b=temp; } 7 11 x: y: 调用前: 调用结束: 7 11 x: y: 调用: 7 11 a: b: 7 11 x: y: swap: 7 11 x: y: 11 7 a: b: temp 值传递 函数的调用—任务再分析 My First Template C语言 任务实现 #include "stdio.h" swap(int *a,int *b); void main() { int x,y; printf("请输入x,y的值: "); scanf("%d,%d",&x,&y); printf("交换前:x=%d,\ty=%d ",x,y); printf("swapped: "); swap(&x,&y); printf("交换后:x=%d,\ty=%d ",x,y); } swap(int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } 7 11 x: y: 调用前: 调用结束: 11 7 x: y: 调用: 7 11 a: b: 7 11 x: y: swap: x: y: 11 7 a: b: temp 函数的调用—任务实现 My First Template 函数的嵌套调用 C语言程序设计 15 C语言 知识点回顾 C语言程序设计—函数的嵌套调用 程序模块化—函数 函数调用 参数传递的方式 My First Template C语言 本次任务 利用函数嵌套计算 S=22!+32! C语言程序设计—函数的嵌套调用 My First Template C语言 函数的嵌套调用—函数嵌套调用的过程 main( ) a函数  调用函数a  调用函数b  b函数      结束  嵌套调用 C规定:函数定义不可嵌套,但可以嵌套调用函数 My First Template C语言 函数的嵌套调用—函数嵌套调用的过程 #include <stdio.h> int dif(int x,int y,int z); int max(int x,int y,int z); int min(int x,int y,int z); void main() { int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=dif(a,b,c); printf("Max-Min=%d ",d); } int dif(int x,int y,int z) { return max(x,y,z)-min(x,y,z); } int max(int x,int y,int z) { int r; r=x>y?x:y; return(r>z?r:z); } int min(int x,int y,int z) { int r; r=x<y?x:y; return(r<z?r:z); } main( ) 调用函数dif dif函数 调用函数min max函数 min函数 例子:求三个数中最大值与最小值的差 输出结束 调用函数max My First Template C语言 函数的嵌套调用—任务分析 任务分析 本题是求S=22!+32! 可编写两个函数,一个是用来计算平方值的函数f1,另一个是用来计算阶乘值的函数f2。 主函数先调f1计算出平方值,再在f1中以平方值为实参,调用 f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加和。 My First Template C语言 函数的嵌套调用—任务实现与总结 任务实现 #include<stdio.h> long f2(int q) { long c=1; int i; for(i=1;i<=q;i++) c=c*i; return c; } long f1(int p) { int k; long r; k=p*p; r=f2(k); return r; } main() { int i; long s=0; for (i=2;i<=3;i++) s=s+f1(i); printf(" s=%ld ",s); } 运行结果 My First Template $$

资源预览图

6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
6.3 函数的调用(值与址)(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。