南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)05 函数

函数版权所有@陈暂保留所有权利陈哲版权所有③陈哲保留所有权利
版权所有© 陈哲保留所有权利 版权所有 © 陈哲 保留所有权利 函数 陈哲

>函数声明和调用函数调用的语义嵌套函数调用V>递归函数调用>局部变量和全局变量变量的存储类别程序的内存布局V7版权所有@陈暂保留所有权利动态内存分配V函数指针>可变参数函数版权所有陈哲保留所有权利
版权所有© 陈哲保留所有权利 版权所有 © 陈哲 保留所有权利 2 ➢函数声明和调用 ➢函数调用的语义 ➢嵌套函数调用 ➢递归函数调用 ➢局部变量和全局变量 ➢变量的存储类别 ➢程序的内存布局 ➢动态内存分配 ➢函数指针 ➢可变参数函数

函数声明和调用>函数一般用于实现一个特定的功能,编写完成后可以在程序中多处调用。可以使用库函数可以使用自己编写的函数函数的作用V模块化:如果程序的功能比较多,规模比较大把所有代码都写在main函数中,就会使主函数变版权所有陈暂保留所有权利得功能混杂、代码过长,阅读和维护都很困难代码复用:有时程序中要多次使用某一功能,就需要多次重复编写实现此功能的代码,就会使代码余、不精炼,增加了程序员的工作量3
版 权 所 有 © 陈 哲 保 留 所 有 权 利 函数声明和调用 ➢函数一般用于实现一个特定的功能,编 写完成后可以在程序中多处调用。 ◦可以使用库函数 ◦可以使用自己编写的函数 ➢函数的作用 ◦模块化:如果程序的功能比较多,规模比较大, 把所有代码都写在main函数中,就会使主函数变 得功能混杂、代码过长,阅读和维护都很困难。 ◦代码复用:有时程序中要多次使用某一功能,就 需要多次重复编写实现此功能的代码,就会使代 码冗余、不精炼,增加了程序员的工作量。 3

>函数声明的语法类型名函数名([形式参数表列]))>函数定义的语法类型名函数名(形式参数表列1差一个分号函数体7int max(int X, int y)类型名是指函数的返回值类int max(int x, int y)。形式参数(简称形参)表互和名字(用逗号隔开)。形版权所有@陈暂保留所有权利int z;函数体包括声明部分和语z=x>y?x:y;函数声明和定义的语义return z;所需的参数个数、类型4
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢函数声明的语法: 类型名 函数名([形式参数表列]); ➢函数定义的语法: 类型名 函数名([形式参数表列]) { 函数体 } ◦ 类型名是指函数的返回值类型。 ◦ 形式参数(简称形参)表列可以包括多个参数的类型 和名字(用逗号隔开)。形参表列可以为空。 ◦ 函数体包括声明部分和语句部分。 ➢函数声明和定义的语义:告诉编译器该函数 所需的参数个数、类型和所对应的代码块。 4 差一个分号 int max(int x, int y); int max(int x, int y) { int z; z = x > y ? x : y; return z; }

>通过函数调用,希望得到一个计算结果,这就是函数的返回值函数的返回值类型应在定义函数时指定函数的返回值通过函数中的return语句获得。return语句的语法:returnexpression;。一个函数中可以有一个以上的return语句,执版权所有@陈暂保留所有权利行到哪一个return语句,哪一个就起作用5
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢通过函数调用,希望得到一个计算结果,这就 是函数的返回值。 ◦函数的返回值类型应在定义函数时指定。 ◦函数的返回值通过函数中的return语句获得。 ◦return语句的语法: return expression; ◦一个函数中可以有一个以上的return语句,执 行到哪一个return语句,哪一个就起作用。 5

int max(int X, int y)>函数调用的语法函数名(实际参数表列1int z;。实际参数(简称实参)表z=x>y?x:y;号隔开),每个参数是一return z;为空(调用无参函数),>函数调用的常见方式:。函数调用表达式:函数调用出现在另一个表达式中这时要求函数带回一个确定的值以参加表达式的运算:如:x=max(a,b);y=max(a,b)*2+1;m=max(a, max(b, c));版权所有@陈暂保留所有权利其中,max(b,c)是一次函数调用,它的值作为max另一次调用的实参。函数调用语句:函数调用单独作为一个语句如: max(a, b); print_star();6
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢ 函数调用的语法: 函数名([实际参数表列]) ◦实际参数(简称实参)表列可以包括多个参数(用逗 号隔开) ,每个参数是一个表达式。实参表列可以 为空(调用无参函数),但圆括号不能省略。 ➢ 函数调用的常见方式: ◦函数调用表达式:函数调用出现在另一个表达式中, 这时要求函数带回一个确定的值以参加表达式的运算: 如:x=max(a, b); y=max(a,b)*2+1; m=max(a, max(b, c)); 其中,max(b, c)是一次函数调用, 它的值作为max另一次调用的实参。 ◦函数调用语句:函数调用单独作为一个语句。 如:max(a, b); print_star(); 6 int max(int x, int y) { int z; z = x > y ? x : y; return z; }

>函数调用时必须“先定义,后调用被调用函数必须是已经定义的函数对于库函数,程序员只需用#include指令把有关的头文件包含到本文件中例如:#includeprintf("Hello world!");对于库函数并不提供的功能,程序员需要在程序中自己定义,并且在调用它的版权所有@陈暂保留所有权利函数之前应该声明该函数。例如: int myprint(const char *s);myprint("Hello world!");
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢函数调用时必须“先定义,后调用” , 被调用函数必须是已经定义的函数。 ◦对于库函数,程序员只需用#include指令 把有关的头文件包含到本文件中。 例如:#include printf(“Hello world!”); ◦对于库函数并不提供的功能,程序员需 要在程序中自己定义,并且在调用它的 函数之前应该声明该函数。 例如:int myprint(const char *s); myprint(“Hello world!”); 7

>例:用函数调用输出以下的结果******************Welcome tofunction!******************>编程思路:“*”号。用一个函数printstar来输出一行再写一个函数print message来输出中间一行文字信息。版权所有@陈暂保留所有权利用主函数分别调用这两个函数。8
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢例:用函数调用输出以下的结果。 ****************** Welcome to function! ****************** ➢编程思路: ◦用一个函数print_star来输出一行“*”号。 ◦再写一个函数print_message来输出中间一行文 字信息。 ◦用主函数分别调用这两个函数。 8

#include<stdio.h?int main(声明函数void print starO:void print messageOprint starO :print_message( ;print_star(;return O;void print_starO定义函数printf("***********米米void print_message()printf("Welcome to function!\n");9
版 权 所 有 © 陈 哲 保 留 所 有 权 利 #include int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("********************\n"); } void print_message() { printf("Welcome to function!\n"); } 9 声明函数 定义函数

>例:输入两个整数,要求输出其中值较大者。要求用函数来找到较大者。>编程思路:编写函数max,该函数有两个整型参数,在函数体中比较并返回其中较大者。版权所有@陈替保留所有权利10
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢例:输入两个整数,要求输出其中值较 大者。要求用函数来找到较大者。 ➢编程思路:编写函数max,该函数有两个 整型参数,在函数体中比较并返回其中 较大者。 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)04 控制流.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)03 运算符和表达式.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)02 常量和变量.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)01 计算机和程序.pptx
- 《程序设计》课程教学资源(实验指导)C++语言习题集(南京航空航天大学:陈哲).pdf
- 《程序设计》课程教学资源(书籍文献)Google开源项目风格指南(中文版).pdf
- 长春大学:旅游学院:《Visual FoxPro程序设计》课程教学资源(授课教案,共七章).pdf
- 《计算机导论》课程教学资源(授课教案,教材讲义,共六章).pdf
- 江苏大学:RISC-V CPU设计实验(讲义).pdf
- 黄河水利职业技术大学:《电商网站建设与优化》课程思政教案(教学设计)PHP动态网站开发.pdf
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第09章 SPI与I2C串行总线.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第08章 USART串行通信.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第07章 模数转换器(ADC).ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第06章 定时器.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第05章 通用输入输出接口GPIO.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第04章 中断系统.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 STM32微控制器的开发平台.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 嵌入式开发环境的搭建.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第02章 STM32微控制器.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第01章 绪论.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)06 数组.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)07 记录类型.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)08 文件.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)09 编译预处理和多文件项目.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 1-C++程序设计基础.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 2-文件操作.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 3-类的基础部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 4-类的高级部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 5-继承多态和虚函数.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 6-异常处理.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 7-模板.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 8-标准模板库STL.ppt
- 揭阳职业技术学院:《Linux操作系统》课程教学资源(实验教案,共十八个).pdf
- 揭阳职业技术学院:《计算机应用基础》课程授课教案.pdf
- 揭阳职业技术学院:《物联网》课程授课教案.pdf
- 揭阳职业技术学院:《程序设计基础》课程授课教案.pdf
- 揭阳职业技术学院:《办公自动化》课程授课教案.pdf
- 揭阳职业技术学院:《图像处理》课程授课教案.pdf
- 揭阳职业技术学院:《计算机应用基础》课程授课教案.pdf
- 揭阳职业技术学院:《Photoshop制图》课程授课教案.pdf
