版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 1蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 l 本章要點(diǎn)本章要點(diǎn)C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 2蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 l 主要內(nèi)容主要內(nèi)容 8.1 8.1 概述概述 8. 8.函數(shù)定義的一般形式函數(shù)定義的一般形式 8. 8.函數(shù)參數(shù)和函數(shù)的值函數(shù)參數(shù)和函數(shù)的值 8. 8. 函數(shù)的調(diào)用函數(shù)的調(diào)用 8. 8. 函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用 8. 8.函數(shù)的遞歸
2、調(diào)用函數(shù)的遞歸調(diào)用 8. 8.數(shù)組作為函數(shù)參數(shù)數(shù)組作為函數(shù)參數(shù) 8.8 8.8 局部變量和全局變量局部變量和全局變量 8. 8.變量的存儲類別變量的存儲類別 8.10 8.10 內(nèi)部函數(shù)和外部函數(shù)內(nèi)部函數(shù)和外部函數(shù)C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 3蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.1 概述 一個程序可由一個主函數(shù)和若干個其他函數(shù)構(gòu)成。一個較大的程序可分為若干個程序模塊,每一個模塊用來實(shí)現(xiàn)一個特定的功能。在高級語言中用子程序?qū)崿F(xiàn)模塊的功能。子程序由函數(shù)來完成。 函數(shù)間的調(diào)用關(guān)系:由主函數(shù)調(diào)用
3、其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 4蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 5蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例8.18.1先舉一個函數(shù)調(diào)用的簡單例子先舉一個函數(shù)調(diào)用的簡單例子# include # include void main()void main() void printstar
4、(); / void printstar(); /* *對對printstarprintstar函數(shù)函數(shù)聲明聲明* */ / void print_message(); / void print_message(); /* *對對print_messageprint_message函數(shù)聲函數(shù)聲明明* */ / printstar(); printstar(); * *調(diào)用調(diào)用printstarprintstar函數(shù)函數(shù)* * print_message(); / print_message(); /* *調(diào)用調(diào)用print_messageprint_message函數(shù)函數(shù)* */ / prin
5、tstar(); printstar(); * *調(diào)用調(diào)用printstarprintstar函數(shù)函數(shù)* */ / C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 6蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 void printstar() *定義定義printstar函數(shù)函數(shù)* printf(* * * * * * * * * * * * * * * *n);void print_message() *定義定義print_message函數(shù)函數(shù)* printf(How do you do!n); 運(yùn)行情況如下:運(yùn)行
6、情況如下:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *How do you do!How do you do!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 7蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 8蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)
7、院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (2) 一個源程序文件由一個或多個函數(shù)以及其他有關(guān)內(nèi)容如命令行、數(shù)據(jù)定義等組成。一個源程序文件是一個編譯單位,在程序編譯時是以源程序文件為單位進(jìn)行編譯的,而不是以函數(shù)為單位進(jìn)行編譯的。(3) 程序的執(zhí)行是從main函數(shù)開始的,如果在main函數(shù)中調(diào)用其他函數(shù),在調(diào)用后流程返回到main函數(shù),在main函數(shù)中結(jié)束整個程序的運(yùn)行。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 9蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (4)所有函數(shù)都是平行的,即在定義函數(shù)時是分
8、別進(jìn)行的,是互相獨(dú)立的。一個函數(shù)并不從屬于另一函數(shù),即函數(shù)不能嵌套定義。函數(shù)間可以互相調(diào)用,但不能調(diào)用main函數(shù)。main函數(shù)是系統(tǒng)調(diào)用的。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 10蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (5)從用戶使用的角度看,函數(shù)有兩種: 標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。這是由系統(tǒng)提供的,用戶不必自己定義這些函數(shù),可以直接使用它們。不同的C系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些不同,但許多基本的函數(shù)是共同的。 用戶自己定義的函數(shù)。用以解決用戶的專門需要。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教
9、研室計算機(jī)應(yīng)用教研室 趙睿趙睿 11蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (6) 從函數(shù)的形式看,函數(shù)分兩類: 無參函數(shù)。無參函數(shù)一般用來執(zhí)行指定的一組操作。在調(diào)用無參函數(shù)時,主調(diào)函數(shù)不向被調(diào)用函數(shù)傳遞數(shù)據(jù)。有參函數(shù)。主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時,通過參數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù)。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 12蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.2.1 8.2.1 無參函數(shù)的定義一般形式無參函數(shù)的定義一般形式 定義無參函數(shù)的一般形式
10、為定義無參函數(shù)的一般形式為: :類型標(biāo)識符函數(shù)名()類型標(biāo)識符函數(shù)名() 聲明部分聲明部分 語句部分語句部分 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 13蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 定義有參函數(shù)的一般形式為定義有參函數(shù)的一般形式為: :類型標(biāo)識符函數(shù)名形式參數(shù)表列)類型標(biāo)識符函數(shù)名形式參數(shù)表列) 聲明部分聲明部分 語句部分語句部分 例如:例如: int int ,int int ) ;/ / * *函數(shù)體中的聲明部函數(shù)體中的聲明部分分* *?; return return);); C語言案例教程
11、語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 14蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 定義空函數(shù)的一般形式為定義空函數(shù)的一般形式為: :類型標(biāo)識符函數(shù)名()類型標(biāo)識符函數(shù)名() 例如:例如:()() 主調(diào)函數(shù)調(diào)用空函數(shù)時,只表明這里要調(diào)用一個函數(shù),但函數(shù)本身什么工作也不做等,以后擴(kuò)充函數(shù)功能時補(bǔ)充上。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 15蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 形式參數(shù):函數(shù)名后面括號中的變量名稱為“形式參數(shù)”(
12、簡稱“形參”)。實(shí)際參數(shù):主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括號中的參數(shù)(可以是一個表達(dá)式)稱為“實(shí)際參數(shù)”(簡稱“實(shí)參”)。函數(shù)返回值:return后面的括號中的值作為函數(shù)帶回的值稱函數(shù)返回值)。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 16蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞的關(guān)系。在不同的函數(shù)之間傳遞數(shù)據(jù),可以使用的方法有:參數(shù):通過形式參數(shù)和實(shí)際參數(shù)返回值:用return語句返回計算結(jié)果全局變量:外部變量C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教
13、研室 趙睿趙睿 17蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例8.調(diào)用函數(shù)時的數(shù)據(jù)傳遞調(diào)用函數(shù)時的數(shù)據(jù)傳遞#include void ()() int max(int ,int ); /* 對函數(shù)的聲明對函數(shù)的聲明 */ int ,;,; scanf(,);(,); ,);,); printf( ,);,); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 18蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 int max(int ,int )*定義有參函數(shù)max
14、* int ; ?; return); 運(yùn)行情況如下:運(yùn)行情況如下:, C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 19蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 通過函數(shù)調(diào)用,可使兩個函數(shù)中的數(shù)據(jù)發(fā)生聯(lián)系。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 20蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 關(guān)于形參與實(shí)參的說明:關(guān)于形參與實(shí)參的說明:(1 1) 在定義函數(shù)中指定的形參,在未出現(xiàn)在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時,它們并不
15、占內(nèi)存中的存儲單元。函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。只有在發(fā)生函數(shù)調(diào)用時,函數(shù)只有在發(fā)生函數(shù)調(diào)用時,函數(shù)maxmax中的形參才中的形參才被分配內(nèi)存單元。在調(diào)用結(jié)束后,形參所占被分配內(nèi)存單元。在調(diào)用結(jié)束后,形參所占的內(nèi)存單元也被釋放。的內(nèi)存單元也被釋放。(2 2) 實(shí)參可以是常量、變量或表達(dá)式,實(shí)參可以是常量、變量或表達(dá)式,例如:例如: max max,);,);但要求它們有確定的值。在調(diào)用時將實(shí)參的但要求它們有確定的值。在調(diào)用時將實(shí)參的值賦給形參。值賦給形參。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 21蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品
16、課程語言精品課程C語言案例教程語言案例教程 (3 3在被定義的函數(shù)中,必須指定形參的類在被定義的函數(shù)中,必須指定形參的類型。型。(4 4實(shí)參與形參的類型應(yīng)相同或賦值兼容。實(shí)參與形參的類型應(yīng)相同或賦值兼容。(5 5值傳遞值傳遞: :實(shí)參向形參的數(shù)據(jù)傳遞是單實(shí)參向形參的數(shù)據(jù)傳遞是單向向“值傳遞值傳遞”,只能由實(shí)參傳給形參,而不,只能由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。能由形參傳回來給實(shí)參。 在調(diào)用函數(shù)時,給形參分配存儲單元,在調(diào)用函數(shù)時,給形參分配存儲單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并后,形參單元被釋放,實(shí)參單元
17、仍保留并維持原值。維持原值。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 22蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.3.2 8.3.2 函數(shù)的返回值函數(shù)的返回值 函數(shù)的返回值是通過函數(shù)調(diào)用使主調(diào)函數(shù)函數(shù)的返回值是通過函數(shù)調(diào)用使主調(diào)函數(shù)得到的確定值。得到的確定值。例如例如: :例例8.8.中,中,maxmax,的值是,的值是,maxmax,的值是,的值是5 5。賦值語句將這個函數(shù)。賦值語句將這個函數(shù)值賦給變量。值賦給變量。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 23蘭州石化職
18、業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 闡明:闡明: (1函數(shù)的返回值是通過函數(shù)中的函數(shù)的返回值是通過函數(shù)中的return語句獲得的。語句獲得的。 一個函數(shù)中可以有一個以上的一個函數(shù)中可以有一個以上的return語語句,執(zhí)行到哪一個句,執(zhí)行到哪一個return語句,哪一個語語句,哪一個語句起作用。句起作用。return語句后面的括弧也可以不要語句后面的括弧也可以不要例如例如: “return ;” 等價于等價于 “return ();();”return后面的值可以是一個表達(dá)式。后面的值可以是一個表達(dá)式。例如例如: int ,int ) retur
19、n?:);); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 24蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (2函數(shù)的返回值應(yīng)當(dāng)屬于某一個確定的類型,在定義函數(shù)時指定函數(shù)返回值的類型。例如:下面是3個函數(shù)的首行:int maxfloat ,float ) /* 函數(shù)值為整型 */char letterchar c1,char c2) /* 函數(shù)值為字符型 */ double minint ,int ) /* 函數(shù)值為雙精度型 */ 留意:留意:凡不加類型說明的函數(shù),自動按整型處理。凡不加類型說明的函數(shù),自動按整型處
20、理。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 25蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (3在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該和return語句中的表達(dá)式類型一致。 如果函數(shù)值的類型和return語句中表達(dá)式的值不一致,則以函數(shù)類型為準(zhǔn)。 對數(shù)值型數(shù)據(jù),可以自動進(jìn)行類型轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。(4對于不帶回值的函數(shù),應(yīng)當(dāng)用“void定義函數(shù)為“無類型”(或稱“空類型”)。此時在函數(shù)體中不得出現(xiàn)return語句。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 26蘭州石化職
21、業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例 8. 8. 返回值類型與函數(shù)類型不同返回值類型與函數(shù)類型不同# include # include void mainvoid main()() int int float float ,float float ); ; float float ,;,; int int ; scanf scanf(,);(,); ,);,); printf printf( ,);,); int maxint maxfloat float ,float float ) float float ; / /* * z z為實(shí)
22、型變量為實(shí)型變量 * */ / ?; return return);); 運(yùn)行情況如下:, Max is C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 27蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 函數(shù)調(diào)用的一般形式為函數(shù)調(diào)用的一般形式為: : 函數(shù)名實(shí)參表列)函數(shù)名實(shí)參表列)闡明闡明: :(1 1如果是調(diào)用無參函數(shù),那么如果是調(diào)用無參函數(shù),那么“實(shí)參實(shí)參表列可以沒有,但括弧不能省略。表列可以沒有,但括弧不能省略。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 28蘭州石化職業(yè)技術(shù)學(xué)院蘭州石
23、化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 (3 3如果實(shí)參表列包括多個實(shí)參,對實(shí)參如果實(shí)參表列包括多個實(shí)參,對實(shí)參求值的順序并不是確定的,有的系統(tǒng)按自求值的順序并不是確定的,有的系統(tǒng)按自左至右順序求實(shí)參的值,有的系統(tǒng)則按自左至右順序求實(shí)參的值,有的系統(tǒng)則按自右至左順序。右至左順序。(2 2如果實(shí)參表列包含多個實(shí)參,則各如果實(shí)參表列包含多個實(shí)參,則各參數(shù)間用逗號隔開。實(shí)參與形參的個數(shù)參數(shù)間用逗號隔開。實(shí)參與形參的個數(shù)應(yīng)相等,類型應(yīng)匹配。實(shí)參與形參按順應(yīng)相等,類型應(yīng)匹配。實(shí)參與形參按順序?qū)?yīng),一一傳遞數(shù)據(jù)。序?qū)?yīng),一一傳遞數(shù)據(jù)。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研
24、室計算機(jī)應(yīng)用教研室 趙睿趙睿 29蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例 8.4 8.4 實(shí)參求值的順序?qū)崊⑶笾档捻樞?include #include void main()void main() int f(int a,int b); / int f(int a,int b); /* * 函數(shù)聲明函數(shù)聲明 * */ / int i=2,p; int i=2,p; p=f(i,+i); / p=f(i,+i); /* * 函數(shù)調(diào)用函數(shù)調(diào)用 * */ / printf(%dn,p); printf(%dn,p); C語言案例教程語言
25、案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 30蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 int f(int a,int b) /* 函數(shù)定義 */ int c; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 31蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 如果按自左至右順序求實(shí)如果按自左至右順序求實(shí)參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng)于,)于
26、,) 如果按自左至右順序求實(shí)如果按自左至右順序求實(shí)參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng)于于3,),) 對于函數(shù)調(diào)用對于函數(shù)調(diào)用 int i=2,p;p=f(i,+i); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 32蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 函數(shù)語句函數(shù)語句把函數(shù)調(diào)用作為一個語句。這時不要求函數(shù)帶回值,把函數(shù)調(diào)用作為一個語句。這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。只要求函數(shù)完成一定的操作。函數(shù)表達(dá)式函數(shù)表達(dá)式函數(shù)出現(xiàn)在一個表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)函數(shù)出現(xiàn)在一個表達(dá)式中,
27、這種表達(dá)式稱為函數(shù)表達(dá)式。這時要求函數(shù)帶回一個確定的值以參加表達(dá)式的式。這時要求函數(shù)帶回一個確定的值以參加表達(dá)式的運(yùn)算。例如運(yùn)算。例如: :* *,);,); 按函數(shù)在程序中出現(xiàn)的位置來分,可以有以下三種函數(shù)調(diào)用方式: C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 33蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 函數(shù)參數(shù)函數(shù)參數(shù)函數(shù)調(diào)用作為一個函數(shù)的實(shí)參。函數(shù)調(diào)用作為一個函數(shù)的實(shí)參。例如例如: m = max (a , max ( b , c ) ) ;其中其中max ( b , c )是一次函數(shù)調(diào)用,它的值作為是一
28、次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實(shí)參。另一次調(diào)用的實(shí)參。m的值是的值是a、b、c三者三者中的最大者。中的最大者。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 34蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.4.3 8.4.3 對被調(diào)用函數(shù)的聲明和函數(shù)原型對被調(diào)用函數(shù)的聲明和函數(shù)原型1.首先被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù)是庫函數(shù)或用戶自己定義的函數(shù))。但光有這一條件還不夠。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 35蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語
29、言精品課程C語言案例教程語言案例教程 3.如果使用用戶自己定義的函數(shù),而該函數(shù)的位置在調(diào)用它的函數(shù)即主調(diào)函數(shù)的后面,應(yīng)該在主調(diào)函數(shù)中對被調(diào)用的函數(shù)作聲明。2.如果使用庫函數(shù),還應(yīng)該在本文件開頭用#include 命令將調(diào)用有關(guān)庫函數(shù)時所需用到的信息“包含到本文件中來。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 36蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 函數(shù)原型的一般形式為函數(shù)原型的一般形式為: :1. 1. 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù)類型,參數(shù)類型2)2);2. 2.
30、函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù)名,參數(shù)名1 1,參數(shù)類,參數(shù)類型型2 2,參數(shù)名,參數(shù)名2)2); 聲明的作用是把函數(shù)名、函數(shù)參數(shù)的個數(shù)和參數(shù)類型等信息通知編譯系統(tǒng),以便在遇到函數(shù)調(diào)用時,編譯系統(tǒng)能正確識別函數(shù)并檢查調(diào)用是否合法。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 37蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 留意:留意: 函數(shù)的函數(shù)的“定義和定義和“聲明的區(qū)別:聲明的區(qū)別: 函數(shù)的定義是指對函數(shù)功能的確立,包括指函數(shù)的定義是指對函數(shù)功能的確立,包括指定函數(shù)名,函數(shù)值類型
31、、形參及其類型、函定函數(shù)名,函數(shù)值類型、形參及其類型、函數(shù)體等,它是一個完整的、獨(dú)立的函數(shù)單位。數(shù)體等,它是一個完整的、獨(dú)立的函數(shù)單位。 函數(shù)的聲明的作用則是把函數(shù)的名字、函數(shù)函數(shù)的聲明的作用則是把函數(shù)的名字、函數(shù)類型以及形參的類型、個數(shù)和順序通知編譯類型以及形參的類型、個數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時系統(tǒng)按此進(jìn)行對系統(tǒng),以便在調(diào)用該函數(shù)時系統(tǒng)按此進(jìn)行對照檢查。照檢查。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 38蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例8. 對被調(diào)用的函數(shù)作聲明對被調(diào)用的函數(shù)
32、作聲明# include void main()() float addfloat x, float y);); *對被調(diào)用函數(shù)對被調(diào)用函數(shù)add的聲明的聲明* float a,b,c; scanf(f,f,a,b);); cadda,b); printf(sum is f n,c););float addfloat ,float ) *函數(shù)首部函數(shù)首部* float ; /* 函數(shù)體函數(shù)體 */ z; returnz);); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 39蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教
33、程 例例8 8 對被調(diào)用的函數(shù)作聲明對被調(diào)用的函數(shù)作聲明# include # include float addfloat addfloat float ,float float ) * *函數(shù)函數(shù)首部首部* * float float ; / /* * 函數(shù)體函數(shù)體 * */ / z z; return returnz z);); void mainvoid main()() float a float a,b b,c c; scanf scanf(f f,f f,a a,b b);); c caddadda a,b b); ; printf printf(sum is sum is f
34、nf n,c c););C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 40蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 嵌套定義就是在定義一個函數(shù)時,其函數(shù)體內(nèi)又包含另一個函數(shù)的完整定義 。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 41蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例 8. 用弦截法求方程 f(x)=x3-5x2+16x-80=0 的根 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 42蘭州石化職業(yè)
35、技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 1. 1. 取兩個不同點(diǎn)取兩個不同點(diǎn)x1,x2,x1,x2,如果如果f(x1)f(x1)和和f(x2)f(x2)符號符號相反相反, ,那么那么(x1,x2)(x1,x2)區(qū)間內(nèi)必有一個根。如果區(qū)間內(nèi)必有一個根。如果f(x1)f(x1)與與f(x2)f(x2)同符號同符號, ,則應(yīng)改變則應(yīng)改變x1,x2,x1,x2,直到直到f(x1)f(x1)、f(x2)f(x2)異號為止。注意異號為止。注意x1x1、x2x2的值不應(yīng)差太大的值不應(yīng)差太大, ,以以保證保證(x1,x2)(x1,x2)區(qū)間內(nèi)只有一個根。區(qū)間內(nèi)只有一
36、個根。 2. 2. 銜接銜接(x1,f(x1)(x1,f(x1)和和(x2,f(x2)(x2,f(x2)兩點(diǎn)兩點(diǎn), ,此線此線( (即即弦弦) )交交x x軸于軸于x x。方法:方法:C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 43蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 3. 3. 若若f(x)f(x)與與f(x1)f(x1)同符號同符號, ,則根必在則根必在(x,x2)(x,x2)區(qū)間內(nèi)區(qū)間內(nèi), ,此時將此時將x x作為新的作為新的x1x1。如果。如果f(x)f(x)與與f(x2)f(x2)同符號同符號, ,
37、則則表示根在表示根在(x1,x)(x1,x)區(qū)間內(nèi)區(qū)間內(nèi), ,將將x x作為新的作為新的x2x2。4. 4. 重復(fù)步驟重復(fù)步驟 (2) (2) 和和 (3) , (3) , 直到直到 f(x)f(x) 為止為止, , 為一個很小的數(shù)為一個很小的數(shù), , 例如例如 10-6. 10-6. 此時認(rèn)此時認(rèn)為為 f(x)0 f(x)0 。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 44蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 N-S流程圖流程圖 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 45
38、蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 實(shí)現(xiàn)各部分功能的幾個函數(shù)實(shí)現(xiàn)各部分功能的幾個函數(shù):1. 用函數(shù)f(x)代表x的函數(shù):x3-5x2+16x-80。2. 用函數(shù)調(diào)用xpoint (x1,x2)來求(x1,f(x1)和 (x2,f(x2)的連線與x軸的交點(diǎn)x的坐標(biāo)。3. 用函數(shù)調(diào)用root (x1,x2)來求(x1,x2)區(qū)間的 那個實(shí)根。顯然,執(zhí)行root函數(shù)過程中要用到函 數(shù)xpoint,而執(zhí)行xpoint函數(shù)過程中要用 到f函數(shù)。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 46蘭州石化職業(yè)技術(shù)學(xué)院蘭州石
39、化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 include include float f(float x) * 定義函數(shù),以實(shí)現(xiàn)f(x) x3-5x2+16x-80 * float ; =(-.)*+.)*-.; return); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 47蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 float xpoint (float x1,float x2) *定義xpoint函數(shù),求出弦與x軸交點(diǎn) */ float ; =(*()-*() ()-(); re
40、turn (); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 48蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 float rootfloat ,float ) /* 定義root函數(shù),求近似根 */float ,; ); do xpoint,); ); if*) /*()與()同符號 */ ; ; ; whilefabs)0.0001); return C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 49蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案
41、例教程 void main() *主函數(shù) */float ,; do printf( ,:); scanf(,); ); ); while*); ,); printf( root of equation is .n,); 運(yùn)行情況如下:input ,:, root of equation is 5.0000C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 50蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.6 8.6 函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用 在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用
42、。語言的特點(diǎn)之一就在于允許函數(shù)的遞歸調(diào)用。例如: int f ( int ) ,; ); return*); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 51蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 52蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例 8.7: 8.7: 有個人坐在一起,問第個人多少歲?他有個人坐在一起,問第個人多少歲?他說比第個人大歲。問第個人歲數(shù),他說比第說比第個人大歲
43、。問第個人歲數(shù),他說比第個人大歲。問第個人,又說比第個人大歲。個人大歲。問第個人,又說比第個人大歲。問第個人,說比第個人大歲。最后問第個人,問第個人,說比第個人大歲。最后問第個人,他說是歲。請問第個人多大。他說是歲。請問第個人多大。 age5)= age (4)+2age4)= age (3)+2age3)= age (2)+2age2)= age (1)+2age1)= 10用數(shù)學(xué)公式表述如下:agen)= 10 ()agen-1)+2 ()C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 53蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案
44、例教程語言案例教程 可以用一個函數(shù)來描述上述遞歸過程:可以用一個函數(shù)來描述上述遞歸過程:int ageint ) *求年齡的遞歸函數(shù)求年齡的遞歸函數(shù)* int ; * 用作存放函數(shù)的返回值的變量用作存放函數(shù)的返回值的變量 * if) ; else );); return););運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: 用一個主函數(shù)調(diào)用age函數(shù),求得第5人的年齡。#include void main() printf(,age); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 54蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例
45、8.8.用遞歸方法求!用遞歸方法求! 求!也可以用遞歸方法,即!等于!,而!??捎孟旅娴倪f歸公式表示: ! (,) ()! ()C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 55蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例8.9 Hanoi漢諾塔問題漢諾塔問題:C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 56蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 由上面的分析可知:將個盤子從座移到座可以分解為以下3個步驟:1.將上個盤借助座先移到
46、座上。2.把座上剩下的一個盤移到座上。3.將個盤從座借助于座移到座上。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 57蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 程序如下:程序如下:#include void main()void hanoi(int n,char one,char two,char three); /* 對對hanoi函數(shù)的聲明函數(shù)的聲明 */ int m; printf(input the number of diskes:); scanf(“%d”,&m); printf(The st
47、ep to moveing %d diskes:n,m); hanoi(m,A,B,C); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 58蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 void hanoi(int n,char one,char two,char three) /* 定義hanoi函數(shù),將個盤從one座借助two座,移到three座 */ void move(char x,char y); /* 對move函數(shù)的聲明 */ if(n=1) move(one,three); else hanoi(n-
48、1,one,three,two); move(one,three); hanoi(n-1,two,one,three); void move(char x,char y) /* 定義move函數(shù) */ printf(“%c-%cn,x,y); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 59蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 運(yùn)行情況如下:運(yùn)行情況如下:input the number of diskes:3 The steps to noving 3 diskes: C語言案例教程語言案例教程 計算機(jī)應(yīng)用
49、教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 60蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 由于實(shí)參可以是表達(dá)式,而數(shù)組元素可以是表達(dá)式的組成部分,因此數(shù)組元素可以作為函數(shù)的實(shí)參,與用變量作實(shí)參一樣,是單向傳遞,即“值傳送方式。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 61蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例 8.10 8.10 有兩個數(shù)組和,各有個元素,將它們有兩個數(shù)組和,各有個元素,將它們對應(yīng)地逐個相比即與比,對應(yīng)地逐個相比即與比,與比與比)。如果數(shù)組中
50、)。如果數(shù)組中的元素大于數(shù)組中的相應(yīng)元素的數(shù)目多于的元素大于數(shù)組中的相應(yīng)元素的數(shù)目多于b b數(shù)組中元素大于數(shù)組中元素大于a a數(shù)組中相應(yīng)元素的數(shù)目數(shù)組中相應(yīng)元素的數(shù)目( (例如,例如,a ai ibbi i6 6次,次,b bi iaai i3 3次,其次,其中中i i每次為不同的值每次為不同的值) ),則認(rèn)為,則認(rèn)為a a數(shù)組大于數(shù)組大于b b數(shù)組,數(shù)組,并分別統(tǒng)計出兩個數(shù)組相應(yīng)元素大于、等于、并分別統(tǒng)計出兩個數(shù)組相應(yīng)元素大于、等于、小于的次數(shù)。小于的次數(shù)。 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 62蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語
51、言精品課程C語言案例教程語言案例教程 #include void main() int large(int x,int y); /* 函數(shù)聲明 */ int 10,10,,; printf(enter array a ); for;) scanf(,); printf(); printf( enter array ); for;) scanf (,); printf(); for;) iflarge (i,i )= ) ; else if( large (i,i )=) =+; else ;C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 63蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化
52、職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 printf(aibi %d timesnai=bi %d timesnaik) printf(array a is larger than array bn); else if (nk) printf(array a is smaller than array bn); else printf(array is equal to array bn);largeint ,int ) int ; if;else ifflag;else flag; returnflag);C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研
53、室 趙睿趙睿 64蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 運(yùn)行情況如下:運(yùn)行情況如下: enter array a: 5 3 8 9 1 3 5 6 0 4 array a is smaller thann array bC語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 65蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 8.7.2 8.7.2 數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù) 用數(shù)組名作函數(shù)參數(shù)時,此時形參應(yīng)當(dāng)用數(shù)組名或用指針變量 。例例8.11 有一個一維數(shù)組有一個
54、一維數(shù)組score,內(nèi)放,內(nèi)放10個個學(xué)生成績,求平均成績。學(xué)生成績,求平均成績。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 66蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 #include void main() float averagefloat array10); /* 函數(shù)聲明 */ float score10 , aver; int ; printf(input scores:); for; scanf(,score); printf(); averaverage( score ); printf (
55、average score is .n, aver);C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 67蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 float average (float array10) int ; float aver,; for (;);returnaver);運(yùn)行情況如下:運(yùn)行情況如下:input scores: .5 .5 average score is 83.40 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 68蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語
56、言精品課程語言精品課程C語言案例教程語言案例教程 例例 8. 8.形參數(shù)組不定義長度形參數(shù)組不定義長度#include #include void mainvoid main()() float average float averagefloat float ,int int ) float score_15 float score_15 , . ., ; float score_2 float score_21010= 67.5= 67.5,89.589.5,9999,6 6.5.5, 77 77,89.589.5,76.576.5,5454,6060,99.5;99.5; printf(
57、 printf(“the average of class A is %6.2fthe average of class A is %6.2fn n”, average(score_1 average(score_1,5);5); printf( printf(“the average of class B is %6.2fthe average of class B is %6.2fn n”, average(score_2 average(score_2,10);10); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 69蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院
58、C語言精品課程語言精品課程C語言案例教程語言案例教程 float averagefloat ,int ) int ; float aver,; for; sumsumarray; aversum; return); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:the average of class A is 80.40The average of class is 78.20C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 70蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 例例 8.13 用選擇法對數(shù)組中用選擇法對數(shù)組中10個整數(shù)按由小
59、個整數(shù)按由小到大排序。到大排序。 所謂選擇法就是先將10個數(shù)中最小的數(shù)與a0對換;再將a1到a9中最小的數(shù)與a1對換每比較一輪,找出一個未經(jīng)排序的數(shù)中最小的一個。共比較9輪。C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 71蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 未排序時的情況:a0 a1 a2 a3 a4 3 6 1 9 4 將5個數(shù)中最小的數(shù)1與a0對換: 1 6 3 9 4 將余下的4個數(shù)中最小的數(shù)3與a1對換 1 3 6 9 4 將余下的3個數(shù)中最小的數(shù)4與a2對換 1 3 4 9 6 將余下的2個數(shù)中最
60、小的數(shù)6與a3對換 1 3 4 6 9 C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計算機(jī)應(yīng)用教研室 趙睿趙睿 72蘭州石化職業(yè)技術(shù)學(xué)院蘭州石化職業(yè)技術(shù)學(xué)院 C語言精品課程語言精品課程C語言案例教程語言案例教程 程序:程序:#include void main()() void sortint ,int ); int ,;,; printf(enter the array);); for; scanf(,);,); sort,);,); printf(the sorted array );); for; printf(,);,); printf();); C語言案例教程語言案例教程 計算機(jī)應(yīng)用教研室計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招生行為規(guī)范與違規(guī)處理
- 二零二五年度健康養(yǎng)生中心經(jīng)營管理合同3篇
- 石家莊2025年度技術(shù)轉(zhuǎn)讓合同3篇
- 2024年09月江蘇2024年北京銀行南京分行無錫分行(二級)校園招考筆試歷年參考題庫附帶答案詳解
- 加油站的市場競爭狀況
- 二零二五年度民辦學(xué)校教師任期制聘用合同4篇
- 2025年度大理石板材出口貿(mào)易合同3篇
- 2025年電子商務(wù)平臺配送人員勞動合同規(guī)范文本3篇
- 齊齊哈爾2025年黑龍江齊齊哈爾大學(xué)招聘博士教師124人筆試歷年參考題庫附帶答案詳解
- 2025年度二零二五年度文化演出臨時工勞務(wù)合同4篇
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 2024年一級建造師考試思維導(dǎo)圖-市政
- 高壓架空輸電線路反事故措施培訓(xùn)課件
- 隱私計算技術(shù)與數(shù)據(jù)安全保護(hù)
- 人教版小學(xué)數(shù)學(xué)五年級上冊口算題卡
- 《子宮肉瘤》課件
- 小學(xué)防范詐騙知識講座
- 當(dāng)保安夜班睡覺管理制度
評論
0/150
提交評論