C語言程序設(shè)計(jì)第11講函數(shù)課件_第1頁
C語言程序設(shè)計(jì)第11講函數(shù)課件_第2頁
C語言程序設(shè)計(jì)第11講函數(shù)課件_第3頁
C語言程序設(shè)計(jì)第11講函數(shù)課件_第4頁
C語言程序設(shè)計(jì)第11講函數(shù)課件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第十講Begin:第七章函數(shù)函數(shù)概述函數(shù)的分類與定義函數(shù)調(diào)用的一般形式函數(shù)的參數(shù)函數(shù)的返回值數(shù)組作為函數(shù)參數(shù)第十講Begin:第七章函數(shù)函數(shù)概述7.1函數(shù)概述function函數(shù)也可以說是:功能就是具有一定功能的代碼段到現(xiàn)在為止,我們都是用主函數(shù)中的代碼完成一定的功能函數(shù)7.1函數(shù)概述function函數(shù)到現(xiàn)在為止,我們都7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同的函數(shù)即:C語言程序可以由不同功能的函數(shù)組成函數(shù)7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同7.1函數(shù)概述函數(shù)組成程序的例子}intmain(){printstar();

print_message();printstar();return0;}#include“stdio.h”voidprintstar(){printf(“**********\n”);}voidprint_message(){printf(“Howdoyoudo?\n”);7.1函數(shù)概述函數(shù)組成程序的例子}#include“stprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述print_message函數(shù)的功能輸出一行信息

Howdoyoudo?\printstar的功能是輸出一排”*”main是主函數(shù),首先執(zhí)行mainprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述

一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但至少有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。C語言語法規(guī)范:7.1函數(shù)概述一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被調(diào)函數(shù)

從函數(shù)間數(shù)據(jù)傳送的關(guān)系分為:有參函數(shù)、無參函數(shù)、有返回值函數(shù)、無返回值函數(shù);(接下來詳細(xì)講)從用戶的觀點(diǎn)分為:C編譯系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù);函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被

[類型符]函數(shù)名稱()

{

數(shù)據(jù)說明語句可執(zhí)行語句

}7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式

printstar()和print_message()都是無參函數(shù)7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2

[類型符]函數(shù)名稱(類型形參1[,···])

{

數(shù)據(jù)說明語句可執(zhí)行語句

}7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式舉例:floatsum(floatx,floaty){floatz;

z=x+y;

returnz;

}7.2函數(shù)定義的一般形式函數(shù)定義的一般形式舉例:7.2函數(shù)定義的一般形式函數(shù)定義的一般形式說明:(1)float

sum(float

x,float

y){floatz;

z=x+y;

returnz;

}類型說明符:

指明函數(shù)的類型,函數(shù)的類型是指函數(shù)的返回值的類型,函數(shù)返回值所具有的數(shù)據(jù)類型的種類與變量相同。7.2函數(shù)定義的一般形式省略時(shí)則默認(rèn)為int型。若明確表示函數(shù)"不帶回值",可以用"void"作類型符,稱"無類型"或稱"空類型"。

函數(shù)定義的一般形式說明:(1)類型說明符:7.2函數(shù)定義float

sum(float

x,float

y

{floatz;

z=x+y;

returnz;

}函數(shù)名:

通常是一個(gè)標(biāo)識(shí)符,在一個(gè)程序中除了主函數(shù)外其余函數(shù)的名字可以任意取,但應(yīng)有意義。

"()"函數(shù)標(biāo)志。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(float

x,floaty){floatz;

z=x+y;returnz;

}參數(shù)表(形參表):

函數(shù)定義時(shí)的參數(shù)稱為形式參數(shù),形式參數(shù)彼此間用逗號(hào)分隔。形式參數(shù)省略時(shí)稱無參函數(shù),但此時(shí)函數(shù)名后的圓括號(hào)不能省。形參說明是用來指明各個(gè)形式參數(shù)的類型,它隨形參的存在而存在。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(floatx,floaty)

{floatz;

z=x+y;

returnz;

}函數(shù)體:

函數(shù)中最外層一對(duì)花括弧"{·······}"括起來的內(nèi)容,它由若干個(gè)數(shù)據(jù)說明語句和可執(zhí)行語句組成,決定函數(shù)要實(shí)現(xiàn)的功能、完成的任務(wù)。函數(shù)體內(nèi)若無任何語句時(shí),為空函數(shù)。7.2函數(shù)定義的一般形式floatsum(floatx,floaty)格式二:

[類型符]函數(shù)名稱()

{}7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式voiddummy(){}格式二:7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)際值。實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。例如:fabs(-2);putchar(c);sqrt((x*x+2)*(y+z));7.3.1形式參數(shù)與實(shí)際參數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值

實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是變量,數(shù)組等。在函數(shù)定義時(shí),參數(shù)表中的形參并沒有具體的值,系統(tǒng)也不為其分配存儲(chǔ)單元。7.3函數(shù)的參數(shù)和函數(shù)的值

例如:intmax(intx,inty){intz;z=x>y?x:y;returnz;}形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值

intmax(intx,inty){intz;z=x>y?x:y;returnz;}voidmain(){inta,b,c;scanf(“%d%d”,&a,&b);c=max(a,b);printf(“maxis%d\n”,c);}例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值:當(dāng)被調(diào)用函數(shù)在完成一定的功能后,可以將處理的結(jié)果返回到調(diào)用函數(shù)。7.3函數(shù)的參數(shù)和函數(shù)的值

7.3.2函數(shù)的返回值:7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值方式:return語句作用:將表達(dá)式的值傳給調(diào)用函數(shù),并把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回。格式:

return[[(]表達(dá)式[)]];7.3函數(shù)的參數(shù)和函數(shù)的值

7.3.2函數(shù)的返回值7.3函數(shù)的參數(shù)和函數(shù)的值

對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型定義,以表明此函數(shù)返回值為”無類型”或”空類型”。voidprintchar()

{printf("WuhanUniversity\n");}main(){printchar();}void函數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值

對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型例編寫自定義函數(shù)計(jì)算:分析:確定形參:求c必須知道f的大小,設(shè)形參為temp。確定函數(shù):函數(shù)的返回值即為c的值,設(shè)為實(shí)型。程序:floatftoc(floattemp){floatc;

c=(5./9.)*(temp–32);

returnc;

}7.3函數(shù)的參數(shù)和函數(shù)的值

例編寫自定義函數(shù)計(jì)算:分析:程序:floatftoc(例編寫一個(gè)自定義函數(shù)求n!分析:確定形參:求n!必須知道n的大小,設(shè)形參為n。確定函數(shù):函數(shù)的返回值即為n!的值,設(shè)為實(shí)型。程序:floatfactorial(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}7.3函數(shù)的參數(shù)和函數(shù)的值

例編寫一個(gè)自定義函數(shù)求n!分析:程序:floatfa7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:函數(shù)名(實(shí)參表列)說明:實(shí)參與形參的個(gè)數(shù)相等、類型相同、順序一致,呈一一對(duì)應(yīng)的關(guān)系。實(shí)參的求值順序不確定,與所用系統(tǒng)有關(guān)。實(shí)參應(yīng)有確定的值。7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:說明:函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):C語言參數(shù)傳遞時(shí),一般采用傳值方式,把各個(gè)實(shí)參值分別順序?qū)?yīng)傳給形參。被調(diào)函數(shù)執(zhí)行中形參值的變化不會(huì)影響主調(diào)函數(shù)中實(shí)參變量的值。函數(shù)調(diào)用也是一種表達(dá)式,其值就是函數(shù)的返回值。7.4函數(shù)的調(diào)用函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):7.4函數(shù)的調(diào)用自定義函數(shù):

floatfactorial(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}例調(diào)用自定義函數(shù)求n!調(diào)用:

voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial(n);printf(“n!=%f”,f);}7.4函數(shù)的調(diào)用自定義函數(shù):例調(diào)用自定義函數(shù)求n!調(diào)用:7.4函數(shù)調(diào)用方式

1)函數(shù)語句:

printf(”·····”);2)函數(shù)表達(dá)式:

c=2*pow(3.5,6);3)函數(shù)參數(shù):

c=2*pow(pow(3.5,6),6);

printf(”%f\n”,pow(3.5,6));7.4函數(shù)的調(diào)用調(diào)用方式7.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,intb){intc;c=a*b%3;returnc;}fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;}main(){intx=11,y=19;printf("%d\n",fun1(x,y));}程序運(yùn)行結(jié)果:47.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,int#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(“r=%d\n”,r);}程序運(yùn)行結(jié)果:r=21例:說出下列程序的運(yùn)行結(jié)果7.4函數(shù)的調(diào)用#include<stdio.h>程序運(yùn)行結(jié)果:例:說出下函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。作用:將函數(shù)名、函數(shù)類型及形參個(gè)數(shù)、類型、順序等通知編譯系統(tǒng),當(dāng)函數(shù)被調(diào)用時(shí),可對(duì)實(shí)參、形參的類型、個(gè)數(shù)匹配情況進(jìn)行檢查。格式:類型符函數(shù)名(參數(shù)類型1,···);或:

類型符函數(shù)名(類型符形參1,···);7.4.3對(duì)被調(diào)用函數(shù)的說明

函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。7.4.37.4.3對(duì)被調(diào)用函數(shù)的說明

自定義函數(shù):

floatfactorial

(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}例調(diào)用自定義函數(shù)求n!floatfactorial

(intn);/*函數(shù)原型聲明*/

voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial

(n);printf(“n!=%f”,f);}7.4.3對(duì)被調(diào)用函數(shù)的說明自定義函數(shù):例調(diào)用自定例判定素?cái)?shù)。#include"math.h"intisprime(int);

/*函數(shù)原型聲明*/main(){intx=35;if(isprime(x))printf("%d是素?cái)?shù)。\n",x);elseprintf("%d不是素?cái)?shù)。\n",x);}isprime(inta){inti;for(i=2;i<=sqrt((double)a);i++)if(a%i==0)return0;return1;}7.4.3對(duì)被調(diào)用函數(shù)的說明

例判定素?cái)?shù)。#include"math.h"7.4.數(shù)組名可做實(shí)參和形參,傳送的是整個(gè)數(shù)組數(shù)組作為函數(shù)的參數(shù)7.7數(shù)組作為函數(shù)的參數(shù)

在用數(shù)組名做函數(shù)參數(shù)時(shí),實(shí)參和形參都應(yīng)該用數(shù)組。數(shù)組名可做實(shí)參和形參,傳送的是整個(gè)數(shù)組數(shù)組作為函數(shù)的參數(shù)7.7.7數(shù)組作為函數(shù)的參數(shù)

例起泡法排序voidsort(intarray[10],intn)

{inti,j,t;

for(i=0;i<n-1;i++)

for(j=0;j<n-i-1;j++)

if(array[j]>array[j+1])

{

t=array[j];

array[j]=array[j+1];

array[j+1]=t;

}}數(shù)組作函數(shù)的參數(shù)舉例7.7數(shù)組作為函數(shù)的參數(shù)例起泡法排序數(shù)組作函數(shù)的7.7數(shù)組作為函數(shù)的參數(shù)

例起泡法排序intmain()

{

inti,a[10]={3,1,5,7,26,4,6,8,12,2};

sort(a,10);

for(i=0;i<10;i++)

printf("%d",a[i]);

return1;

}數(shù)組作函數(shù)的參數(shù)舉例7.7數(shù)組作為函數(shù)的參數(shù)例起泡法排序數(shù)組作函數(shù)的數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:1)數(shù)組名作函數(shù)參數(shù)時(shí),應(yīng)在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組。7.7數(shù)組作為函數(shù)的參數(shù)

數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:1)數(shù)組名作函數(shù)參數(shù)時(shí),應(yīng)在主調(diào)函數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:2)實(shí)參數(shù)組與形參數(shù)組的類型必須相同,但大小可以不同。7.7數(shù)組作為函數(shù)的參數(shù)

數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:2)實(shí)參數(shù)組與形參數(shù)組的類型必須相數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:3)形參數(shù)組的一維下標(biāo)可以省略。4)數(shù)組名表示的是數(shù)組元素的首地址,數(shù)組名作函數(shù)參數(shù)時(shí),傳遞的是整個(gè)數(shù)組。實(shí)參與形參之間的數(shù)據(jù)傳遞是地址傳遞。7.7數(shù)組作為函數(shù)的參數(shù)

數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:3)形參數(shù)組的一維下標(biāo)可以省略。7參數(shù)傳遞小結(jié):實(shí)參形參傳遞數(shù)據(jù)基本變量表達(dá)式數(shù)組元素基本變量傳值數(shù)組名數(shù)組名傳址7.1.7數(shù)組作為函數(shù)的參數(shù)

參數(shù)傳遞小結(jié):實(shí)參形參傳遞數(shù)據(jù)基本上機(jī)實(shí)驗(yàn)內(nèi)容:1、編寫函數(shù)isprime()判斷一個(gè)數(shù)是否素?cái)?shù)。2、給出年、月、日,請(qǐng)編寫函數(shù)sum_day()計(jì)算該日是該年的第幾天?上機(jī)實(shí)驗(yàn)內(nèi)容:#include<stdio.h>sum_day(intyear,intmonth,intday);voidmain(){intyear,month,day;intdays;scanf("%d,%d,%d",&year,&month,&day);days=sum_day(year,month,day);printf("%d\n",days);}staticintday_tab[13]={0,31,28,31,30,31,31,30,31,30,31};sum_day(intyear,intmonth,intday){……}#include<stdio.h>TheEndTheEnd第十講Begin:第七章函數(shù)函數(shù)概述函數(shù)的分類與定義函數(shù)調(diào)用的一般形式函數(shù)的參數(shù)函數(shù)的返回值數(shù)組作為函數(shù)參數(shù)第十講Begin:第七章函數(shù)函數(shù)概述7.1函數(shù)概述function函數(shù)也可以說是:功能就是具有一定功能的代碼段到現(xiàn)在為止,我們都是用主函數(shù)中的代碼完成一定的功能函數(shù)7.1函數(shù)概述function函數(shù)到現(xiàn)在為止,我們都7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同的函數(shù)即:C語言程序可以由不同功能的函數(shù)組成函數(shù)7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同7.1函數(shù)概述函數(shù)組成程序的例子}intmain(){printstar();

print_message();printstar();return0;}#include“stdio.h”voidprintstar(){printf(“**********\n”);}voidprint_message(){printf(“Howdoyoudo?\n”);7.1函數(shù)概述函數(shù)組成程序的例子}#include“stprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述print_message函數(shù)的功能輸出一行信息

Howdoyoudo?\printstar的功能是輸出一排”*”main是主函數(shù),首先執(zhí)行mainprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述

一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但至少有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。C語言語法規(guī)范:7.1函數(shù)概述一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被調(diào)函數(shù)

從函數(shù)間數(shù)據(jù)傳送的關(guān)系分為:有參函數(shù)、無參函數(shù)、有返回值函數(shù)、無返回值函數(shù);(接下來詳細(xì)講)從用戶的觀點(diǎn)分為:C編譯系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù);函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被

[類型符]函數(shù)名稱()

{

數(shù)據(jù)說明語句可執(zhí)行語句

}7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式

printstar()和print_message()都是無參函數(shù)7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2

[類型符]函數(shù)名稱(類型形參1[,···])

{

數(shù)據(jù)說明語句可執(zhí)行語句

}7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式舉例:floatsum(floatx,floaty){floatz;

z=x+y;

returnz;

}7.2函數(shù)定義的一般形式函數(shù)定義的一般形式舉例:7.2函數(shù)定義的一般形式函數(shù)定義的一般形式說明:(1)float

sum(float

x,float

y){floatz;

z=x+y;

returnz;

}類型說明符:

指明函數(shù)的類型,函數(shù)的類型是指函數(shù)的返回值的類型,函數(shù)返回值所具有的數(shù)據(jù)類型的種類與變量相同。7.2函數(shù)定義的一般形式省略時(shí)則默認(rèn)為int型。若明確表示函數(shù)"不帶回值",可以用"void"作類型符,稱"無類型"或稱"空類型"。

函數(shù)定義的一般形式說明:(1)類型說明符:7.2函數(shù)定義float

sum(float

x,float

y

{floatz;

z=x+y;

returnz;

}函數(shù)名:

通常是一個(gè)標(biāo)識(shí)符,在一個(gè)程序中除了主函數(shù)外其余函數(shù)的名字可以任意取,但應(yīng)有意義。

"()"函數(shù)標(biāo)志。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(float

x,floaty){floatz;

z=x+y;returnz;

}參數(shù)表(形參表):

函數(shù)定義時(shí)的參數(shù)稱為形式參數(shù),形式參數(shù)彼此間用逗號(hào)分隔。形式參數(shù)省略時(shí)稱無參函數(shù),但此時(shí)函數(shù)名后的圓括號(hào)不能省。形參說明是用來指明各個(gè)形式參數(shù)的類型,它隨形參的存在而存在。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(floatx,floaty)

{floatz;

z=x+y;

returnz;

}函數(shù)體:

函數(shù)中最外層一對(duì)花括弧"{·······}"括起來的內(nèi)容,它由若干個(gè)數(shù)據(jù)說明語句和可執(zhí)行語句組成,決定函數(shù)要實(shí)現(xiàn)的功能、完成的任務(wù)。函數(shù)體內(nèi)若無任何語句時(shí),為空函數(shù)。7.2函數(shù)定義的一般形式floatsum(floatx,floaty)格式二:

[類型符]函數(shù)名稱()

{}7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式voiddummy(){}格式二:7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)際值。實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。例如:fabs(-2);putchar(c);sqrt((x*x+2)*(y+z));7.3.1形式參數(shù)與實(shí)際參數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值

實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是變量,數(shù)組等。在函數(shù)定義時(shí),參數(shù)表中的形參并沒有具體的值,系統(tǒng)也不為其分配存儲(chǔ)單元。7.3函數(shù)的參數(shù)和函數(shù)的值

例如:intmax(intx,inty){intz;z=x>y?x:y;returnz;}形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值

intmax(intx,inty){intz;z=x>y?x:y;returnz;}voidmain(){inta,b,c;scanf(“%d%d”,&a,&b);c=max(a,b);printf(“maxis%d\n”,c);}例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值:當(dāng)被調(diào)用函數(shù)在完成一定的功能后,可以將處理的結(jié)果返回到調(diào)用函數(shù)。7.3函數(shù)的參數(shù)和函數(shù)的值

7.3.2函數(shù)的返回值:7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值方式:return語句作用:將表達(dá)式的值傳給調(diào)用函數(shù),并把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回。格式:

return[[(]表達(dá)式[)]];7.3函數(shù)的參數(shù)和函數(shù)的值

7.3.2函數(shù)的返回值7.3函數(shù)的參數(shù)和函數(shù)的值

對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型定義,以表明此函數(shù)返回值為”無類型”或”空類型”。voidprintchar()

{printf("WuhanUniversity\n");}main(){printchar();}void函數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值

對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型例編寫自定義函數(shù)計(jì)算:分析:確定形參:求c必須知道f的大小,設(shè)形參為temp。確定函數(shù):函數(shù)的返回值即為c的值,設(shè)為實(shí)型。程序:floatftoc(floattemp){floatc;

c=(5./9.)*(temp–32);

returnc;

}7.3函數(shù)的參數(shù)和函數(shù)的值

例編寫自定義函數(shù)計(jì)算:分析:程序:floatftoc(例編寫一個(gè)自定義函數(shù)求n!分析:確定形參:求n!必須知道n的大小,設(shè)形參為n。確定函數(shù):函數(shù)的返回值即為n!的值,設(shè)為實(shí)型。程序:floatfactorial(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}7.3函數(shù)的參數(shù)和函數(shù)的值

例編寫一個(gè)自定義函數(shù)求n!分析:程序:floatfa7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:函數(shù)名(實(shí)參表列)說明:實(shí)參與形參的個(gè)數(shù)相等、類型相同、順序一致,呈一一對(duì)應(yīng)的關(guān)系。實(shí)參的求值順序不確定,與所用系統(tǒng)有關(guān)。實(shí)參應(yīng)有確定的值。7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:說明:函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):C語言參數(shù)傳遞時(shí),一般采用傳值方式,把各個(gè)實(shí)參值分別順序?qū)?yīng)傳給形參。被調(diào)函數(shù)執(zhí)行中形參值的變化不會(huì)影響主調(diào)函數(shù)中實(shí)參變量的值。函數(shù)調(diào)用也是一種表達(dá)式,其值就是函數(shù)的返回值。7.4函數(shù)的調(diào)用函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):7.4函數(shù)的調(diào)用自定義函數(shù):

floatfactorial(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}例調(diào)用自定義函數(shù)求n!調(diào)用:

voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial(n);printf(“n!=%f”,f);}7.4函數(shù)的調(diào)用自定義函數(shù):例調(diào)用自定義函數(shù)求n!調(diào)用:7.4函數(shù)調(diào)用方式

1)函數(shù)語句:

printf(”·····”);2)函數(shù)表達(dá)式:

c=2*pow(3.5,6);3)函數(shù)參數(shù):

c=2*pow(pow(3.5,6),6);

printf(”%f\n”,pow(3.5,6));7.4函數(shù)的調(diào)用調(diào)用方式7.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,intb){intc;c=a*b%3;returnc;}fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;}main(){intx=11,y=19;printf("%d\n",fun1(x,y));}程序運(yùn)行結(jié)果:47.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,int#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(“r=%d\n”,r);}程序運(yùn)行結(jié)果:r=21例:說出下列程序的運(yùn)行結(jié)果7.4函數(shù)的調(diào)用#include<stdio.h>程序運(yùn)行結(jié)果:例:說出下函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。作用:將函數(shù)名、函數(shù)類型及形參個(gè)數(shù)、類型、順序等通知編譯系統(tǒng),當(dāng)函數(shù)被調(diào)用時(shí),可對(duì)實(shí)參、形參的類型、個(gè)數(shù)匹配情況進(jìn)行檢查。格式:類型符函數(shù)名(參數(shù)類型1,···);或:

類型符函數(shù)名(類型符形參1,···);7.4.3對(duì)被調(diào)用函數(shù)的說明

函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。7.4.37.4.3對(duì)被調(diào)用函數(shù)的說明

自定義函數(shù):

floatfactorial

(intn)

{floatx,y;for(x=y=1.0;x<=n;x++)

y*=x;returny;}例調(diào)用自定義函數(shù)求n!floatfactorial

(intn);/*函數(shù)原型聲明*/

voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial

(n);printf(“n!=%f”,f);}7.4.3對(duì)被調(diào)用函數(shù)的說明自定義函數(shù):例調(diào)用自定例判定素?cái)?shù)。#include"math.h"intisprime(int);

/*函數(shù)原型聲明*/main(){intx=35;if(isprime(x))printf("%d是素?cái)?shù)。\n",x);elseprintf("%d不是素?cái)?shù)。\n",x);}isprime(inta){inti;for(i=2;i<=sqrt((doub

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論