C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt

C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt

ID:50083419

大?。?94.50 KB

頁數(shù):62頁

時(shí)間:2020-03-08

C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt_第1頁
C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt_第2頁
C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt_第3頁
C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt_第4頁
C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt_第5頁
資源描述:

《C語言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第6章 函數(shù).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第6章函數(shù)函數(shù)概述函數(shù)定義和函數(shù)調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用局部變量和全局變量變量的存儲(chǔ)類別內(nèi)部函數(shù)和外部函數(shù)第頁共62頁6.1函數(shù)概述結(jié)構(gòu)化設(shè)計(jì)方法認(rèn)為,在設(shè)計(jì)一個(gè)大的項(xiàng)目時(shí),應(yīng)該將這個(gè)項(xiàng)目按照功能分解成一些小的模塊,這些小模塊全部完成了,該項(xiàng)目也就完成了,當(dāng)然小模塊的劃分有一定的技巧和準(zhǔn)則。這種設(shè)計(jì)方法的基本思想是化繁為簡(jiǎn),化整為零,分而治之。基本要點(diǎn)是自頂向下,逐步分解,模塊化。使用這種方法進(jìn)行設(shè)計(jì),邏輯清晰,層次分明。C程序中的main函數(shù)可用來描述整個(gè)程序的功能,而各個(gè)功能的實(shí)現(xiàn)則可以通過相應(yīng)的函數(shù)去完成,main函數(shù)只要調(diào)用各個(gè)相應(yīng)的函數(shù),就能實(shí)現(xiàn)程

2、序的全部功能。在C程序中main函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)可以調(diào)用main函數(shù)以外的其他函數(shù)。第頁共62頁函數(shù)間的調(diào)用關(guān)系第頁共62頁C程序的函數(shù)有兩種:標(biāo)準(zhǔn)庫函數(shù)和自定義函數(shù)。標(biāo)準(zhǔn)庫函數(shù)自定義函數(shù)第頁共62頁6.2函數(shù)定義和函數(shù)調(diào)用函數(shù)定義return語句函數(shù)調(diào)用函數(shù)聲明函數(shù)間的參數(shù)傳遞第頁共62頁第頁共62頁6.2.1函數(shù)定義函數(shù)定義(functiondefinition)就是對(duì)函數(shù)所要完成的操作進(jìn)行描述,即編寫一段程序,使該段程序完成函數(shù)所指定的操作。一般函數(shù)需先定義后使用。沒有定義過的函數(shù)不能使用。下面先通過一個(gè)例子來了解函數(shù)的定義和使用。第頁共62

3、頁【例】已知五邊形的各邊長(zhǎng)度及對(duì)角連線長(zhǎng)度,要計(jì)算該五邊形的面積,如圖所示。第頁共62頁分析:設(shè)五邊形的五條邊為a、b、c、d、e,用兩條對(duì)角線f、g將五邊形分成3個(gè)三角形s1、s2、s3。在計(jì)算3個(gè)三角形面積時(shí),其操作方法是一樣的,用計(jì)算三角形面積公式,不同的只是邊長(zhǎng)。因此可以定義一個(gè)計(jì)算三角形面積的函數(shù)。第頁共62頁程序如下:#include#includefloatarea(floatx,floaty,floatz)/*定義計(jì)算三角形面積的函數(shù)*/{floats,a;s=(x+y+z)/2.0;a=sqrt(s*(s-x)

4、*(s-y)*(s-z));/*計(jì)算三角形面積*/returna;}第頁共62頁voidmain(){floata,b,c,d,e,f,g;floats1,s2,s3,s;scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);/*輸入五條邊長(zhǎng)*/scanf("%f%f",&f,&g);/*輸入兩條對(duì)角線*/s1=area(a,b,f);/*調(diào)用計(jì)算三角形面積函數(shù)*/s2=area(c,g,f);s3=area(d,e,g);s=s1+s2+s3;printf("s=%.2f",s);}第頁共62頁程序運(yùn)行情況如下:11111↙1.621.62

5、↙s=1.72程序說明:程序中先定義一個(gè)求三角形面積的函數(shù)area,然后在main函數(shù)中,像調(diào)用標(biāo)準(zhǔn)庫函數(shù)一樣,分三次調(diào)用area函數(shù),分別計(jì)算sl、s2、s3的面積,最后在main函數(shù)中輸出五邊形的面積。函數(shù)定義的一般形式:類型標(biāo)識(shí)符函數(shù)名(類型形參,類型形參,…){定義部分語句序列}第頁共62頁類型標(biāo)識(shí)符類型標(biāo)識(shí)符用來定義函數(shù)類型,即指定函數(shù)返回值的類型。函數(shù)類型應(yīng)根據(jù)具體函數(shù)的功能確定。如例中area函數(shù)的功能是計(jì)算三角形面積,其執(zhí)行的結(jié)果是返回三角形的面積值,一般為實(shí)數(shù),所以函數(shù)定義類型時(shí)采用float類型。如果定義函數(shù)時(shí),默認(rèn)類型標(biāo)識(shí)符,則系統(tǒng)指定的函

6、數(shù)返回值為int類型。第頁共62頁函數(shù)名函數(shù)名是由用戶為函數(shù)取的名字,程序中除main函數(shù)外,其余函數(shù)名可以任意取名,但必須符合標(biāo)識(shí)符的命名規(guī)則。在函數(shù)定義時(shí),函數(shù)體中不能再出現(xiàn)與函數(shù)名同名的其他對(duì)象名(如變量名、數(shù)組名等)。第頁共62頁形參及其類型的定義形參(formalparameter)也稱形參變量。形參個(gè)數(shù)及形參的類型,是由具體的函數(shù)功能決定的,形參名由用戶取名。函數(shù)可以有形參,也可以沒有形參。函數(shù)定義時(shí),如何設(shè)置形參,是一個(gè)要點(diǎn)。對(duì)于初學(xué)者,可以這樣簡(jiǎn)單地去考慮,需要從函數(shù)外部傳入到函數(shù)內(nèi)的數(shù)據(jù)列為形參。而形參的類型由傳入的數(shù)據(jù)類型決定。如例中,are

7、a函數(shù)計(jì)算三角形面積,必須將三角形的三條邊長(zhǎng)傳入到aera函數(shù),才能完成三角形面積的計(jì)算。所以area函數(shù)設(shè)置三個(gè)形參,用于在計(jì)算時(shí)存儲(chǔ)三條邊長(zhǎng)。而邊長(zhǎng)一般是實(shí)數(shù),所以形參類型設(shè)置成實(shí)型。第頁共62頁【例】編寫函數(shù),在一行上輸出10個(gè)“*”字符。程序如下:#includevoidprint()/*無返回值,無形參*/{inti;for(i=0;i<10;i++)printf("%c",'*');printf("");return;/*返回調(diào)用處*/}voidmain(){print();/*調(diào)用print函數(shù)*/}第頁共62頁運(yùn)行結(jié)果如下:

8、**********程序

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。