内容正文:
《C语言学习与应用》教学课件
本学习任务是通过若干个程序设计任务的完成学习模块化的程序设计技能,感受同学之间的协同合作,要求学生能根据要求编写函数,并利用函数完成程序设计任务,学习自定义函数与主函数之间的数据传递知识。
任务说明
学习任务5 模块化程序设计——建立自己的函数库
‹#›
掌握库函数的调用方法。
掌握函数的定义、调用和说明方法。
理解实参与行参。
掌握函数值的概念。
掌握主函数与函数间的数据传递。
知识要求
学习任务5 模块化程序设计——建立自己的函数库
‹#›
能够读懂具有自定义函数的程序。
能够完成累加和、判断素数、求绝对值的函数编写。
能够根据函数编写对应的主函数并调试通过。
能够判断程序运行结果的对错。
能够修改错误的程序。
能力要求
学习任务5 模块化程序设计——建立自己的函数库
‹#›
函数返回值的类型 函数名(类型名 形参1,类型名 形参2…)
{说明部分
语句部分
}
自定义函数简称函数。
自定义函数
1.自定义函数的形式
01
学习任务5 模块化程序设计——建立自己的函数库
‹#›
微课
自定义函数
学习任务5 模块化程序设计——建立自己的函数库
2.相关约定
在同一个程序文件中,函数名必须是唯一的,形参名只要在同一函数中是唯一的即可。
函数不能嵌套定义,即不能在一个函数内部再定义另一个函数。
省略函数返回值的类型时,默认为int型,当不需要返回值时,可定义为空类型,即void。
函数值的类型可以是整型、实型、字符型、指针型、结构体型等。
函数也可以无形参,形参及函数体中定义的变量只有在函数被调用时才临时开辟存储单元,当退出函数时,将全部被释放,它们都属于局部变量。
学习任务5 模块化程序设计——建立自己的函数库
‹#›
函数值通过return语句返回。
例如:return 表达式;或return (表达式);或return;
表达式的类型必须与函数首部所说明的类型一致,若不一致,则由系统自行转换为函数定义时的类型。
如遇到return语句,程序流程则返回调用该函数处,并带回函数值。在同一函数体内,可有多处return语句,当执行到某条return语句时即返回调用处。
函数也可无return语句,当无return语句时,函数执行到结束时,再返回到调用处。
3.函数值
学习任务5 模块化程序设计——建立自己的函数库
‹#›
4.函数的调用
函数调用的一般形式如下:
函数名(实参表)
各实参之间用逗号隔开,必须有确定的实参值,此调用可作为独立的语句出现,也可以出现在各种表达式中。
函数调用时应注意函数名应一致,实参与形参的个数和类型要匹配,函数应先定义后调用,否则应在调用前有相应的说明。
学习任务5 模块化程序设计——建立自己的函数库
‹#›
微课
函数调用
学习任务5 模块化程序设计——建立自己的函数库
5.函数的说明
函数说明的一般形式如下。
类型名 函数名(形参1的类型,形参2的类型,形参3的类型,……);
函数说明只说明形参的类型即可,不必写出表示形参的变量。函数说明的位置一般出现在所有函数的前面,文件包含之后,这样在后面的所有函数中都可以调用它,函数说明是一条语句,要有分号结尾。
学习任务5 模块化程序设计——建立自己的函数库
‹#›
应用举例5-1:求两数和的函数解法。
输入:3.5-2.1
输出:sum=1.400000
学习任务5 模块化程序设计——建立自己的函数库
‹#›
课堂思考问题5-1
输入正方形的边长,求面积的函数解法。
学习任务5 模块化程序设计——建立自己的函数库
1.实参传给形参
实参传给形参的数据传递方式是单向的,按值传递。
应用举例5-1中出现在主函数中的调用语句“sum=add(a,b);”中的a和b就是实参,a、b必有确定的值,调用时将a、b的值各复制一份,分别赋给函数定义中的形参x和y,这就是实参向形参的传递。
调用函数和被调函数间的数据传递
02
学习任务5 模块化程序设计——建立自己的函数库
‹#›
微课
实参传给形参
学习任务5 模块化程序设计——建立自己的函数库
2.通过函数的返回值传递
主函数中的语句“sum=add(a,b)”是将获得的函数值赋给sum,函数通过return语句将函数值返回调用处,即“add(a,b)”带回一个值,将这个值赋给了sum,这是函数向主函数的数据传递。
此外,还可以通过全局变量在函数和主函数之间传递信