第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計_第1頁
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計_第2頁
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計_第3頁
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計_第4頁
第7章用函數(shù)實現(xiàn)模塊化程序設(shè)計_第5頁
已閱讀5頁,還剩177頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、7.1 函數(shù)是什么函數(shù)是什么7.2 函數(shù)的定義和調(diào)用函數(shù)的定義和調(diào)用7.3 函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用7.4 數(shù)組作為函數(shù)參數(shù)數(shù)組作為函數(shù)參數(shù)7.5 變量的作用域和生存期變量的作用域和生存期7.6 內(nèi)部函數(shù)和外部函數(shù)內(nèi)部函數(shù)和外部函數(shù)7.7 提高部分提高部分P1687.1 函數(shù)是什么函數(shù)是什么如果程序的功能比較多,規(guī)模比較大,如果程序的功能比較多,規(guī)模比較大,把所有的程序代碼都寫在一個主函數(shù)把所有的程序代碼都寫在一個主函數(shù)中,就會使主函數(shù)變得龐雜、頭緒不中,就會使主函數(shù)變得龐雜、頭緒不清,使閱讀和維護程序變得困難。清,使閱讀和維護程序變得困難。P168有時程序中要多次實現(xiàn)

2、某一功能,就有時程序中要多次實現(xiàn)某一功能,就需要多次重復編寫實現(xiàn)此功能的程序需要多次重復編寫實現(xiàn)此功能的程序代碼。這使程序冗長,不精煉。代碼。這使程序冗長,不精煉。7.1 函數(shù)是什么函數(shù)是什么P168采用采用“組裝組裝”的辦法簡化程序設(shè)計過程的辦法簡化程序設(shè)計過程事先編好一批函數(shù)實現(xiàn)各種不同的功能事先編好一批函數(shù)實現(xiàn)各種不同的功能用到什么用到什么函數(shù)函數(shù)就直接裝就直接裝使用使用就可以就可以這就是這就是模塊化的程序設(shè)計模塊化的程序設(shè)計7.1 函數(shù)是什么函數(shù)是什么P168函數(shù)就是功能函數(shù)就是功能(Function)每一個函數(shù)用來實現(xiàn)一個特定的功能每一個函數(shù)用來實現(xiàn)一個特定的功能函數(shù)的名字應反映其代

3、表的功能函數(shù)的名字應反映其代表的功能7.1 函數(shù)是什么函數(shù)是什么P168在設(shè)計一個較大的程序時,往往把它分在設(shè)計一個較大的程序時,往往把它分為若干個程序模塊,每一個模塊包括一為若干個程序模塊,每一個模塊包括一個或多個函數(shù),每個函數(shù)實現(xiàn)一個特定個或多個函數(shù),每個函數(shù)實現(xiàn)一個特定的功能。的功能。7.1 函數(shù)是什么函數(shù)是什么P168一個程序可由一個主函數(shù)和若干個其一個程序可由一個主函數(shù)和若干個其他函數(shù)構(gòu)成。由主函數(shù)調(diào)用其他函數(shù),他函數(shù)構(gòu)成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次可以被一個或多個函數(shù)調(diào)用任意多次7.1

4、函數(shù)是什么函數(shù)是什么P1687.1 函數(shù)是什么函數(shù)是什么P168mainabcfghdeie除了可以使用庫函數(shù)外,除了可以使用庫函數(shù)外,還可以還可以編寫一編寫一些些本領(lǐng)域或本單位常用到一些專用函數(shù),本領(lǐng)域或本單位常用到一些專用函數(shù),供本領(lǐng)域或本單位的人員使用供本領(lǐng)域或本單位的人員使用。、。、在程序設(shè)計中要善于利用函數(shù),可以減在程序設(shè)計中要善于利用函數(shù),可以減少各人重復編寫程序段的工作量,同時少各人重復編寫程序段的工作量,同時可以方便地實現(xiàn)模塊化的程序設(shè)計。可以方便地實現(xiàn)模塊化的程序設(shè)計。7.1 函數(shù)是什么函數(shù)是什么P1687.1 函數(shù)是什么函數(shù)是什么P168例例7.1 輸出以下的結(jié)果,用函數(shù)調(diào)

5、用實現(xiàn)。輸出以下的結(jié)果,用函數(shù)調(diào)用實現(xiàn)。 * How do you do! *7.1 函數(shù)是什么函數(shù)是什么P168解題思路:解題思路:u在輸出的文字上下分別有一行在輸出的文字上下分別有一行“*”號,顯然不號,顯然不必重復寫這段代碼,用一個函數(shù)必重復寫這段代碼,用一個函數(shù)print_star來來實現(xiàn)輸出一行實現(xiàn)輸出一行“*”號的功能。號的功能。u再寫一個再寫一個print_message函數(shù)來輸出中間一函數(shù)來輸出中間一行文字信息行文字信息u用主函數(shù)分別調(diào)用這兩個函數(shù)用主函數(shù)分別調(diào)用這兩個函數(shù)#include void main()void print_star(); void print_mes

6、sage(); print_star(); print_message(); print_star(); void print_star () printf(*n);void print_message() printf( How do you do!n);輸出輸出18個個*輸出一行文字輸出一行文字#include void main()void print_star(); void print_message(); print_star(); print_message(); print_star(); void print_star () printf(*n);void print_mes

7、sage() printf( How do you do!n);聲明函數(shù)聲明函數(shù)定義函數(shù)定義函數(shù)說明:說明:(1) 一個程序由一個或多個程序模塊組成一個程序由一個或多個程序模塊組成,每一個程序模塊作為一個源程序文件。對于較每一個程序模塊作為一個源程序文件。對于較大的程序,一般不把所有內(nèi)容全放在一個源程大的程序,一般不把所有內(nèi)容全放在一個源程序文件中,而是將它們分別放在若干個源文件序文件中,而是將它們分別放在若干個源文件中,由若干個源程序文件組成一個中,由若干個源程序文件組成一個C程序。這程序。這樣便于分別編寫、分別編譯,提高調(diào)試效率。樣便于分別編寫、分別編譯,提高調(diào)試效率。一個源程序文件可以為

8、多個一個源程序文件可以為多個C程序所調(diào)用。程序所調(diào)用。說明:說明:(2) 一個源程序文件由一個或多個函數(shù)以及其一個源程序文件由一個或多個函數(shù)以及其他有關(guān)內(nèi)容組成。一個源程序文件是一個編譯他有關(guān)內(nèi)容組成。一個源程序文件是一個編譯單位,在程序編譯時是以源程序文件為單位進單位,在程序編譯時是以源程序文件為單位進行編譯的,而不是以函數(shù)為單位進行編譯的。行編譯的,而不是以函數(shù)為單位進行編譯的。說明:說明:(3) 不論不論main函數(shù)出現(xiàn)在什么位置,函數(shù)出現(xiàn)在什么位置,總是從總是從main函數(shù)開始執(zhí)行函數(shù)開始執(zhí)行。如。如果果在在main函數(shù)中調(diào)函數(shù)中調(diào)用其他函數(shù),在調(diào)用后流程返回到用其他函數(shù),在調(diào)用后流程

9、返回到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ù)。main函數(shù)是函數(shù)是由由系統(tǒng)調(diào)用的。系統(tǒng)調(diào)用的。說明:說明: (5) 從用戶使用的角度看,函數(shù)有兩種。從用戶使用的角度看,函數(shù)有兩種。u庫函數(shù)庫函數(shù),它是由系統(tǒng)提供的,用戶不必自己定,它

10、是由系統(tǒng)提供的,用戶不必自己定義而直接使用它們。應該說明,不同的義而直接使用它們。應該說明,不同的C語言語言編譯系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些編譯系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些不同,當然許多基本的函數(shù)是共同的。不同,當然許多基本的函數(shù)是共同的。u用戶用戶自己自己定義的函數(shù)定義的函數(shù)。它是用以解決用戶專門。它是用以解決用戶專門需要的函數(shù)。需要的函數(shù)。說明:說明:(6) 從函數(shù)的形式看,函數(shù)分兩類。從函數(shù)的形式看,函數(shù)分兩類。 無參函數(shù)無參函數(shù)。函數(shù)沒有參數(shù),一般用來執(zhí)行。函數(shù)沒有參數(shù),一般用來執(zhí)行固定的一組操作。無參函數(shù)可以帶回或不帶回固定的一組操作。無參函數(shù)可以帶回或不帶回函數(shù)值,

11、但一般以不帶回函數(shù)值的居多。函數(shù)值,但一般以不帶回函數(shù)值的居多。 有參函數(shù)有參函數(shù)。在調(diào)用函數(shù)時,要給出實參。在調(diào)用函數(shù)時,要給出實參。主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時,通過參數(shù)向被主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時,通過參數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù),一般情況下,執(zhí)行被調(diào)用調(diào)用函數(shù)傳遞數(shù)據(jù),一般情況下,執(zhí)行被調(diào)用函數(shù)時會得到一個函數(shù)值,供主調(diào)函數(shù)使用。函數(shù)時會得到一個函數(shù)值,供主調(diào)函數(shù)使用。7.2 函數(shù)的定義和調(diào)用函數(shù)的定義和調(diào)用7.2.1 為什么要定義函數(shù)為什么要定義函數(shù)7.2.2 函數(shù)定義函數(shù)定義7.2.3 函數(shù)的調(diào)用函數(shù)的調(diào)用7.2.4 對被調(diào)用函數(shù)的聲明和函數(shù)原型對被調(diào)用函數(shù)的聲明和函數(shù)原型P170C語

12、言要求,在程序中用到的所有函數(shù),語言要求,在程序中用到的所有函數(shù),必須必須“先定義,后使用先定義,后使用”指定指定函數(shù)函數(shù)名字名字、函數(shù)、函數(shù)返回值類型返回值類型、函數(shù)、函數(shù)實現(xiàn)的實現(xiàn)的功能功能以及以及參數(shù)的個數(shù)與類型參數(shù)的個數(shù)與類型,將,將這些信息通知編譯系統(tǒng)。這些信息通知編譯系統(tǒng)。7.2.1 為什么要定義函數(shù)為什么要定義函數(shù)P170指定函數(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ù)的功能。這是最

13、重要的,這是指定函數(shù)的功能。這是最重要的,這是在函數(shù)體中解決的在函數(shù)體中解決的7.2.1 為什么要定義函數(shù)為什么要定義函數(shù)P170如果程序中要調(diào)用庫函數(shù),只需用如果程序中要調(diào)用庫函數(shù),只需用#include指令把有關(guān)的頭文件包含到指令把有關(guān)的頭文件包含到本文件模塊中即可。本文件模塊中即可。如果想使用庫函數(shù)中沒有的函數(shù),需要如果想使用庫函數(shù)中沒有的函數(shù),需要程序設(shè)計者在程序中自己定義。程序設(shè)計者在程序中自己定義。7.2.1 為什么要定義函數(shù)為什么要定義函數(shù)P1707.2.2 函數(shù)定義函數(shù)定義1.怎樣定義無參函數(shù)怎樣定義無參函數(shù)函數(shù)名后面圓括號中空的,沒有參數(shù)函數(shù)名后面圓括號中空的,沒有參數(shù)定義無

14、參函數(shù)的一般形式為定義無參函數(shù)的一般形式為: 類型名類型名 函數(shù)名()函數(shù)名() 函數(shù)體函數(shù)體 P171包括聲明部分和包括聲明部分和語句部分語句部分指定函數(shù)指定函數(shù)值的類型值的類型7.2.2 函數(shù)定義函數(shù)定義1.怎樣定義無參函數(shù)怎樣定義無參函數(shù)函數(shù)名后面圓括號中空的,沒有參數(shù)函數(shù)名后面圓括號中空的,沒有參數(shù)定義無參函數(shù)的一般形式為定義無參函數(shù)的一般形式為: 類型名類型名 函數(shù)名()函數(shù)名() 函數(shù)體函數(shù)體 P171表示不需要表示不需要帶回函數(shù)值帶回函數(shù)值void7.2.2 函數(shù)定義函數(shù)定義2. 怎樣定義有參函數(shù)怎樣定義有參函數(shù)定義有參函數(shù)的一般形式為定義有參函數(shù)的一般形式為: 類型標識符類型標

15、識符 函數(shù)名(形式參數(shù)表列)函數(shù)名(形式參數(shù)表列) 函數(shù)體函數(shù)體 P1717.2.2 函數(shù)定義函數(shù)定義2. 怎樣定義有參函數(shù)怎樣定義有參函數(shù) int max (int x,int y) int z; if(xy) z=x; else z=y; return(z); P171函數(shù)的功能函數(shù)的功能是什么是什么?求求x和和y二者二者中大者中大者7.2.3 函數(shù)的調(diào)用函數(shù)的調(diào)用1.調(diào)用無參函數(shù)的形式調(diào)用無參函數(shù)的形式 函數(shù)名函數(shù)名() 如如print_star()2. 調(diào)用無參函數(shù)的形式調(diào)用無參函數(shù)的形式 函數(shù)名(實參表列)函數(shù)名(實參表列)如如max(a,b)P172如果有多個如果有多個參數(shù),用逗參

16、數(shù),用逗號隔開號隔開例例7.2 輸入兩個整數(shù),輸出二者中的輸入兩個整數(shù),輸出二者中的大者。要求在主函數(shù)中輸入兩個整大者。要求在主函數(shù)中輸入兩個整數(shù),用一個函數(shù)數(shù),用一個函數(shù)max求出其中的大求出其中的大者,并在主函數(shù)中輸出此值。者,并在主函數(shù)中輸出此值。解題思路:解題思路:題目要求用一個題目要求用一個max函數(shù)實現(xiàn)比較兩個函數(shù)實現(xiàn)比較兩個整數(shù),并將得到的大數(shù)帶回主函數(shù)。顯整數(shù),并將得到的大數(shù)帶回主函數(shù)。顯然,二個整數(shù)中的大者也應該是整數(shù),然,二個整數(shù)中的大者也應該是整數(shù),因此因此max函數(shù)應當是函數(shù)應當是int型型。兩個數(shù)是在主函數(shù)中輸入的,在兩個數(shù)是在主函數(shù)中輸入的,在max函函數(shù)中進行比較

17、,因此應該定義為有參函數(shù)中進行比較,因此應該定義為有參函數(shù),在函數(shù)調(diào)用時進行數(shù)據(jù)的傳遞數(shù),在函數(shù)調(diào)用時進行數(shù)據(jù)的傳遞。#include int max(int x,int y) int z; if (xy) z=x; else z=y; return(z); 參數(shù)類型參數(shù)類型函數(shù)類型函數(shù)類型定義函數(shù)定義函數(shù)定義函數(shù)內(nèi)定義函數(shù)內(nèi)使用的變量使用的變量#include void main() int max(int x,int y); int a,b,c; printf(”please input two number:”); scanf(“%d,%d”,&a,&b); c = ma

18、x(a,b); printf(“max is %dn”,c); int max(int x,int y) int z; if (xy) z=x; else z=y; return(z); 調(diào)用函數(shù)調(diào)用函數(shù) c=max(a,b); (main函數(shù))函數(shù))int max(int x, int y) (max函數(shù))函數(shù)) int z; z=xy?x:y; return(z); #include void main() int max(int x,int y); int a,b,c; printf(”please input two number:”); scanf(“%d,%d”,&a,&a

19、mp;b); c = max(a,b); printf(“max is %dn”,c); int max(int x,int y) int z; if (xy) z=x; else z=y; return(z); if (xy) return(x);else return(y);#include void main() int max(int x,int y); int a,b,c; printf(”please input two number:”); scanf(“%d,%d”,&a,&b); c = max(a,b); printf(“max is %dn”,c); in

20、t max(int x,int y) int z; if (xy) z=x; else z=y; return(z); 形式參數(shù)形式參數(shù)實際參數(shù)實際參數(shù)函數(shù)調(diào)用的函數(shù)調(diào)用的過程過程:在定義函數(shù)中指定的形參,在未出現(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實參實參形參形參函數(shù)調(diào)用的函數(shù)調(diào)用的過程過程:2a3bxy23實參實參形參形參調(diào)用結(jié)束,形參單元被釋放調(diào)用結(jié)束,形參單元被釋放實參單元仍保留并維持原值,沒有

21、改變實參單元仍保留并維持原值,沒有改變?nèi)绻趫?zhí)行一個被調(diào)用函數(shù)時,形參的值如果在執(zhí)行一個被調(diào)用函數(shù)時,形參的值發(fā)生改變,不會改變主調(diào)函數(shù)的實參的值發(fā)生改變,不會改變主調(diào)函數(shù)的實參的值調(diào)用函數(shù)的調(diào)用函數(shù)的方式方式:按函數(shù)在程序中出現(xiàn)的位置來分,可以有按函數(shù)在程序中出現(xiàn)的位置來分,可以有以下以下3種函數(shù)調(diào)用方式種函數(shù)調(diào)用方式. 函數(shù)語句函數(shù)語句調(diào)用沒有返回值的函數(shù),函數(shù)調(diào)用單獨作調(diào)用沒有返回值的函數(shù),函數(shù)調(diào)用單獨作為一個語句為一個語句 如例如例7.1中的中的“print_star();”調(diào)用函數(shù)的調(diào)用函數(shù)的方式方式:按函數(shù)在程序中出現(xiàn)的位置來分,可以有按函數(shù)在程序中出現(xiàn)的位置來分,可以有以下以下3

22、種函數(shù)調(diào)用方式種函數(shù)調(diào)用方式. 函數(shù)表達式函數(shù)表達式函數(shù)出現(xiàn)在一個表達式中,這種表達式稱函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為函數(shù)表達式為函數(shù)表達式 如例如例7.2中的中的“c=max(a,b);”調(diào)用函數(shù)的調(diào)用函數(shù)的方式方式:按函數(shù)在程序中出現(xiàn)的位置來分,可以有按函數(shù)在程序中出現(xiàn)的位置來分,可以有以下以下3種函數(shù)調(diào)用方式種函數(shù)調(diào)用方式. 函數(shù)參數(shù)函數(shù)參數(shù)函數(shù)調(diào)用作為一個函數(shù)的實參函數(shù)調(diào)用作為一個函數(shù)的實參 如如printf (%d, max (a,b);7.2.4 對被調(diào)用函數(shù)的聲明對被調(diào)用函數(shù)的聲明和函數(shù)原型和函數(shù)原型P175在一個函數(shù)中調(diào)用另一個函數(shù)需要具備如在一個函數(shù)中調(diào)用另一個函數(shù)需

23、要具備如下條件:下條件:(1) 被調(diào)用函數(shù)必須是已經(jīng)定義的函數(shù)(是庫被調(diào)用函數(shù)必須是已經(jīng)定義的函數(shù)(是庫函數(shù)或用戶自己定義的函數(shù))函數(shù)或用戶自己定義的函數(shù))。(2) 如果使用庫函數(shù),應該在本文件開頭如果使用庫函數(shù),應該在本文件開頭加相加相應的應的#include指令指令。(3) 如果使用自己定義的函數(shù),而該函數(shù)的位如果使用自己定義的函數(shù),而該函數(shù)的位置在調(diào)用它的函數(shù)后面置在調(diào)用它的函數(shù)后面,應該應該進行函數(shù)進行函數(shù)聲明聲明7.2.4 對被調(diào)用函數(shù)的聲明對被調(diào)用函數(shù)的聲明和函數(shù)原型和函數(shù)原型P175函數(shù)原型的一般形式有兩種函數(shù)原型的一般形式有兩種:如如 int max(int x,int y);

24、 int max(int,int);原型說明可以放在文件的開頭,這時原型說明可以放在文件的開頭,這時本本文文件件中中所有函數(shù)都可以使用此函數(shù)所有函數(shù)都可以使用此函數(shù)7.3 函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)的嵌套調(diào)用和遞歸調(diào)用P1777.3.1 函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用7.3.2 函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用7.3.1 函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用調(diào)用一個函數(shù)的過程中,又調(diào)用一個函數(shù)的過程中,又可以可以調(diào)調(diào)用另一個函數(shù)用另一個函數(shù)P1777.3.1 函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用P177main函數(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.3 輸入輸入4個整數(shù),

25、找出其中最大的數(shù)。個整數(shù),找出其中最大的數(shù)。用用一個一個函數(shù)來函數(shù)來實現(xiàn)實現(xiàn)。解題思路:解題思路:u定義定義max_4函數(shù),找函數(shù),找4個數(shù)中最大者個數(shù)中最大者umax_4中再多次調(diào)用中再多次調(diào)用max,找,找4個數(shù)中的大個數(shù)中的大者,然后把它作為函數(shù)值返回者,然后把它作為函數(shù)值返回main函數(shù)函數(shù)#include void main() int max_4(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); m

26、ax=max_4(a,b,c,d); printf(max=%d n,max); 主函數(shù)主函數(shù)對對max_4 函數(shù)聲明函數(shù)聲明#include void main() int max_4(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=max_4(a,b,c,d); printf(max=%d n,max); 主函數(shù)主函數(shù)輸入輸入4個整數(shù)個整數(shù)#include void main() int max_

27、4(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=max_4(a,b,c,d); printf(max=%d n,max); 主函數(shù)主函數(shù)調(diào)用后肯定是調(diào)用后肯定是4個數(shù)中最大者個數(shù)中最大者輸出最大者輸出最大者int max_4(int a,int b,int c,int d) int max(int a,int b); int m; m=max(a,b); m=max(m,c); m=max(m,d

28、); return(m); max_4函數(shù)函數(shù)對對max 函數(shù)聲明函數(shù)聲明int max_4(int a,int b,int c,int d) int max(int a,int b); int m; m=max(a,b); m=max(m,c); m=max(m,d); return(m); max_4函數(shù)函數(shù)a,b中較大者中較大者a,b,c中較大者中較大者a,b,c,d中最大者中最大者int max_4(int a,int b,int c,int d) int max(int a,int b); int m; m=max(a,b); m=max(m,c); m=max(m,d); retu

29、rn(m); max_4函數(shù)函數(shù)int max(int x,int y) if(xy) return x; else return y; max函數(shù)函數(shù)找找x,y中較大者中較大者int max_4(int a,int b,int c,int d) int max(int a,int b); int m; m=max(a,b); m=max(m,c); m=max(m,d); return(m); max_4函數(shù)函數(shù)int max(int x,int y) if(xy) return x; else return y; max函數(shù)函數(shù)return(xy?x:y);int max_4(int a,

30、int b,int c,int d)int max(int a,int b); m=max(a,b);m=max(m,c);m=max(m,d); return(m); int max(int x,int y) return(xy?x:y); #include void main() max=max_4(a,b,c,d); 7.3.2 函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用P179在調(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)

31、用。7.3.2 函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用P179 f2函數(shù)函數(shù)調(diào)用調(diào)用f1函數(shù)函數(shù) int f(int x) int y,z; z=f(y); return (2*z); f函數(shù)函數(shù)調(diào)用調(diào)用f函數(shù)函數(shù) f1函數(shù)函數(shù)調(diào)用調(diào)用f2函數(shù)函數(shù)應使用應使用if語句控制結(jié)束調(diào)用語句控制結(jié)束調(diào)用直接調(diào)用本函數(shù)直接調(diào)用本函數(shù)間接調(diào)用本函數(shù)間接調(diào)用本函數(shù) 例例7.6 有有5個學生坐在一起個學生坐在一起u問第問第5個學生多少歲?他說比第個學生多少歲?他說比第4個學生大個學生大2歲歲u問第問第4個學生歲數(shù),他說比第個學生歲數(shù),他說比第3個學生大個學生大2歲歲u問第問第3個學生,又說比第個學生,又說比第2個學生大

32、個學生大2歲歲u問第問第2個學生,說比第個學生,說比第1個學生大個學生大2歲歲u最后問第最后問第1個學生,他說是個學生,他說是10歲歲u請問第請問第5個學生多大個學生多大解題思路:解題思路:u要求第個年齡,就必須先知道第個年齡要求第個年齡,就必須先知道第個年齡u要求第個年齡必須先知道第個年齡要求第個年齡必須先知道第個年齡u第個年齡又取決于第個年齡第個年齡又取決于第個年齡u第個年齡取決于第個年齡第個年齡取決于第個年齡u每個學生年齡都比其前個學生的年齡大每個學生年齡都比其前個學生的年齡大解題思路:解題思路:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2a

33、ge(2)=age(1)+2age(1)=10) 1(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) =1

34、6 age(5) =18 回回溯溯階段階段 遞推階段遞推階段結(jié)束遞歸的條件結(jié)束遞歸的條件#include int age(int n) int c; if(n=1) c=10; else c=age(n-1)+2; return(c); void main() printf(“%dn,age(5); 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)=14age(4)=1

35、6age(5)=1818例例7.5 分別用遞推方法和遞歸方法求分別用遞推方法和遞歸方法求!,即,即12 n。1.用遞推方法求用遞推方法求!解題思路:解題思路:u從從1開始,乘開始,乘2,再乘,再乘3一直乘到一直乘到n。這種。這種方法容易理解,也容易實現(xiàn)。遞推法的特點是方法容易理解,也容易實現(xiàn)。遞推法的特點是從一個已知的事實出發(fā),按一定規(guī)律推下一個從一個已知的事實出發(fā),按一定規(guī)律推下一個事實,再從這個新的已知的事實出發(fā),再向下事實,再從這個新的已知的事實出發(fā),再向下推出一個新的事實推出一個新的事實這是和遞歸不同的。這是和遞歸不同的。#include void main() long fac(in

36、t n); int n; long fact=0; printf(“input an integer number:”); scanf(“%d”,&n); fact=fac(n); printf(“%d!=%ldn”,n,fact); long fac(int n) int i; long fact=1; for(i=1;i=n;i+) fact=fact*i; return fact;2.用遞歸方法求用遞歸方法求!解題思路:解題思路:u遞歸的思路和遞遞歸的思路和遞推推是相反的,并不是先求是相反的,并不是先求1 再再 求求1 2再再 3,直到,直到 n,而是直接,而是直接從目標出發(fā)提出

37、問題:從目標出發(fā)提出問題: !等于等于!,而,而!,而,而1!是已知的,不必再回溯了是已知的,不必再回溯了) 1() 1() 1 , 0(1!nnnnnn#include void main() long fac(int n); int n,y; printf(input an integer number:); scanf(%d,&n); y=fac(n); printf(%d!=%ldn,n,y);long fac(int n) long f; if(n0) printf(“n0,data error!”); else if(n=0 | n=1) f=1; else f=fac(n

38、-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遞歸調(diào)用的特點:遞歸調(diào)用的特點:執(zhí)行執(zhí)行“未知未知未知未知遞歸邊界條件已知遞歸邊界條件已知已知已知已知已知”的過程。的過程。用遞歸方法解題的條件:用遞歸方法解題的條件:(1)所求解的問題能轉(zhuǎn)化為用同一方法解決的所求解的問題能轉(zhuǎn)化為用同一方法解決的子問題。

39、子問題。(2) 子問題的規(guī)模比原問題的規(guī)模小子問題的規(guī)模比原問題的規(guī)模小。(3) 必須要有遞歸結(jié)束條件,停止遞歸,否必須要有遞歸結(jié)束條件,停止遞歸,否則形成無窮遞歸,系統(tǒng)無法實現(xiàn)。則形成無窮遞歸,系統(tǒng)無法實現(xiàn)。7.4 數(shù)組作為函數(shù)參數(shù)數(shù)組作為函數(shù)參數(shù)7.4.1 數(shù)組元素作函數(shù)實參數(shù)組元素作函數(shù)實參7.4.2 數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù)P1847.4.1 數(shù)組元素作函數(shù)實參數(shù)組元素作函數(shù)實參 由于實參可以是表達式,而數(shù)組元素可以由于實參可以是表達式,而數(shù)組元素可以是表達式的組成部分,因此數(shù)組元素可以是表達式的組成部分,因此數(shù)組元素可以作為函數(shù)的實參。作為函數(shù)的實參。P185例例7.6 有兩

40、個運動隊有兩個運動隊a和和b,各有,各有10個隊員個隊員,每個隊員有一個綜合成績。將兩個隊的,每個隊員有一個綜合成績。將兩個隊的每個隊員的成績按順序一一對應地逐個比每個隊員的成績按順序一一對應地逐個比較(即較(即a隊第隊第1個隊員與個隊員與b隊第隊第1個隊員比個隊員比,)。如果)。如果a隊隊員的成績高于隊隊員的成績高于b隊相隊相應隊員成績的數(shù)目多于應隊員成績的數(shù)目多于b隊隊員成績高于隊隊員成績高于a隊相應隊員成績的數(shù)目隊相應隊員成績的數(shù)目(例如,例如,a隊蠃隊蠃6次次,b隊蠃隊蠃4次次),則認為,則認為a隊勝。統(tǒng)計出兩隊勝。統(tǒng)計出兩隊隊員比較的結(jié)果隊隊員比較的結(jié)果(a隊高于、等于和低于隊高于、

41、等于和低于b隊的次數(shù)隊的次數(shù))。解題思路:解題思路:u設(shè)兩個數(shù)組設(shè)兩個數(shù)組a和和b,各有,各有10個元素,分別存放個元素,分別存放10個隊員的成績個隊員的成績u將兩個數(shù)組的相應元素逐個比較,用將兩個數(shù)組的相應元素逐個比較,用3個變量個變量n,m,k分別累計分別累計a隊隊員高于、等于和低于隊隊員高于、等于和低于b隊隊員的次數(shù)隊隊員的次數(shù)u用一個函數(shù)用一個函數(shù)higher來判斷每一次比較的結(jié)果來判斷每一次比較的結(jié)果,如果,如果a隊員高于隊員高于b隊員,結(jié)果為隊員,結(jié)果為1,二者相,二者相等,結(jié)果為等,結(jié)果為0,a隊員低于隊員低于b隊員,結(jié)果為隊員,結(jié)果為-1。最后比較。最后比較n和和k即可得到哪隊

42、勝的結(jié)果即可得到哪隊勝的結(jié)果#include void main() int higher(int x,int y); int a10,b10,i,n=0,m=0,k=0; printf(enter array a:n); for(i=0;i10;i+) scanf(%d,&ai); printf(n); printf(“enter array b:n”); for(i=0;i10;i+) scanf(%d,&bi); printf(n);輸入輸入a隊隊員成績隊隊員成績輸入輸入b隊隊員成績隊隊員成績for(i=0;ik) printf(a wins!n); else if (n

43、y) flag=1; else if(xy) flag=-1; else flag=0; return(flag); 7.4.2 數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù)P186希望在函數(shù)中處理整個數(shù)組的元素時,可希望在函數(shù)中處理整個數(shù)組的元素時,可以用數(shù)組名作為函數(shù)實參以用數(shù)組名作為函數(shù)實參注意,此時只是將數(shù)組的首元素的地址傳注意,此時只是將數(shù)組的首元素的地址傳遞給所對應的形參,因此對應的形參應當遞給所對應的形參,因此對應的形參應當是指針變量是指針變量(見第見第8章章)。例例7.7 有有10個學生成績,用一個函數(shù)求全個學生成績,用一個函數(shù)求全體學生的平均成績。體學生的平均成績。解題思路:解題思路:u

44、在主函數(shù)中定義一個實型數(shù)組在主函數(shù)中定義一個實型數(shù)組score,將輸入,將輸入的的10個學生成績存放在數(shù)組中個學生成績存放在數(shù)組中u設(shè)計函數(shù)設(shè)計函數(shù)average,用來求學生平均成績,用來求學生平均成績u需要把數(shù)組有關(guān)信息傳遞給需要把數(shù)組有關(guān)信息傳遞給average函數(shù)函數(shù)u采取用數(shù)組名作為實參,把數(shù)組地址傳給采取用數(shù)組名作為實參,把數(shù)組地址傳給average函數(shù),在該函數(shù)中對數(shù)組進行處理函數(shù),在該函數(shù)中對數(shù)組進行處理#include void main() float average(float array10); float score10,aver; int i; printf(inpu

45、t 10 scores:n); for(i=0;i10;i+) scanf(%f,&scorei); aver=average(score); printf(average score is %5.2fn,aver); 數(shù)組名作實參數(shù)組名作實參float average(float array10) int i; float aver,sum=array0; for(i=1;i10;i+) sum=sum+arrayi; aver=sum/10; return(aver); 與與score共占同一存儲單元共占同一存儲單元實參、形參都是實參、形參都是float型型相當于相當于score0

46、相當于相當于scorei例例7.8 有兩個班,學生數(shù)不同,編寫一有兩個班,學生數(shù)不同,編寫一個函數(shù),用來分別求各班的平均成績。個函數(shù),用來分別求各班的平均成績。解題思路:解題思路:u問題的關(guān)鍵是用同一個函數(shù)求不同人數(shù)的班問題的關(guān)鍵是用同一個函數(shù)求不同人數(shù)的班級平均成績級平均成績u在定義形參時不指定大小,函數(shù)對不同人數(shù)在定義形參時不指定大小,函數(shù)對不同人數(shù)的班級都是適用的班級都是適用u由于由于數(shù)組名傳遞的是數(shù)組首地址數(shù)組名傳遞的是數(shù)組首地址,可以利用可以利用同一個函數(shù)求人數(shù)不同的班平均成績同一個函數(shù)求人數(shù)不同的班平均成績u在定義在定義average函數(shù)時,增加一個參數(shù)函數(shù)時,增加一個參數(shù)n,用來

47、指定當前班級的人數(shù),用來指定當前班級的人數(shù)#include void main() float average(float array ,int n); float score_15=98.5,97,91.5,60,55; float score_210=67.5,89.5,99,69.5, 77,89.5,76.5,54,60,99.5; printf(“%6.2fn”,average(score_1,5); printf(“%6.2fn”,average(score_2,10); float average(float array ,int n) int i; float aver,sum

48、=array0; for(i=1;in;i+) sum=sum+arrayi; aver=sum/n; return(aver);調(diào)用形式為調(diào)用形式為average(score_1,5)時時相當于相當于score_10相當于相當于score_1i相當于相當于5float average(float array ,int n) int i; float aver,sum=array0; for(i=1;in;i+) sum=sum+arrayi; aver=sum/n; return(aver);調(diào)用形式為調(diào)用形式為average(score_2,10)時時相當于相當于score_20相當于相當

49、于score_2i相當于相當于10例例7.9 用一個函數(shù)實現(xiàn)用選擇法對用一個函數(shù)實現(xiàn)用選擇法對10個個整數(shù)按升序排列。整數(shù)按升序排列。解題思路:解題思路:u所謂選擇法就是先將所謂選擇法就是先將10個數(shù)中最小的數(shù)個數(shù)中最小的數(shù)與與a0對換對換;再將再將a1到到a9中最小的中最小的數(shù)與數(shù)與a1對換對換每比較一輪每比較一輪,找出一找出一個未經(jīng)排序的數(shù)中最小的一個個未經(jīng)排序的數(shù)中最小的一個u共比較共比較9輪輪a0 a1 a2 a3 a4 3 6 1 9 4 1 6 3 9 4 1 3 6 9 4 1 3 4 9 6 1 3 4 6 9小到大排序小到大排序#include void main()void

50、 sort(int array,int n); int a10,i; printf(enter the array:n); for(i=0;i10;i+) scanf(%d,&ai); sort(a,10); printf(The sorted array:n); for(i=0;i10;i+) printf(%d ,ai); printf(n); void sort(int array,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrayjarrayk) k=j; t=arrayk; arrayk=ar

51、rayi; arrayi=t;在在sortisort9中,中,找找最小數(shù)最小數(shù)下標下標在在sortisort9中,中,最小數(shù)與最小數(shù)與sorti對換對換例例7.10 有有4個學生,個學生,5門課的成績,設(shè)計門課的成績,設(shè)計一個函數(shù),用來求出其中的最高成績。一個函數(shù),用來求出其中的最高成績。解題思路:解題思路:u先使變量先使變量max的初值為二維數(shù)組中第一個的初值為二維數(shù)組中第一個元素的值,然后將二維數(shù)組中各個元素的元素的值,然后將二維數(shù)組中各個元素的值與值與max相比,每次比較后都把相比,每次比較后都把“大者大者”存放在存放在max中,取代中,取代max的原值。全部元的原值。全部元素比較完后,

52、素比較完后,max 的值就是所有元素的最的值就是所有元素的最大值。大值。#include void main()float highest_score(float array45); float score45=61,73,85.5,87,90, 72,84,66,88,78, 75,87,93.5,81,96, 65,85,64,76,71 ; printf(“%6.2fn,highest_score(score);float highest_score(float array45) int i,j; float max; max=array00; for(i=0;i4;i+) for(j=

53、0;jmax) max=arrayij; return (max);7.5 變量的作用域和生存期變量的作用域和生存期7.5.1 變量的作用域變量的作用域-局部變量和全局變量局部變量和全局變量7.5.2 變量的存儲方式和生存期變量的存儲方式和生存期7.5.3 作用域和生存期的小結(jié)作用域和生存期的小結(jié)P1927.5.1 變量的作用域變量的作用域局部變量和全局變量局部變量和全局變量1 局部變量局部變量u在函數(shù)和復合語句內(nèi)定義的變量,稱為內(nèi)部在函數(shù)和復合語句內(nèi)定義的變量,稱為內(nèi)部變量或變量或局部變量局部變量u只在只在本函數(shù)或復合語句內(nèi)本函數(shù)或復合語句內(nèi)范圍內(nèi)有效范圍內(nèi)有效(從定從定義點開始到函數(shù)或復合

54、語句結(jié)束義點開始到函數(shù)或復合語句結(jié)束)u在此函數(shù)或復合語句以外是不能使用這些變在此函數(shù)或復合語句以外是不能使用這些變量的量的P192說明說明:(1) 主函數(shù)中定義的變量也只在主函數(shù)中有效主函數(shù)中定義的變量也只在主函數(shù)中有效,主函數(shù)也不能使用其他函數(shù)中定義的變量。主函數(shù)也不能使用其他函數(shù)中定義的變量。(2) 不同函數(shù)中可以使用相同名字的變量不同函數(shù)中可以使用相同名字的變量,它它們代表不同的對象們代表不同的對象,互不干擾互不干擾。(3) 形式參數(shù)也是局部變量。在函數(shù)中可以使形式參數(shù)也是局部變量。在函數(shù)中可以使用本函數(shù)定義的形參用本函數(shù)定義的形參,在函數(shù)外不能引用在函數(shù)外不能引用它它。(4) 在一個

55、函數(shù)內(nèi)部在一個函數(shù)內(nèi)部,可以在復合語句中定義可以在復合語句中定義變量變量,這些變量只在本復合語句中有效。這些變量只在本復合語句中有效。2 全局變量全局變量u一個程序可以包含一個或若干個源程序文件一個程序可以包含一個或若干個源程序文件(即程序模塊即程序模塊),而一個源文件可以包含一個或,而一個源文件可以包含一個或若干個函數(shù)若干個函數(shù)u在函數(shù)之外定義的變量是外部變量,也稱為在函數(shù)之外定義的變量是外部變量,也稱為全局變量全局變量(或全程變量或全程變量)u全局變量的有效范圍為從定義變量的位置開全局變量的有效范圍為從定義變量的位置開始到本源文件結(jié)束,在此范圍內(nèi)可以為本文件始到本源文件結(jié)束,在此范圍內(nèi)可以

56、為本文件中所有函數(shù)所共用中所有函數(shù)所共用2 全局變量全局變量u在一個函數(shù)中既可以使用本函數(shù)中的局部變在一個函數(shù)中既可以使用本函數(shù)中的局部變量,又可以使用有效的全局變量。量,又可以使用有效的全局變量。u如果在同一個源文件中,外部變量與局部變?nèi)绻谕粋€源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部量同名,則在局部變量的作用范圍內(nèi),外部變量被變量被“屏蔽屏蔽”了,即它不起作用,此時局了,即它不起作用,此時局部變量是有效的。部變量是有效的。 例例7.11有有4個學生,個學生,5門課的成績,要求門課的成績,要求輸出其中的最高成績以及它屬于第幾個輸出其中的最高成績以及它屬于第幾個學生、

57、第幾門課程。學生、第幾門課程。解題思路:解題思路:u在例在例7.10中,通過調(diào)用中,通過調(diào)用highest_score函數(shù),得到最高分函數(shù),得到最高分u除了輸出最高分以外,還要輸出該分數(shù)是屬除了輸出最高分以外,還要輸出該分數(shù)是屬于第幾個學生、笫幾門課的信息,即需要輸于第幾個學生、笫幾門課的信息,即需要輸出出3個結(jié)果個結(jié)果u調(diào)用一個函數(shù)只能得到一個函數(shù)值,調(diào)用一個函數(shù)只能得到一個函數(shù)值,因此因此例例7.10程序無法解決這個問題程序無法解決這個問題u可以使用全局變量,通過全局變量從函數(shù)中可以使用全局變量,通過全局變量從函數(shù)中得到所需要的值得到所需要的值#include int Row,Column

58、; void main() float highest_score(float array45); float score45=61,73,85.5,87,90, 72,84,66,88,78,75,87,93.5,81,96, 65,85,64,76,71; printf(“he highest score is %6.2fn, highest_score(score); printf(Student No.is %dn Course No. is %dn,Row,Column);定義定義全局變量全局變量float highest_score(float array45) int i,j;

59、float max; max=array00; for(i=0;i4;i+) for(j=0;jmax) max=arrayij; Row=i; Column=j; return (max);行的序號賦給全局變量行的序號賦給全局變量Row將列的序號賦給全局變量將列的序號賦給全局變量Column score 函數(shù)調(diào)用函數(shù)調(diào)用 Row Column array max Row Columnmain函數(shù)函數(shù)highest_score函數(shù)函數(shù)建議不在必要時不要使用全局變量建議不在必要時不要使用全局變量全局變量全局變量RowColumn7.5.2 變量的存儲方式和生存期變量的存儲方式和生存期變量的變量的

60、生存期生存期:變量值存在的時間變量值存在的時間變量的兩種變量的兩種存儲方式存儲方式:靜態(tài)存儲方式和:靜態(tài)存儲方式和動態(tài)存儲方式動態(tài)存儲方式u靜態(tài)靜態(tài)存儲方式是指在程序運行期間由系統(tǒng)分存儲方式是指在程序運行期間由系統(tǒng)分配固定的存儲空間的方式配固定的存儲空間的方式u動態(tài)動態(tài)存儲方式是在程序運行期間根據(jù)需要進存儲方式是在程序運行期間根據(jù)需要進行動態(tài)的分配存儲空間的方式行動態(tài)的分配存儲空間的方式P1957.5.2 變量的存儲方式和生存期變量的存儲方式和生存期全局變量采用靜態(tài)存儲方式全局變量采用靜態(tài)存儲方式,在程序開,在程序開始執(zhí)行時給全局變量分配存儲區(qū),程序始執(zhí)行時給全局變量分配存儲區(qū),程序執(zhí)行完畢釋放。在程序執(zhí)行過程中它們執(zhí)行完畢釋放。在程序執(zhí)行過程中它們占據(jù)固定的存儲單元,而不是動態(tài)地進占據(jù)固定的存儲單元,而不是動態(tài)地進行分配和釋放。行分配和釋放。P1957.5.2

溫馨提示

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

評論

0/150

提交評論