版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、7.1為什么要用函數(shù)為什么要用函數(shù) 7.2怎樣定義函數(shù)怎樣定義函數(shù)7.3調(diào)用函數(shù)調(diào)用函數(shù)7.4對被調(diào)用函數(shù)的聲明和函數(shù)原型對被調(diào)用函數(shù)的聲明和函數(shù)原型7.5函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用 7.6函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用7.7數(shù)組作為函數(shù)參數(shù)數(shù)組作為函數(shù)參數(shù) 7.8局部變量和全局變量局部變量和全局變量7.9變量的存儲方式和生存期變量的存儲方式和生存期7.10 關(guān)于變量的聲明和定義關(guān)于變量的聲明和定義7.11 內(nèi)部函數(shù)和外部函數(shù)內(nèi)部函數(shù)和外部函數(shù)問題:問題:u如果程序的功能比較多,規(guī)模比較大,把所有代如果程序的功能比較多,規(guī)模比較大,把所有代碼都寫在碼都寫在main函數(shù)中,就會使主函數(shù)變得龐雜、
2、函數(shù)中,就會使主函數(shù)變得龐雜、頭緒不清,閱讀和維護變得困難頭緒不清,閱讀和維護變得困難u有時程序中要多次實現(xiàn)某一功能,就需要多次重有時程序中要多次實現(xiàn)某一功能,就需要多次重復(fù)編寫實現(xiàn)此功能的程序代碼,這使程序冗長,復(fù)編寫實現(xiàn)此功能的程序代碼,這使程序冗長,不精煉不精煉解決的方法:用模塊化程序設(shè)計的思路解決的方法:用模塊化程序設(shè)計的思路u采用采用“組裝組裝”的辦法簡化程序設(shè)計的過程的辦法簡化程序設(shè)計的過程u事先編好一批實現(xiàn)各種不同功能的函數(shù)事先編好一批實現(xiàn)各種不同功能的函數(shù)u把它們保存在函數(shù)庫中,需要時直接用把它們保存在函數(shù)庫中,需要時直接用解決的方法:用模塊化程序設(shè)計的思路解決的方法:用模塊化
3、程序設(shè)計的思路u函數(shù)就是功能函數(shù)就是功能u每一個函數(shù)用來實現(xiàn)一個特定的功能每一個函數(shù)用來實現(xiàn)一個特定的功能u函數(shù)的名字應(yīng)反映其代表的功能函數(shù)的名字應(yīng)反映其代表的功能在設(shè)計一個較大的程序時,往往把它分為若干個在設(shè)計一個較大的程序時,往往把它分為若干個程序模塊,每一個模塊包括一個或多個函數(shù),每程序模塊,每一個模塊包括一個或多個函數(shù),每個函數(shù)實現(xiàn)一個特定的功能個函數(shù)實現(xiàn)一個特定的功能程序可由一個主函數(shù)和若干個其他函數(shù)構(gòu)成程序可由一個主函數(shù)和若干個其他函數(shù)構(gòu)成主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次同一個函數(shù)可以被一
4、個或多個函數(shù)調(diào)用任意多次mainabcfghdeie可以使用庫函數(shù)可以使用庫函數(shù)可以使用自己編寫的函數(shù)可以使用自己編寫的函數(shù)在程序設(shè)計中要善于利用函數(shù),可以減少在程序設(shè)計中要善于利用函數(shù),可以減少重復(fù)編寫程序段的工作量,同時可以方便重復(fù)編寫程序段的工作量,同時可以方便地實現(xiàn)模塊化的程序設(shè)計地實現(xiàn)模塊化的程序設(shè)計例例7.1 輸出以下的結(jié)果,用函數(shù)調(diào)用實現(xiàn)。輸出以下的結(jié)果,用函數(shù)調(diào)用實現(xiàn)。 * how do you do! *解題思路:解題思路:u在輸出的文字上下分別有一行在輸出的文字上下分別有一行“*”號,顯然不號,顯然不必重復(fù)寫這段代碼,用一個函數(shù)必重復(fù)寫這段代碼,用一個函數(shù)print_sta
5、r來來實現(xiàn)輸出一行實現(xiàn)輸出一行“*”號的功能。號的功能。u再寫一個再寫一個print_message函數(shù)來輸出中間一函數(shù)來輸出中間一行文字信息行文字信息u用主函數(shù)分別調(diào)用這兩個函數(shù)用主函數(shù)分別調(diào)用這兩個函數(shù)#include int main() void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0;void print_star() printf(“*n”); void print_message() printf(“ how do you do!n”); 輸
6、出輸出16個個*輸出一行文字輸出一行文字#include int main() void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0;void print_star() printf(“*n”); void print_message() printf(“ how do you do!n”); 聲明函數(shù)聲明函數(shù)定義函數(shù)定義函數(shù)#include int main() void print_star(); void print_message(); print_s
7、tar(); print_message(); print_star(); return 0;void print_star() printf(“*n”); void print_message() printf(“ how do you do!n”); 說明:說明: (1) 一個程序由一個或多個程序模塊組成,一個程序由一個或多個程序模塊組成,每一個程序模塊作為一個源程序文件。對較大每一個程序模塊作為一個源程序文件。對較大的程序,一般不希望把所有內(nèi)容全放在一個文的程序,一般不希望把所有內(nèi)容全放在一個文件中,而是將它們分別放在若干個源文件中,件中,而是將它們分別放在若干個源文件中,由若干個源程序
8、文件組成一個由若干個源程序文件組成一個c程序。這樣便程序。這樣便于分別編寫、分別編譯,提高調(diào)試效率。一個于分別編寫、分別編譯,提高調(diào)試效率。一個源程序文件可以為多個源程序文件可以為多個c程序共用。程序共用。說明:說明: (2) 一個源程序文件由一個或多個函數(shù)以及其一個源程序文件由一個或多個函數(shù)以及其他有關(guān)內(nèi)容(如預(yù)處理指令、數(shù)據(jù)聲明與定義他有關(guān)內(nèi)容(如預(yù)處理指令、數(shù)據(jù)聲明與定義等)組成。一個源程序文件是一個編譯單位,等)組成。一個源程序文件是一個編譯單位,在程序編譯時是以源程序文件為單位進行編譯在程序編譯時是以源程序文件為單位進行編譯的,而不是以函數(shù)為單位進行編譯的。的,而不是以函數(shù)為單位進行
9、編譯的。說明:說明: (3) 程序的執(zhí)行是從程序的執(zhí)行是從main函數(shù)開始的,如函數(shù)開始的,如果在果在main函數(shù)中調(diào)用其他函數(shù),在調(diào)用后流函數(shù)中調(diào)用其他函數(shù),在調(diào)用后流程返回到程返回到main函數(shù),在函數(shù),在main函數(shù)中結(jié)束整函數(shù)中結(jié)束整個程序的運行。個程序的運行。說明:說明: (4) 所有函數(shù)都是平行的,即在定義函數(shù)時是所有函數(shù)都是平行的,即在定義函數(shù)時是分別進行的,是互相獨立的。一個函數(shù)并不從分別進行的,是互相獨立的。一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義。函數(shù)屬于另一個函數(shù),即函數(shù)不能嵌套定義。函數(shù)間可以互相調(diào)用,但不能調(diào)用間可以互相調(diào)用,但不能調(diào)用main函數(shù)。函數(shù)。ma
10、in函數(shù)是被操作系統(tǒng)調(diào)用的。函數(shù)是被操作系統(tǒng)調(diào)用的。說明:說明: (5) 從用戶使用的角度看,函數(shù)有兩種。從用戶使用的角度看,函數(shù)有兩種。u庫函數(shù),它是由系統(tǒng)提供的,用戶不必自己定庫函數(shù),它是由系統(tǒng)提供的,用戶不必自己定義而直接使用它們。應(yīng)該說明,不同的義而直接使用它們。應(yīng)該說明,不同的c語言語言編譯系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些編譯系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些不同,當(dāng)然許多基本的函數(shù)是共同的。不同,當(dāng)然許多基本的函數(shù)是共同的。u用戶自己定義的函數(shù)。它是用以解決用戶專門用戶自己定義的函數(shù)。它是用以解決用戶專門需要的函數(shù)。需要的函數(shù)。說明:說明:(6) 從函數(shù)的形式看,函數(shù)分兩類。
11、從函數(shù)的形式看,函數(shù)分兩類。 無參函數(shù)。無參函數(shù)一般用來執(zhí)行指定的一無參函數(shù)。無參函數(shù)一般用來執(zhí)行指定的一組操作。無參函數(shù)可以帶回或不帶回函數(shù)值,組操作。無參函數(shù)可以帶回或不帶回函數(shù)值,但一般以不帶回函數(shù)值的居多。但一般以不帶回函數(shù)值的居多。 有參函數(shù)。在調(diào)用函數(shù)時,主調(diào)函數(shù)在調(diào)有參函數(shù)。在調(diào)用函數(shù)時,主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時,通過參數(shù)向被調(diào)用函數(shù)傳遞用被調(diào)用函數(shù)時,通過參數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù),一般情況下,執(zhí)行被調(diào)用函數(shù)時會得到數(shù)據(jù),一般情況下,執(zhí)行被調(diào)用函數(shù)時會得到一個函數(shù)值,供主調(diào)函數(shù)使用。一個函數(shù)值,供主調(diào)函數(shù)使用。7.2.1 為什么要定義函數(shù)為什么要定義函數(shù)7.2.2 定義函數(shù)的方
12、法定義函數(shù)的方法c語言要求,在程序中用到的所有函數(shù),語言要求,在程序中用到的所有函數(shù),必須必須“先定義,后使用先定義,后使用”指定函數(shù)指定函數(shù)名字名字、函數(shù)、函數(shù)返回值類型返回值類型、函數(shù)、函數(shù)實現(xiàn)的實現(xiàn)的功能功能以及以及參數(shù)的個數(shù)與類型參數(shù)的個數(shù)與類型,將,將這些信息通知編譯系統(tǒng)。這些信息通知編譯系統(tǒng)。指定函數(shù)的名字,以便以后按名調(diào)用指定函數(shù)的名字,以便以后按名調(diào)用指定函數(shù)類型,即函數(shù)返回值的類型指定函數(shù)類型,即函數(shù)返回值的類型指定函數(shù)參數(shù)的名字和類型,以便在調(diào)指定函數(shù)參數(shù)的名字和類型,以便在調(diào)用函數(shù)時向它們傳遞數(shù)據(jù)用函數(shù)時向它們傳遞數(shù)據(jù)指定函數(shù)的功能。這是最重要的,這是指定函數(shù)的功能。這是
13、最重要的,這是在函數(shù)體中解決的在函數(shù)體中解決的對于庫函數(shù),程序設(shè)計者只需用對于庫函數(shù),程序設(shè)計者只需用#include指令把有關(guān)的頭文件包含到指令把有關(guān)的頭文件包含到本文件模塊中即可本文件模塊中即可程序設(shè)計者需要在程序中自己定義想用程序設(shè)計者需要在程序中自己定義想用的而庫函數(shù)并沒有提供的函數(shù)的而庫函數(shù)并沒有提供的函數(shù)1.定義無參函數(shù)定義無參函數(shù)定義無參函數(shù)的一般形式為定義無參函數(shù)的一般形式為:類型名類型名 函數(shù)名函數(shù)名(void) 函數(shù)體函數(shù)體 類型名類型名 函數(shù)名函數(shù)名() 函數(shù)體函數(shù)體 包括聲明部分包括聲明部分和語句部分和語句部分包括聲明部分和包括聲明部分和語句部分語句部分1.定義無參函數(shù)
14、定義無參函數(shù)定義無參函數(shù)的一般形式為定義無參函數(shù)的一般形式為:類型名類型名 函數(shù)名函數(shù)名(void) 函數(shù)體函數(shù)體 類型名類型名 函數(shù)名函數(shù)名() 函數(shù)體函數(shù)體 指定函數(shù)指定函數(shù)值的類型值的類型指定函數(shù)指定函數(shù)值的類型值的類型2.定義有參函數(shù)定義有參函數(shù)定義有參函數(shù)的一般形式為定義有參函數(shù)的一般形式為:類型名類型名 函數(shù)名(形式參數(shù)表列)函數(shù)名(形式參數(shù)表列) 函數(shù)體函數(shù)體 3. 定義空函數(shù)定義空函數(shù)定義空函數(shù)的一般形式為定義空函數(shù)的一般形式為:類型名類型名 函數(shù)名(函數(shù)名( ) 先用空函數(shù)占一個位置,以后逐步擴充先用空函數(shù)占一個位置,以后逐步擴充好處:程序結(jié)構(gòu)清楚,可讀性好,以后好處:程序結(jié)
15、構(gòu)清楚,可讀性好,以后擴充新功能方便,對程序結(jié)構(gòu)影響不大擴充新功能方便,對程序結(jié)構(gòu)影響不大7.3.1函數(shù)調(diào)用的形式函數(shù)調(diào)用的形式7.3.2函數(shù)調(diào)用時的數(shù)據(jù)傳遞函數(shù)調(diào)用時的數(shù)據(jù)傳遞7.3.3函數(shù)調(diào)用的過程函數(shù)調(diào)用的過程7.3.4函數(shù)的返回值函數(shù)的返回值函數(shù)調(diào)用的一般形式為:函數(shù)調(diào)用的一般形式為: 函數(shù)名(實參表列)函數(shù)名(實參表列)如果是調(diào)用無參函數(shù),則如果是調(diào)用無參函數(shù),則“實參表列實參表列”可以沒有,但括號不能省略可以沒有,但括號不能省略如果實參表列包含多個實參,則各參數(shù)如果實參表列包含多個實參,則各參數(shù)間用逗號隔開間用逗號隔開按函數(shù)調(diào)用在程序中出現(xiàn)的形式和位置按函數(shù)調(diào)用在程序中出現(xiàn)的形式和
16、位置來分,可以有以下來分,可以有以下3種函數(shù)調(diào)用方式:種函數(shù)調(diào)用方式:. 函數(shù)調(diào)用語句函數(shù)調(diào)用語句把函數(shù)調(diào)用單獨作為一個語句把函數(shù)調(diào)用單獨作為一個語句 如如printf_star();這時不要求函數(shù)帶回值,只要求函數(shù)完這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作成一定的操作按函數(shù)調(diào)用在程序中出現(xiàn)的形式和位置按函數(shù)調(diào)用在程序中出現(xiàn)的形式和位置來分,可以有以下來分,可以有以下3種函數(shù)調(diào)用方式:種函數(shù)調(diào)用方式:. 函數(shù)表達式函數(shù)表達式函數(shù)調(diào)用出現(xiàn)在另一個表達式中函數(shù)調(diào)用出現(xiàn)在另一個表達式中 如如c=max(a,b);這時要求函數(shù)帶回一個確定的值以參加這時要求函數(shù)帶回一個確定的值以參加表達式的運算表
17、達式的運算按函數(shù)調(diào)用在程序中出現(xiàn)的形式和位置按函數(shù)調(diào)用在程序中出現(xiàn)的形式和位置來分,可以有以下來分,可以有以下3種函數(shù)調(diào)用方式:種函數(shù)調(diào)用方式:. 函數(shù)參數(shù)函數(shù)參數(shù)函數(shù)調(diào)用作為另一函數(shù)調(diào)用時的實參函數(shù)調(diào)用作為另一函數(shù)調(diào)用時的實參 如如mmax(a,max(b,c);其中其中max(b,c)是一次函數(shù)調(diào)用,它的是一次函數(shù)調(diào)用,它的值作為值作為max另一次調(diào)用的實參另一次調(diào)用的實參1.形式參數(shù)和實際參數(shù)形式參數(shù)和實際參數(shù)u在調(diào)用有參函數(shù)時,主調(diào)函數(shù)和被調(diào)用函在調(diào)用有參函數(shù)時,主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系數(shù)之間有數(shù)據(jù)傳遞關(guān)系u定義函數(shù)時函數(shù)名后面的變量名稱為定義函數(shù)時函數(shù)名后面的變量名稱為
18、“形形式參數(shù)式參數(shù)”(簡稱(簡稱“形參形參”)u主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面參數(shù)稱為參數(shù)稱為“實際參數(shù)實際參數(shù)”(簡稱(簡稱“實參實參”)u 實際參數(shù)可以是常量、變量或表達式實際參數(shù)可以是常量、變量或表達式2. 實參和形參間的數(shù)據(jù)傳遞實參和形參間的數(shù)據(jù)傳遞u在調(diào)用函數(shù)過程中,系統(tǒng)會把實參的值傳在調(diào)用函數(shù)過程中,系統(tǒng)會把實參的值傳遞給被調(diào)用函數(shù)的形參遞給被調(diào)用函數(shù)的形參u或者說,形參從實參得到一個值或者說,形參從實參得到一個值u該值在函數(shù)調(diào)用期間有效,可以參加被調(diào)該值在函數(shù)調(diào)用期間有效,可以參加被調(diào)函數(shù)中的運算函數(shù)中的運算 例例7.2 輸入兩個整數(shù),要
19、求輸出其中值較輸入兩個整數(shù),要求輸出其中值較大者。要求用函數(shù)來找到大數(shù)。大者。要求用函數(shù)來找到大數(shù)。解題思路:解題思路:(1)函數(shù)名應(yīng)是見名知意,今定名為函數(shù)名應(yīng)是見名知意,今定名為max(2) 由于給定的兩個數(shù)是整數(shù),返回主調(diào)函數(shù)的由于給定的兩個數(shù)是整數(shù),返回主調(diào)函數(shù)的值(即較大數(shù))應(yīng)該是整型值(即較大數(shù))應(yīng)該是整型(3)max函數(shù)應(yīng)當(dāng)有兩個參數(shù),以便從主函數(shù)接函數(shù)應(yīng)當(dāng)有兩個參數(shù),以便從主函數(shù)接收兩個整數(shù),因此參數(shù)的類型應(yīng)當(dāng)是整型收兩個整數(shù),因此參數(shù)的類型應(yīng)當(dāng)是整型先編寫先編寫max函數(shù):函數(shù):int max(int x,int y) int z; z=xy?x:y; return(z);
20、在在max函數(shù)上面函數(shù)上面,再編寫主函數(shù),再編寫主函數(shù)#include int main() int max(int x,int y); int a,b,c; printf(“two integer numbers: ); scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max is %dn”,c); 實參可以是常量、變量或表達式實參可以是常量、變量或表達式 c=max(a,b); (main函數(shù))函數(shù))int max(int x, int y) (max函數(shù))函數(shù)) int z; z=xy?x:y; return(z); 在定義函數(shù)中指定的
21、形參,在未出現(xiàn)函數(shù)在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。調(diào)用時,它們并不占內(nèi)存中的存儲單元。在發(fā)生函數(shù)調(diào)用時,函數(shù)在發(fā)生函數(shù)調(diào)用時,函數(shù)max的形參被臨的形參被臨時分配內(nèi)存單元。時分配內(nèi)存單元。2a3bxy23實參實參形參形參調(diào)用結(jié)束,形參單元被釋放調(diào)用結(jié)束,形參單元被釋放實參單元仍保留并維持原值,沒有改變實參單元仍保留并維持原值,沒有改變?nèi)绻趫?zhí)行一個被調(diào)用函數(shù)時,形參的值如果在執(zhí)行一個被調(diào)用函數(shù)時,形參的值發(fā)生改變,不會改變主調(diào)函數(shù)的實參的值發(fā)生改變,不會改變主調(diào)函數(shù)的實參的值2a3bxy23實參實參形參形參通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得通常,希望通
22、過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,這就是函數(shù)值到一個確定的值,這就是函數(shù)值(函數(shù)的返函數(shù)的返回值回值)(1)函數(shù)的返回值是通過函數(shù)中的函數(shù)的返回值是通過函數(shù)中的return語語句獲得的。句獲得的。u一個函數(shù)中可以有一個以上的一個函數(shù)中可以有一個以上的return語句,語句,執(zhí)行到哪一個執(zhí)行到哪一個return語句,哪一個就起作用語句,哪一個就起作用ureturn語句后面的括號可以不要語句后面的括號可以不要通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,這就是函數(shù)值到一個確定的值,這就是函數(shù)值(函數(shù)的返函數(shù)的返回值回值)(2) 函數(shù)值的類型。應(yīng)當(dāng)在定
23、義函數(shù)時指定函數(shù)值的類型。應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型函數(shù)值的類型通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,這就是函數(shù)值到一個確定的值,這就是函數(shù)值(函數(shù)的返函數(shù)的返回值回值)(3)在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該和和return語句中的表達式類型一致語句中的表達式類型一致u如果函數(shù)值的類型和如果函數(shù)值的類型和return語句中表達式的語句中表達式的值不一致,則以函數(shù)類型為準值不一致,則以函數(shù)類型為準例例7.3將例將例7.2稍作改動,將在稍作改動,將在max函數(shù)中定函數(shù)中定義的變量義的變量z改為改為float
24、型。函數(shù)返回值的類型型。函數(shù)返回值的類型與指定的函數(shù)類型不同,分析其處理方法。與指定的函數(shù)類型不同,分析其處理方法。解題思路:如果函數(shù)返回值的類型與指定解題思路:如果函數(shù)返回值的類型與指定的函數(shù)類型不同,按照賦值規(guī)則處理。的函數(shù)類型不同,按照賦值規(guī)則處理。#include int main() int max(float x,float y); float a,b; int c; scanf(%f,%f,&a,&b); c=max(a,b); printf(max is %dn,c); return 0; int max(float x,float y) float z; z=
25、xy?x:y; return( z ) ;1.52.62.62變?yōu)樽優(yōu)?在一個函數(shù)中調(diào)用另一個函數(shù)需要具備如在一個函數(shù)中調(diào)用另一個函數(shù)需要具備如下條件:下條件:(1) 被調(diào)用函數(shù)必須是已經(jīng)定義的函數(shù)(是庫被調(diào)用函數(shù)必須是已經(jīng)定義的函數(shù)(是庫函數(shù)或用戶自己定義的函數(shù))函數(shù)或用戶自己定義的函數(shù))(2) 如果使用庫函數(shù),應(yīng)該在本文件開頭加相如果使用庫函數(shù),應(yīng)該在本文件開頭加相應(yīng)的應(yīng)的#include指令指令(3) 如果使用自己定義的函數(shù),而該函數(shù)的位如果使用自己定義的函數(shù),而該函數(shù)的位置在調(diào)用它的函數(shù)后面,應(yīng)該聲明置在調(diào)用它的函數(shù)后面,應(yīng)該聲明 例例7.4 輸入兩個實數(shù),用一個函數(shù)求出它輸入兩個實數(shù)
26、,用一個函數(shù)求出它們之和。們之和。解題思路:用解題思路:用add函數(shù)實現(xiàn)。首先要定義函數(shù)實現(xiàn)。首先要定義add函數(shù),它為函數(shù),它為float型,它應(yīng)有兩個參型,它應(yīng)有兩個參數(shù),也應(yīng)為數(shù),也應(yīng)為float型。特別要注意的是:型。特別要注意的是:要對要對add函數(shù)進行聲明。函數(shù)進行聲明。分別編寫分別編寫add函數(shù)和函數(shù)和main函數(shù),它們組函數(shù),它們組成一個源程序文件成一個源程序文件main函數(shù)的位置在函數(shù)的位置在add函數(shù)之前函數(shù)之前在在main函數(shù)中對函數(shù)中對add函數(shù)進行聲明函數(shù)進行聲明#include int main() float add(float x, float y); floa
27、t a,b,c; printf(please enter a and b:); scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %fn,c); return 0;float add(float x,float y) float z; z=x+y; return(z); 求兩個實數(shù)之和,求兩個實數(shù)之和,函數(shù)值也是實型函數(shù)值也是實型對對add函數(shù)聲明函數(shù)聲明#include int main() float add(float x, float y); float a,b,c; printf(please enter a and b:);
28、 scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %fn,c); return 0;float add(float x,float y) float z; z=x+y; return(z); 只差一個分號只差一個分號#include int main() float add(float x, float y); float a,b,c; printf(please enter a and b:); scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %fn,c); return
29、0;float add(float x,float y) float z; z=x+y; return(z); 定義定義add函數(shù)函數(shù)調(diào)用調(diào)用add函數(shù)函數(shù)函數(shù)原型的一般形式有兩種:函數(shù)原型的一般形式有兩種:如如 float add(float x, float y); float add(float, float);原型說明可以放在文件的開頭,這時所有原型說明可以放在文件的開頭,這時所有函數(shù)都可以使用此函數(shù)函數(shù)都可以使用此函數(shù)語言的函數(shù)定義是互相平行、獨立的語言的函數(shù)定義是互相平行、獨立的即函數(shù)不能嵌套定義即函數(shù)不能嵌套定義但可以嵌套調(diào)用函數(shù)但可以嵌套調(diào)用函數(shù)即調(diào)用一個函數(shù)的過程中,又可以調(diào)
30、用另即調(diào)用一個函數(shù)的過程中,又可以調(diào)用另一個函數(shù)一個函數(shù)main函數(shù)函數(shù)調(diào)用調(diào)用a函數(shù)函數(shù)結(jié)束結(jié)束a函數(shù)函數(shù)調(diào)用調(diào)用b函數(shù)函數(shù)b函數(shù)函數(shù) 例例7.5 輸入輸入4個整數(shù),找出其中最大的數(shù)。個整數(shù),找出其中最大的數(shù)。用函數(shù)的嵌套調(diào)用來處理。用函數(shù)的嵌套調(diào)用來處理。解題思路:解題思路:umain中調(diào)用中調(diào)用max4函數(shù),找函數(shù),找4個數(shù)中最大者個數(shù)中最大者umax4中再調(diào)用中再調(diào)用max2,找兩個數(shù)中的大者,找兩個數(shù)中的大者umax4中多次調(diào)用中多次調(diào)用max2,可找,可找4個數(shù)中的大個數(shù)中的大者,然后把它作為函數(shù)值返回者,然后把它作為函數(shù)值返回main函數(shù)函數(shù)umain函數(shù)中輸出結(jié)果函數(shù)中輸出結(jié)果
31、#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4 interger numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d); printf(max=%d n,max); return 0; 主函數(shù)主函數(shù)對對max4 函數(shù)聲明函數(shù)聲明#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4
32、 interger numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d); printf(max=%d n,max); return 0; 主函數(shù)主函數(shù)輸入輸入4個整數(shù)個整數(shù)#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4 interger numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d);
33、printf(max=%d n,max); return 0; 主函數(shù)主函數(shù)調(diào)用后肯定是調(diào)用后肯定是4個數(shù)中最大者個數(shù)中最大者輸出最大者輸出最大者int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)對對max2 函數(shù)聲明函數(shù)聲明int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c);
34、m=max2(m,d); return(m); max4函數(shù)函數(shù)a,b中較大者中較大者a,b,c中較大者中較大者a,b,c,d中最大者中最大者int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)int max2(int a,int b) if(a=b) return a; else return b; max2函數(shù)函數(shù)找找a,b中較大者中較大者int max4(int a,int b,int c,int
35、d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)int max2(int a,int b) if(a=b) return a; else return b; max2函數(shù)函數(shù)return(ab?a:b);int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)int max2(
36、int a,int b) return(ab?a:b); int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)m=max2(max2(a,b),c);int max2(int a,int b) return(ab?a:b); int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m
37、=max2(m,d); return(m); max4函數(shù)函數(shù)m=max2(max2(max2(a,b),c),d);int max2(int a,int b) return(ab?a:b); int max4(int a,int b,int c,int d) int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)函數(shù)ruturn max2(max2(max2(a,b),c),d);int max2(int a,int b) return(ab?a:b); int max4(i
38、nt a,int b,int c,int d) int max2(int a,int b); ruturn max2(max2(max2(a,b),c),d);int max2(int a,int b) return(ab?a:b); #include int main() max=max4(a,b,c,d); 在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)遞歸調(diào)用用。語言的特點之一就在于允許函數(shù)的遞歸語言的特點之一就在于允許函數(shù)的遞歸調(diào)用。調(diào)用。int f(int x) int y,z; z=f(y)
39、; return (2*z); f函數(shù)函數(shù)調(diào)用調(diào)用f函數(shù)函數(shù)應(yīng)使用應(yīng)使用if語句控制結(jié)束調(diào)用語句控制結(jié)束調(diào)用直接調(diào)用本函數(shù)直接調(diào)用本函數(shù) f2函數(shù)函數(shù)調(diào)用調(diào)用f1函數(shù)函數(shù) f函數(shù)函數(shù)調(diào)用調(diào)用f函數(shù)函數(shù) f1函數(shù)函數(shù)調(diào)用調(diào)用f2函數(shù)函數(shù)直接調(diào)用本函數(shù)直接調(diào)用本函數(shù)間接調(diào)用本函數(shù)間接調(diào)用本函數(shù) 例例7.6 有有5個學(xué)生坐在一起個學(xué)生坐在一起u問第問第5個學(xué)生多少歲?他說比第個學(xué)生多少歲?他說比第4個學(xué)生大個學(xué)生大2歲歲u問第問第4個學(xué)生歲數(shù),他說比第個學(xué)生歲數(shù),他說比第3個學(xué)生大個學(xué)生大2歲歲u問第問第3個學(xué)生,又說比第個學(xué)生,又說比第2個學(xué)生大個學(xué)生大2歲歲u問第問第2個學(xué)生,說比第個學(xué)生,說比
40、第1個學(xué)生大個學(xué)生大2歲歲u最后問第最后問第1個學(xué)生,他說是個學(xué)生,他說是10歲歲u請問第請問第5個學(xué)生多大個學(xué)生多大解題思路:解題思路:u要求第個年齡,就必須先知道第個年齡要求第個年齡,就必須先知道第個年齡u要求第個年齡必須先知道第個年齡要求第個年齡必須先知道第個年齡u第個年齡又取決于第個年齡第個年齡又取決于第個年齡u第個年齡取決于第個年齡第個年齡取決于第個年齡u每個學(xué)生年齡都比其前個學(xué)生的年齡大每個學(xué)生年齡都比其前個學(xué)生的年齡大解題思路:解題思路:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10) 1
41、(2) 1()() 1(10)(nnagenagennage age(5)=age(4)+2 age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1) =10 age(2) =12 age(3) =14 age(4) =16 age(5) =18 回溯階段回溯階段 遞推階段遞推階段 age(5)=age(4)+2 age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1) =10 age(2) =12 age(3) =14 age(4) =16 age(5) =18 回回溯溯階段階段 遞推階段
42、遞推階段結(jié)束遞歸的條件結(jié)束遞歸的條件#include int main() int age(int n); printf(no.5,age:%dn,age(5); return 0; int age(int n) int c; if(n=1) c=10; else c=age(n-1)+2; return(c); age(5)輸出輸出age(5)mainc=age(4)+2age函數(shù)函數(shù)n=5c=age(3)+2age函數(shù)函數(shù)n=4c=age(1)+2age函數(shù)函數(shù)n=2c=age(2)+2age函數(shù)函數(shù)n=3c=10age函數(shù)函數(shù)n=1age(1)=10age(2)=12age(3)=14a
43、ge(4)=16age(5)=1818例例7.7 用遞歸方法求!。用遞歸方法求!。解題思路:解題思路:u求!可以用遞推方法:即從開始,乘,求!可以用遞推方法:即從開始,乘,再乘再乘一直乘到。一直乘到。u遞推法的特點是從一個已知的事實遞推法的特點是從一個已知的事實(如如1!=1)出發(fā),按一定規(guī)律推出下一個事實出發(fā),按一定規(guī)律推出下一個事實(如如2!=1!*2),再從這個新的已知的事實出發(fā),再從這個新的已知的事實出發(fā),再向下推出一個新的事實再向下推出一個新的事實(3!=3*2!)。n!=n*(n-1)!。例例7.7 用遞歸方法求!。用遞歸方法求!。解題思路:解題思路:u求!也可以用遞歸方法,即!等
44、于!求!也可以用遞歸方法,即!等于!,而!,而!,!,!u可用下面的遞歸公式表示:可用下面的遞歸公式表示:)1()!1()1 ,0(1!nnnnnn#include int main() int fac(int n); int n; int y; printf(input an integer number:); scanf(%d,&n); y=fac(n); printf(%d!=%dn,n,y); return 0;int fac(int n) int f; if(n0) printf(n0,data error!); else if(n=0 | | n=1) f=1; else
45、f=fac(n-1)*n; return(f); 注意溢出注意溢出fac(5)輸出輸出fac(5)mainf=fac(4)5fac函數(shù)函數(shù)n=5f=fac(3)4fac函數(shù)函數(shù)n=4f=fac(1)2fac函數(shù)函數(shù)n=2f=fac(2)3fac函數(shù)函數(shù)n=3f=1fac函數(shù)函數(shù)n=1fac(1)=1fac(2)=2fac(3)=6fac(4)=24fac(5)=120120 例例7.8 hanoi(漢諾)塔問題。古代有一(漢諾)塔問題。古代有一個梵塔,塔內(nèi)有個梵塔,塔內(nèi)有3個座個座a、b、c,開始時,開始時座上有座上有64個盤子,盤子大小不等,大的個盤子,盤子大小不等,大的在下,小的在上。有一
46、個老和尚想把這在下,小的在上。有一個老和尚想把這64個盤子從座移到座,個盤子從座移到座,但規(guī)定每次只允但規(guī)定每次只允許移動一個盤,且在移動過程中在許移動一個盤,且在移動過程中在3個座個座上都始終保持大盤在下上都始終保持大盤在下,小盤在上。在移,小盤在上。在移動過程中可以利用動過程中可以利用b座。要求編程序輸出座。要求編程序輸出移動一盤子的步驟。移動一盤子的步驟。abc解題思路:解題思路:u要把要把64個盤子從個盤子從a座移動到座移動到c座,需要移動大座,需要移動大約約264 次盤子。一般人是不可能直接確定移動次盤子。一般人是不可能直接確定移動盤子的每一個具體步驟的盤子的每一個具體步驟的u老和尚
47、會這樣想:假如有另外一個和尚能有辦老和尚會這樣想:假如有另外一個和尚能有辦法將上面法將上面63個盤子從一個座移到另一座。那個盤子從一個座移到另一座。那么,問題就解決了。此時老和尚只需這樣做:么,問題就解決了。此時老和尚只需這樣做:解題思路:解題思路:(1) 命令第命令第2個和尚將個和尚將63個盤子從個盤子從a座移到座移到b座座(2) 自己將自己將1個盤子(最底下的、最大的盤子)個盤子(最底下的、最大的盤子)從從a座移到座移到c座座(3) 再命令第再命令第2個和尚將個和尚將63個盤子從個盤子從b座移到座移到c座座abc將將63個從個從a到到b第第1個和尚的做法個和尚的做法abc將將63個從個從a
48、到到b第第1個和尚的做法個和尚的做法abc將將1個從個從a到到c第第1個和尚的做法個和尚的做法abc將將1個從個從a到到c第第1個和尚的做法個和尚的做法abc將將63個從個從b到到c第第1個和尚的做法個和尚的做法abc將將63個從個從b到到c第第1個和尚的做法個和尚的做法abc將將62個從個從a到到c第第2個和尚的做法個和尚的做法abc將將62個從個從a到到c第第2個和尚的做法個和尚的做法abc將將1個從個從a到到b第第2個和尚的做法個和尚的做法abc將將1個從個從a到到b第第2個和尚的做法個和尚的做法abc將將62個從個從c到到b第第2個和尚的做法個和尚的做法abc將將62個從個從c到到b第
49、第2個和尚的做法個和尚的做法第第3個和尚的做法個和尚的做法第第4個和尚的做法個和尚的做法第第5個和尚的做法個和尚的做法第第6個和尚的做法個和尚的做法第第7個和尚的做法個和尚的做法第第63個和尚的做法個和尚的做法第第64個和尚僅做:將個和尚僅做:將1個從個從a移到移到cabc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將2個盤子從個盤子從a移到移到babc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將2個盤子從個盤子從a移到移到babc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將1個盤子從個盤子從a移到移到cabc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將1
50、個盤子從個盤子從a移到移到cabc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將2個盤子從個盤子從b移到移到cabc將將3個盤子從個盤子從a移到移到c的全過程的全過程將將2個盤子從個盤子從b移到移到cabc將將2個盤子從個盤子從a移到移到b的過程的過程將將1個盤子從個盤子從a移到移到cabc將將2個盤子從個盤子從a移到移到b的過程的過程將將1個盤子從個盤子從a移到移到cabc將將2個盤子從個盤子從a移到移到b的過程的過程將將1個盤子從個盤子從a移到移到babc將將2個盤子從個盤子從a移到移到b的過程的過程將將1個盤子從個盤子從a移到移到babc將將2個盤子從個盤子從a移到移到b的過程的
51、過程將將1個盤子從個盤子從c移到移到babc將將2個盤子從個盤子從a移到移到b的過程的過程將將1個盤子從個盤子從c移到移到babc將將2個盤子從個盤子從b移到移到c的過程的過程abc將將2個盤子從個盤子從b移到移到c的過程的過程abc將將2個盤子從個盤子從b移到移到c的過程的過程abc將將2個盤子從個盤子從b移到移到c的過程的過程由上面的分析可知:將由上面的分析可知:將n個盤子從個盤子從a座移座移到到c座可以分解為以下座可以分解為以下3個步驟:個步驟:(1) 將將a上上n-1個盤借助個盤借助c座先移到座先移到b座上座上(2) 把把a座上剩下的一個盤移到座上剩下的一個盤移到c座上座上(3) 將將
52、n-1個盤從個盤從b座借助于座移到座借助于座移到c座上座上可以將第可以將第(1)步和第步和第(3)步表示為:步表示為:u將將“one”座上座上n-1個盤移到個盤移到“two”座座(借助借助“three”座座)。u在第在第(1)步和第步和第(3)步中,步中,one 、two、three和和a、b、c的對應(yīng)關(guān)系不同。的對應(yīng)關(guān)系不同。u對第對第(1)步,對應(yīng)關(guān)系是步,對應(yīng)關(guān)系是one對應(yīng)對應(yīng)a,two對應(yīng)對應(yīng)b,three對應(yīng)對應(yīng)c。u對第對第(3)步,對應(yīng)關(guān)系是步,對應(yīng)關(guān)系是one對應(yīng)對應(yīng)b,two對應(yīng)對應(yīng)c,three對應(yīng)對應(yīng)a。把上面把上面3個步驟分成兩類操作:個步驟分成兩類操作:(1) 將將
53、n-1個盤從一個座移到另一個座上(個盤從一個座移到另一個座上(n1)。這就是大和尚讓小和尚做的工作,)。這就是大和尚讓小和尚做的工作,它是一個遞歸的過程,即和尚將任務(wù)層層下它是一個遞歸的過程,即和尚將任務(wù)層層下放,直到第放,直到第64個和尚為止。個和尚為止。(2) 將將1個盤子從一個座上移到另一座上。這個盤子從一個座上移到另一座上。這是大和尚自己做的工作。是大和尚自己做的工作。編寫程序。編寫程序。u用用hanoi函數(shù)實現(xiàn)第函數(shù)實現(xiàn)第1類操作(即模擬小和類操作(即模擬小和尚的任務(wù))尚的任務(wù))u用用move函數(shù)實現(xiàn)第函數(shù)實現(xiàn)第2類操作(模擬大和尚類操作(模擬大和尚自己移盤)自己移盤)u函數(shù)調(diào)用函數(shù)
54、調(diào)用hanoi(n,one,two.three)表示表示將將n個盤子從個盤子從“one”座移到座移到“three”座的座的過程過程(借助借助“two”座座)u函數(shù)調(diào)用函數(shù)調(diào)用move(x,y)表示將表示將1個盤子從個盤子從x 座座移到移到y(tǒng) 座的過程。座的過程。x和和y是代表是代表a、b、c座之座之一,根據(jù)每次不同情況分別取一,根據(jù)每次不同情況分別取a、b、c代入代入#include int main() void hanoi(int n,char one, char two,char three); int m; printf(“the number of diskes:); scanf(%
55、d,&m); printf(move %d diskes:n,m); hanoi(m,a,b,c);void hanoi(int n,char one,char two, char three) void move(char x,char y); if(n=1) move(one,three); else hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); void move(char x,char y) printf(%c-%cn,x,y); 7.7.1數(shù)組元素作函數(shù)實參數(shù)組元素作函數(shù)實參7.7.2
56、數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù)7.7.3多維數(shù)組名作函數(shù)參數(shù)多維數(shù)組名作函數(shù)參數(shù) 例例7.9 輸入輸入10個數(shù),要求輸出其中值個數(shù),要求輸出其中值最大的元素和該數(shù)是第幾個數(shù)。最大的元素和該數(shù)是第幾個數(shù)。解題思路:解題思路:u定義數(shù)組定義數(shù)組a,用來存放,用來存放10個數(shù)個數(shù)u設(shè)計函數(shù)設(shè)計函數(shù)max,用來求兩個數(shù)中的大者,用來求兩個數(shù)中的大者u在主函數(shù)中定義變量在主函數(shù)中定義變量m,初值為,初值為a0,每次調(diào)用每次調(diào)用max函數(shù)后的返回值存放在函數(shù)后的返回值存放在m中中u用用“打擂臺打擂臺”算法,依次將數(shù)組元素算法,依次將數(shù)組元素a1到到a9與與m比較,最后得到的比較,最后得到的m值值就是就是
57、10個數(shù)中的最大者個數(shù)中的最大者#include int main() int max(int x,int y); int a10,m,n,i; printf(“10 integer numbers:n); for(i=0;i10;i+) scanf(%d,&ai); printf(n); for(i=1,m=a0,n=0;im) m=max(m,ai); n=i; printf(“l(fā)argest number is %dn,m); printf(“%dth number.n“,n+1);int max(int x,int y) return(xy?x:y); 除了可以用數(shù)組元素作為函
58、數(shù)參數(shù)外,除了可以用數(shù)組元素作為函數(shù)參數(shù)外,還可以用數(shù)組名作函數(shù)參數(shù)還可以用數(shù)組名作函數(shù)參數(shù)(包括實參包括實參和形參和形參)用數(shù)組元素作實參時,向形參變量傳遞用數(shù)組元素作實參時,向形參變量傳遞的是數(shù)組元素的值的是數(shù)組元素的值用數(shù)組名作函數(shù)實參時,向形參用數(shù)組名作函數(shù)實參時,向形參 傳遞傳遞的是數(shù)組首元素的地址的是數(shù)組首元素的地址 例例7.10 有一個一維數(shù)組有一個一維數(shù)組score,內(nèi)放,內(nèi)放10個學(xué)生成績,求平均成績。個學(xué)生成績,求平均成績。解題思路:解題思路:u用函數(shù)用函數(shù)average求平均成績,用數(shù)組名求平均成績,用數(shù)組名作為函數(shù)實參,形參也用數(shù)組名作為函數(shù)實參,形參也用數(shù)組名u在在a
59、verage函數(shù)中引用各數(shù)組元素,求函數(shù)中引用各數(shù)組元素,求平均成績并返回平均成績并返回main函數(shù)函數(shù)#include int main() float average(float array10); float score10,aver; int i; printf(input 10 scores:n); for(i=0;i10;i+) scanf(%f,&scorei); printf(n); aver=average(score); printf(%5.2fn,aver); return 0; 定義實參數(shù)組定義實參數(shù)組float average(float array10) i
60、nt i; float aver,sum=array0; for(i=1;i10;i+) sum=sum+arrayi; aver=sum/10; return(aver);定義形參數(shù)組定義形參數(shù)組相當(dāng)于相當(dāng)于score0相當(dāng)于相當(dāng)于scorei 例例7.11 有兩個班級,分別有有兩個班級,分別有35名和名和30名學(xué)生,調(diào)用一個名學(xué)生,調(diào)用一個average函數(shù),分別求函數(shù),分別求這兩個班的學(xué)生的平均成績。這兩個班的學(xué)生的平均成績。解題思路:解題思路:u需要解決怎樣用同一個函數(shù)求兩個不同長度的需要解決怎樣用同一個函數(shù)求兩個不同長度的數(shù)組的平均值的問題數(shù)組的平均值的問題u定義定義average函數(shù)時不指定數(shù)組的長度,在函數(shù)時不指定數(shù)組的長度,在形參表中增加一個整型變量形參表中增加一個整型變量iu從主函數(shù)把數(shù)組實際長度從實參傳遞給形參從主函數(shù)把數(shù)組實際長度從實參傳遞給形參iu這個這個i用來
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年八年級統(tǒng)編版語文寒假預(yù)習(xí) 第05講 《莊子》二則
- 【全程復(fù)習(xí)方略】2020年數(shù)學(xué)文(廣西用)課時作業(yè):第六章-第四節(jié)含絕對值的不等式
- 【2021屆備考】2020全國名校物理試題分類解析匯編(11月第二期)D5-萬有引力與天體運動
- 【創(chuàng)新設(shè)計】2021高考英語(四川專用)二輪復(fù)習(xí)-第4部分-閱讀理解解答技巧-專題1-
- 《精準醫(yī)療》課件
- 2021杭州市高考英語閱讀理解、完形填空小練(2)答案(四月)
- 【2021屆備考】2020全國名?;瘜W(xué)試題分類解析匯編(11月第二期):N-單元物質(zhì)結(jié)構(gòu)與性質(zhì)
- 五年級數(shù)學(xué)(小數(shù)四則混合運算)計算題專項練習(xí)及答案
- 【2021屆備考】2020全國名校物理試題分類解析匯編(11月第二期)L2-法拉第電磁感應(yīng)定律
- M2工藝部周工作總結(jié)Week
- CNC數(shù)控編程述職報告
- 生產(chǎn)車間環(huán)境改善方案
- 2024年高考物理真題分類匯編(全一本附答案)
- 2024-2025年上海中考英語真題及答案解析
- 新疆喀什地區(qū)巴楚縣2023-2024學(xué)年九年級上學(xué)期1月期末化學(xué)試題
- 供應(yīng)商可持續(xù)發(fā)展計劃
- 方案所需費用測算
- 《吉利集團財務(wù)共享中心的優(yōu)化研究》11000字
- 生姜的產(chǎn)地分布
- 普通高中學(xué)業(yè)水平合格性考試(會考)語文試題(附答案)
- 統(tǒng)編語文八上文言文過關(guān)小測驗-《愚公移山》
評論
0/150
提交評論