山东理工大学史上最全C语言PPTC程序设计9函数.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为准,自动转换------函数调用转换 – void型函数
例 函数带回不确定值
printstar() { printf("**********"); } main() { int a;
a=printstar(); printf("%d",a); }
输出:10
void printstar() { printf("**********"); } main() { int a;
• 从函数形式
– 无参函数 – 有参函数
使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件
• 6.2 函数的定义
– 一般格式
函数返回值类型 缺省int型
无返回值void
合法标识符
现代风格:
函数类型 函数名(形参类型说明表)
a=printstar(); printf("%d",a); }
编译错误!
• 6.4 函数的调用
– 调用形式
函数名(实参表); 说明:
– 实参与形参个数相等,类型一致,按顺序一一对应 – 实参表求值顺序,因系统而定(Turbo C 自右向左)
– 调用方式
• 函数语句: 例 printstar(); printf(“Hello,World!\n”);
传统风格:
函数类型 函数名(形参表) 形参类型说明
{ 说明部分 语句部分
}
例 有参函数(传统风格) int max(x,y) int x,y; { int z;
z=x>y?x:y; return(z); }
• 6.3 函数的返回值
– 返回语句
例 无返回值函数 void swap(int x,int y ) { int temp;
被调函数出现在主调函数 之前,不必函数说明
int型函数可不作函数说明 (Borland C++不行)
z=cx{=+adyfdl;o(at,bz);;
repturirnnzt(=fz(x");>suym?xi:sy;%f",c);
}} return(z);
}Байду номын сангаас
函数参数及其传递方式
– 形参与实参
• 形式参数:定义函数时函数名后面括号中的变量名 • 实际参数:调用函数时函数名后面括号中的表达式
• 形式: return(表达式);
temp=x;
或
return 表达式;
x=y;
或
return;
y=temp; }
• 功能:使程序控制从被调用函数返回到调用函数中,
同时把返值带给调用函数
• 说明:
– 函数中可有多个return语句 – 若无return语句,遇}时,自动返回调用函数 – 若函数类型与return语句中表达式值的类型不一致,按前者
C是模块化程序设计语言
C程序
源程序文件1 源程序文件i 源程序文件n
预编译命令
函数1
函数n
说明部分 执行部分
C程序结构 C是函数式语言 必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义,可以嵌套调用
– 9.1 函数分类
• 从用户角度
– 标准函数(库函数):由系统提供 – 用户自定义函数
max(int x, int y) { int z;
z=x>y?x:y;
return(z);
}
实参 形参
main()
{floflaomtaaatdiandd((d)f(loflaotaxt,,flfoloaat)t;y)/*function declaration*/
{flof{alot aaft,lboz,;act; a,b;
scza=nxfi+(n"yt%;cf;,%f",&a,&b); c=reatdudsrc(naa(,nzb)f);(;"%f,%f",&a,&b);
例 比较两个数并输出大者 main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b); (main 函数) c=max(a,b);
max(int x, int y) (max 函数) printf("Max is %d",c);
{ int z;
}
z=x>y?x:y; return(z); }
第9章 函数
– 模块化程序设计
• 基本思想:将一个大的程序按功能分割成一些小模块 • 特点:
– 各模块相对独立、功能单一、结构清晰、接口简单 – 控制了程序设计的复杂性 – 提高元件的可靠性 – 缩短开发周期 – 避免程序开发的重复劳动 – 易于维护和功能扩充
• 开发方法: 自上向下,逐步分解,分而治之
{ 说明部分 语句部分
}
函数体
例或例{p{pi{}rnri例intppnzr无i{}t有mrren=tisiisntttnnxua参zrta参t有amtte>xr=riff例zrnnt({(((y函x(ua;d函vi参t““(?n>xrz)uo**z}nx数t()y数mi**;函i;空(:dx?ny**zm,xt());**数函;y:xy**y)现,(**(;数in**)代t**现y**风)**代\\nn函格风””))数);;格体}})为空
float add();
}printfc(="smuamx(ias,b%);f",c); }main()printf("Max is %d\n",c); fl{oatf}alodadt(fal,oba,ct;x, float y) { flsocmaaatnxzf(;"fl%oaf,t%x,f"f,l&oaat,&y)b);
• 函数表达式: 例 m=max(a,b)*2;
• 函数参数: 例 printf(“%d”,max(a,b)); m=max(a,max(b,c));
– 函数说明
• 对被调用函数要求:
– 必须是已存在的函数
– 库函数: #include <*.h> – 用户自定义函数: 函数类型说明
• 函数说明
– 一般形式: 函数类型 函数名(形参类型 [形参名],….. );
或
函数类型 函数名();
– 作用:告诉编译系统函数类型、参数个数及类型,以便检验
– 函数定义与函数说明不同
– 函数说明位置:程序的数据说明部分(函数内或外) – 下列情况下,可不作函数说明
» 若函数返值是char或int型,系统自动按int型处理
» 被调用函数定义出现在主调函数之前
例 函数说明举例
例 函数带回不确定值
printstar() { printf("**********"); } main() { int a;
a=printstar(); printf("%d",a); }
输出:10
void printstar() { printf("**********"); } main() { int a;
• 从函数形式
– 无参函数 – 有参函数
使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件
• 6.2 函数的定义
– 一般格式
函数返回值类型 缺省int型
无返回值void
合法标识符
现代风格:
函数类型 函数名(形参类型说明表)
a=printstar(); printf("%d",a); }
编译错误!
• 6.4 函数的调用
– 调用形式
函数名(实参表); 说明:
– 实参与形参个数相等,类型一致,按顺序一一对应 – 实参表求值顺序,因系统而定(Turbo C 自右向左)
– 调用方式
• 函数语句: 例 printstar(); printf(“Hello,World!\n”);
传统风格:
函数类型 函数名(形参表) 形参类型说明
{ 说明部分 语句部分
}
例 有参函数(传统风格) int max(x,y) int x,y; { int z;
z=x>y?x:y; return(z); }
• 6.3 函数的返回值
– 返回语句
例 无返回值函数 void swap(int x,int y ) { int temp;
被调函数出现在主调函数 之前,不必函数说明
int型函数可不作函数说明 (Borland C++不行)
z=cx{=+adyfdl;o(at,bz);;
repturirnnzt(=fz(x");>suym?xi:sy;%f",c);
}} return(z);
}Байду номын сангаас
函数参数及其传递方式
– 形参与实参
• 形式参数:定义函数时函数名后面括号中的变量名 • 实际参数:调用函数时函数名后面括号中的表达式
• 形式: return(表达式);
temp=x;
或
return 表达式;
x=y;
或
return;
y=temp; }
• 功能:使程序控制从被调用函数返回到调用函数中,
同时把返值带给调用函数
• 说明:
– 函数中可有多个return语句 – 若无return语句,遇}时,自动返回调用函数 – 若函数类型与return语句中表达式值的类型不一致,按前者
C是模块化程序设计语言
C程序
源程序文件1 源程序文件i 源程序文件n
预编译命令
函数1
函数n
说明部分 执行部分
C程序结构 C是函数式语言 必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义,可以嵌套调用
– 9.1 函数分类
• 从用户角度
– 标准函数(库函数):由系统提供 – 用户自定义函数
max(int x, int y) { int z;
z=x>y?x:y;
return(z);
}
实参 形参
main()
{floflaomtaaatdiandd((d)f(loflaotaxt,,flfoloaat)t;y)/*function declaration*/
{flof{alot aaft,lboz,;act; a,b;
scza=nxfi+(n"yt%;cf;,%f",&a,&b); c=reatdudsrc(naa(,nzb)f);(;"%f,%f",&a,&b);
例 比较两个数并输出大者 main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b); (main 函数) c=max(a,b);
max(int x, int y) (max 函数) printf("Max is %d",c);
{ int z;
}
z=x>y?x:y; return(z); }
第9章 函数
– 模块化程序设计
• 基本思想:将一个大的程序按功能分割成一些小模块 • 特点:
– 各模块相对独立、功能单一、结构清晰、接口简单 – 控制了程序设计的复杂性 – 提高元件的可靠性 – 缩短开发周期 – 避免程序开发的重复劳动 – 易于维护和功能扩充
• 开发方法: 自上向下,逐步分解,分而治之
{ 说明部分 语句部分
}
函数体
例或例{p{pi{}rnri例intppnzr无i{}t有mrren=tisiisntttnnxua参zrta参t有amtte>xr=riff例zrnnt({(((y函x(ua;d函vi参t““(?n>xrz)uo**z}nx数t()y数mi**;函i;空(:dx?ny**zm,xt());**数函;y:xy**y)现,(**(;数in**)代t**现y**风)**代\\nn函格风””))数);;格体}})为空
float add();
}printfc(="smuamx(ias,b%);f",c); }main()printf("Max is %d\n",c); fl{oatf}alodadt(fal,oba,ct;x, float y) { flsocmaaatnxzf(;"fl%oaf,t%x,f"f,l&oaat,&y)b);
• 函数表达式: 例 m=max(a,b)*2;
• 函数参数: 例 printf(“%d”,max(a,b)); m=max(a,max(b,c));
– 函数说明
• 对被调用函数要求:
– 必须是已存在的函数
– 库函数: #include <*.h> – 用户自定义函数: 函数类型说明
• 函数说明
– 一般形式: 函数类型 函数名(形参类型 [形参名],….. );
或
函数类型 函数名();
– 作用:告诉编译系统函数类型、参数个数及类型,以便检验
– 函数定义与函数说明不同
– 函数说明位置:程序的数据说明部分(函数内或外) – 下列情况下,可不作函数说明
» 若函数返值是char或int型,系统自动按int型处理
» 被调用函数定义出现在主调函数之前
例 函数说明举例