(中职)c语言技能教程第7章课件.ppt
《(中职)c语言技能教程第7章课件.ppt》由会员分享,可在线阅读,更多相关《(中职)c语言技能教程第7章课件.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(中职)c语言技能教程第7章ppt课件第第7 7章章 一劳永逸的函数一劳永逸的函数语言技能教程语言技能教程第第 七七 章章 7.1 技能技能1:认识函数认识函数7.2 技能技能2:定义函数定义函数7.3 技能技能3:了解函数的返回值了解函数的返回值7.4 技能技能4:调用函数调用函数7.5 技能技能5:认识变量的作用范围认识变量的作用范围7.1 技能技能1 【知识点】【知识点】1.主调函数与被调函数。习惯上把调用者称为主调主调函数与被调函数。习惯上把调用者称为主调函数,被调用者称为被调函数。函数,被调用者称为被调函数。2各函数在程序中的位置是任意的。各函数在程序中的位置是任意的。C程序的执程序
2、的执行总是从行总是从main()函数开始,完成对其它函数的调用函数开始,完成对其它函数的调用后,再返回到后,再返回到main()函数,在函数,在main()函数中结束整函数中结束整个程序的运行。主可以调用其它函数,而不允许被个程序的运行。主可以调用其它函数,而不允许被其它函数调用,其它函数之间可以相互调用。其它函数调用,其它函数之间可以相互调用。3.同一个函数可以被一个或多个函数调用任意次。同一个函数可以被一个或多个函数调用任意次。7.1 技能技能1 【知识点】【知识点】4.从用户使用的角度看,函数分为两种:从用户使用的角度看,函数分为两种:(1)标准函数,即库函数。这类函数由系统提供,)标准
3、函数,即库函数。这类函数由系统提供,用户可以直接使用;用户可以直接使用;(2)用户自定义函数。由用户按需要编写的函数;)用户自定义函数。由用户按需要编写的函数;5从是否有返回值上看,分为返回值函数和无返回从是否有返回值上看,分为返回值函数和无返回值函数。值函数。(1)有返回值函数。这类函数被调用执行完后向调有返回值函数。这类函数被调用执行完后向调用者返回一个执行结果,称为函数的返回值。如数学函用者返回一个执行结果,称为函数的返回值。如数学函数即属于此类函数。数即属于此类函数。(2)无返回值函数。此类函数用来完成某项特定)无返回值函数。此类函数用来完成某项特定的处理任务,执行完后不向调用者返回函
4、数值。的处理任务,执行完后不向调用者返回函数值。例例例例7.1 7.1 分析自定义函数程序的执行过程。分析自定义函数程序的执行过程。分析自定义函数程序的执行过程。分析自定义函数程序的执行过程。main()main()int a,b,c;int a,b,c;scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);c=max(a,b);c=max(a,b);printf(max=%d,c);printf(max=%d,c);int max(int x,int y)int max(int x,int y)int z;int z;if(xy)z=x;if(xy)z=x;else z
5、=y;else z=y;return(z);return(z);7.1 7.1 技能技能1 1【典型例题】【典型例题】7.2 技能技能21 1.函数的定义一般形式如下:函数的定义一般形式如下:函数的定义一般形式如下:函数的定义一般形式如下:类型标识符类型标识符类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表)函数名(形式参数表)函数名(形式参数表)函数体函数体函数体函数体 【知识点】【知识点】7.2 技能技能22 2、对函数定义形式的说明:、对函数定义形式的说明:、对函数定义形式的说明:、对函数定义形式的说明:(1 1)类型标识符)类型标识符)类型标识符)类型标识符 类型标识符说明
6、的是函数的类型,即决定了函数返回值的类型标识符说明的是函数的类型,即决定了函数返回值的类型标识符说明的是函数的类型,即决定了函数返回值的类型标识符说明的是函数的类型,即决定了函数返回值的类型。返回值可以是任何类型。返回值可以是任何类型。返回值可以是任何类型。返回值可以是任何C C的数据类型,如的数据类型,如的数据类型,如的数据类型,如charchar、intint、floatfloat、double double 等。当是等。当是等。当是等。当是intint类型时,类型标识符类型时,类型标识符类型时,类型标识符类型时,类型标识符int int 可以省可以省可以省可以省略。不需要有返回值的函数,
7、类型标识符可以明确为略。不需要有返回值的函数,类型标识符可以明确为略。不需要有返回值的函数,类型标识符可以明确为略。不需要有返回值的函数,类型标识符可以明确为“空空空空类型类型类型类型”,用关键字,用关键字,用关键字,用关键字voidvoid说明。说明。说明。说明。【知识点】【知识点】7.2 技能技能22 2、对函数定义形式的说明:、对函数定义形式的说明:、对函数定义形式的说明:、对函数定义形式的说明:(2 2)函数名)函数名)函数名)函数名 函数名取名要符合标识符的规则,函数名必须是唯一的,函数名取名要符合标识符的规则,函数名必须是唯一的,函数名取名要符合标识符的规则,函数名必须是唯一的,函
8、数名取名要符合标识符的规则,函数名必须是唯一的,不能与其它函数或变量重名。函数名最好是见名知意。不能与其它函数或变量重名。函数名最好是见名知意。不能与其它函数或变量重名。函数名最好是见名知意。不能与其它函数或变量重名。函数名最好是见名知意。.函数的定义一般形式如下:函数的定义一般形式如下:函数的定义一般形式如下:函数的定义一般形式如下:类型标识符类型标识符类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表)函数名(形式参数表)函数名(形式参数表)函数体函数体函数体函数体 【知识点】【知识点】7.2 技能技能2对形参的说明方法有两种:对形参的说明方法有两种:对形参的说明方法有两种:对形
9、参的说明方法有两种:方法一:方法一:方法一:方法一:int max(int x,int y)/*int max(int x,int y)/*类型相同的形参也要分别定义其类型和名称类型相同的形参也要分别定义其类型和名称类型相同的形参也要分别定义其类型和名称类型相同的形参也要分别定义其类型和名称*/*/方法二:方法二:方法二:方法二:int max(x,y)int max(x,y)int x,y;int x,y;【知识点】【知识点】7.2 技能技能2而下面函数定义中,对形参的说明是错误的:而下面函数定义中,对形参的说明是错误的:而下面函数定义中,对形参的说明是错误的:而下面函数定义中,对形参的说明
10、是错误的:int max(int x,y)/*int max(int x,y)/*形参形参形参形参y y没有定义类型没有定义类型没有定义类型没有定义类型*/*/【知识点】【知识点】7.2 技能技能2(4 4)函数体函数体函数体函数体 函数体是用一对花括号括起来的语句序列。函数体分为声明部分函数体是用一对花括号括起来的语句序列。函数体分为声明部分函数体是用一对花括号括起来的语句序列。函数体分为声明部分函数体是用一对花括号括起来的语句序列。函数体分为声明部分和语句部分。函数的任务就是由这些语句共同完成。在函数体中使和语句部分。函数的任务就是由这些语句共同完成。在函数体中使和语句部分。函数的任务就是
11、由这些语句共同完成。在函数体中使和语句部分。函数的任务就是由这些语句共同完成。在函数体中使用到的形参之外的变量,都必须在函数体的声明部分进行类型说明。用到的形参之外的变量,都必须在函数体的声明部分进行类型说明。用到的形参之外的变量,都必须在函数体的声明部分进行类型说明。用到的形参之外的变量,都必须在函数体的声明部分进行类型说明。函数体中可以没有任何内容,这种函数称为空函数。这样的函数函数体中可以没有任何内容,这种函数称为空函数。这样的函数函数体中可以没有任何内容,这种函数称为空函数。这样的函数函数体中可以没有任何内容,这种函数称为空函数。这样的函数通常表示没有编写好的模块通常表示没有编写好的模
12、块通常表示没有编写好的模块通常表示没有编写好的模块 ,以确保程序的完整,为了在最初的,以确保程序的完整,为了在最初的,以确保程序的完整,为了在最初的,以确保程序的完整,为了在最初的调试之中顺利通过语法检查。调试之中顺利通过语法检查。调试之中顺利通过语法检查。调试之中顺利通过语法检查。例如:例如:例如:例如:dummy()dummy()【知识点】【知识点】7.2 技能技能23 3函数的定义不能嵌套函数的定义不能嵌套函数的定义不能嵌套函数的定义不能嵌套 即不能在一个函数体中,定义另外一个函数。即不能在一个函数体中,定义另外一个函数。即不能在一个函数体中,定义另外一个函数。即不能在一个函数体中,定义
13、另外一个函数。如:下面的函数定义是错误的。如:下面的函数定义是错误的。如:下面的函数定义是错误的。如:下面的函数定义是错误的。void a()void a()void b()void b()【知识点】【知识点】7.2 技能技能24 4自定义函数在程序中的位置自定义函数在程序中的位置自定义函数在程序中的位置自定义函数在程序中的位置 自定义函数可以放在自定义函数可以放在自定义函数可以放在自定义函数可以放在main()main()之前,也可放之前,也可放之前,也可放之前,也可放在在在在main()main()之后,每一个自定义函数在程序之后,每一个自定义函数在程序之后,每一个自定义函数在程序之后,每
14、一个自定义函数在程序中的位置都是任意的。为了提高程序的可中的位置都是任意的。为了提高程序的可中的位置都是任意的。为了提高程序的可中的位置都是任意的。为了提高程序的可读性,习惯上常把自定义函数放在读性,习惯上常把自定义函数放在读性,习惯上常把自定义函数放在读性,习惯上常把自定义函数放在main()main()之后。之后。之后。之后。【知识点】【知识点】7.2 技能技能2例例例例7.2 7.2 以下正确的函数定义是以下正确的函数定义是以下正确的函数定义是以下正确的函数定义是()()A Adouble fun(int x,int y)Bdouble fun(int x,int y)Bdouble f
15、un(int x;int y)double fun(int x;int y)C Cdouble fun(int x,int y);Ddouble fun(int x,int y);Ddouble fun(int x,y);double fun(int x,y);【典型例题】【典型例题】分析:分析:C语言要求函数的形式参数表中的形参必须逐个进行类语言要求函数的形式参数表中的形参必须逐个进行类型说明,且各参数间用逗号隔开,所以选项型说明,且各参数间用逗号隔开,所以选项B的参数分隔符不的参数分隔符不应是分号,应将分号改为逗号;函数定义时,函数名后不应加应是分号,应将分号改为逗号;函数定义时,函数名后
16、不应加分号,所以分号,所以C和和D都错,应去掉分号;且选项都错,应去掉分号;且选项D还错在没有对还错在没有对y进行单独的类型定义。因此,答案:进行单独的类型定义。因此,答案:A正确。正确。7.2 技能技能2例例例例7.3 7.3 以下正确的函数形式是以下正确的函数形式是以下正确的函数形式是以下正确的函数形式是()()A Adouble fun(int x,int y)B.fun(int x,y)double fun(int x,int y)B.fun(int x,y)z=x+y;return z z=x+y;return z;int z;return z;int z;return z;C C
17、fun(x,y)D.double fun(int x,int y)fun(x,y)D.double fun(int x,int y)int x,y;double z;double z;int x,y;double z;double z;z=x+y;return z;z=x+y;return z;z=x+y;return z;z=x+y;return z;【典型例题】【典型例题】分析:分析:C语言规定,语言规定,所有在函数体中使用到的形参之外的变量,都可以在函数体的开始部分进行变量的类型说明。选项选项A中在给中在给z赋值前没有定义赋值前没有定义z的类型,的类型,所以不对;选项所以不对;选项B虽对
18、虽对z进行了定义,但进行了定义,但z没有得到具体值。同时没有得到具体值。同时B在给形参定在给形参定义时应单独对义时应单独对y进行定义;选项进行定义;选项C中对形参的说明不应放在函数体内。中对形参的说明不应放在函数体内。答案:答案:D正确。正确。7.2 技能技能2例例例例7.4 7.4 不带参数的函数定义,且无返回值。不带参数的函数定义,且无返回值。不带参数的函数定义,且无返回值。不带参数的函数定义,且无返回值。void hello()void hello()printf(hello);printf(hello);【典型例题】【典型例题】程序说明:该函数的作用是输出程序说明:该函数的作用是输出“
19、hello”。因为不需要。因为不需要函数提供什么数据,所以定义为无参函数。同时,也没有函数提供什么数据,所以定义为无参函数。同时,也没有任何数据需要带回主调函数,即无返回值,所以函数的类任何数据需要带回主调函数,即无返回值,所以函数的类型定义为型定义为void。7.2 技能技能2例例例例7.5 7.5 编写一函数,计算两个整型数之和。编写一函数,计算两个整型数之和。编写一函数,计算两个整型数之和。编写一函数,计算两个整型数之和。【典型例题】【典型例题】函数定义如下:函数定义如下:int sum(int x,int y)int s;s=n1+n2;printf(%d,s);程序分析:程序分析:(
20、1)定义函数从方法上和编写程序的方法类似)定义函数从方法上和编写程序的方法类似,其中不同一点就是将其中不同一点就是将解决问题所提供的必须数据(这里是两个整型数)在编写程序时作为解决问题所提供的必须数据(这里是两个整型数)在编写程序时作为变量处理的,在此作为形参。除此之外需要定义的变量,则在函数体变量处理的,在此作为形参。除此之外需要定义的变量,则在函数体的声明部分定义。的声明部分定义。(2)根据题意,函数的类型和形参的类型应为)根据题意,函数的类型和形参的类型应为int类型。在函数体的声类型。在函数体的声明部分还应定义一个整型变量,用于存储求得的两数之和。明部分还应定义一个整型变量,用于存储求
21、得的两数之和。7.3 技能技能31.1.函数的值只能通过函数的值只能通过函数的值只能通过函数的值只能通过returnreturn语句返回主调函数。语句返回主调函数。语句返回主调函数。语句返回主调函数。returnreturn语句的一般形式为:语句的一般形式为:语句的一般形式为:语句的一般形式为:return r;return r;或或或或 return(r)return(r);其中其中其中其中r r可以是常量、变量、表达式,也可可以是常量、变量、表达式,也可可以是常量、变量、表达式,也可可以是常量、变量、表达式,也可以是函数调用。以是函数调用。以是函数调用。以是函数调用。【知识点】【知识点】7
22、.3 技能技能32.return2.return语句的作用是计算表达式的值,返回给语句的作用是计算表达式的值,返回给语句的作用是计算表达式的值,返回给语句的作用是计算表达式的值,返回给主调函数,同时中止它所在函数的执行,使主调函数,同时中止它所在函数的执行,使主调函数,同时中止它所在函数的执行,使主调函数,同时中止它所在函数的执行,使程序返回到调用该函数的语句处继续执行。程序返回到调用该函数的语句处继续执行。程序返回到调用该函数的语句处继续执行。程序返回到调用该函数的语句处继续执行。在函数体中,如果没有返回语句,则该函数在函数体中,如果没有返回语句,则该函数在函数体中,如果没有返回语句,则该函
23、数在函数体中,如果没有返回语句,则该函数执行到最后一个花括号时,自动返回。执行到最后一个花括号时,自动返回。执行到最后一个花括号时,自动返回。执行到最后一个花括号时,自动返回。3.3.如下的如下的如下的如下的returnreturn语句形式,表示没有返回值被返语句形式,表示没有返回值被返语句形式,表示没有返回值被返语句形式,表示没有返回值被返回到调用者。回到调用者。回到调用者。回到调用者。return;return;【知识点】【知识点】7.3 技能技能34 4如果函数的类型为如果函数的类型为如果函数的类型为如果函数的类型为voidvoid,此函数被调用时将不再有返,此函数被调用时将不再有返,此
24、函数被调用时将不再有返,此函数被调用时将不再有返回值。通常,为了减少出错,对不要求返回值的函数回值。通常,为了减少出错,对不要求返回值的函数回值。通常,为了减少出错,对不要求返回值的函数回值。通常,为了减少出错,对不要求返回值的函数都应定义为空类型都应定义为空类型都应定义为空类型都应定义为空类型voidvoid。5 5一个没有一个没有一个没有一个没有return return 语句的函数,并不意味着没有返回值。语句的函数,并不意味着没有返回值。语句的函数,并不意味着没有返回值。语句的函数,并不意味着没有返回值。实际上任何一个类型不是实际上任何一个类型不是实际上任何一个类型不是实际上任何一个类型
25、不是voidvoid的函数都有一个返回值,的函数都有一个返回值,的函数都有一个返回值,的函数都有一个返回值,包含包含包含包含return return 语句的函数带回一个确定的值,而没有语句的函数带回一个确定的值,而没有语句的函数带回一个确定的值,而没有语句的函数带回一个确定的值,而没有return return 语句的函数则返回一个不确定的值。这可能使语句的函数则返回一个不确定的值。这可能使语句的函数则返回一个不确定的值。这可能使语句的函数则返回一个不确定的值。这可能使程序的执行产生难以预料的后果。通常,为了减少出程序的执行产生难以预料的后果。通常,为了减少出程序的执行产生难以预料的后果。通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 技能 教程 课件
限制150内