C語(yǔ)言用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第1頁(yè)
C語(yǔ)言用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第2頁(yè)
C語(yǔ)言用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第3頁(yè)
C語(yǔ)言用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第4頁(yè)
C語(yǔ)言用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)市公開課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩223頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章 用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)7.1為何要用函數(shù) 7.2怎樣定義函數(shù)7.3調(diào)用函數(shù)7.4對(duì)被調(diào)用函數(shù)申明和函數(shù)原型7.5函數(shù)嵌套調(diào)用 7.6函數(shù)遞歸調(diào)用7.7數(shù)組作為函數(shù)參數(shù) 7.8局部變量和全局變量7.9變量存放方式和生存期7.10 關(guān)于變量申明和定義7.11 內(nèi)部函數(shù)和外部函數(shù)第1頁(yè)7.1為何要用函數(shù)問題:假如程序功效比較多,規(guī)模比較大,把全部代碼都寫在main函數(shù)中,就會(huì)使主函數(shù)變得龐雜、頭緒不清,閱讀和維護(hù)變得困難有時(shí)程序中要屢次實(shí)現(xiàn)某一功效,就需要屢次重復(fù)編寫實(shí)現(xiàn)此功效程序代碼,這使程序冗長(zhǎng),不精煉第2頁(yè)7.1為何要用函數(shù)處理方法:用模塊化程序設(shè)計(jì)思緒采取“組裝”方法簡(jiǎn)化程序設(shè)計(jì)過

2、程事先編好一批實(shí)現(xiàn)各種不一樣功效函數(shù)把它們保留在函數(shù)庫(kù)中,需要時(shí)直接用第3頁(yè)7.1為何要用函數(shù)處理方法:用模塊化程序設(shè)計(jì)思緒函數(shù)就是功效每一個(gè)函數(shù)用來實(shí)現(xiàn)一個(gè)特定功效函數(shù)名字應(yīng)反應(yīng)其代表功效第4頁(yè)7.1為何要用函數(shù)在設(shè)計(jì)一個(gè)較大程序時(shí),往往把它分為若干個(gè)程序模塊,每一個(gè)模塊包含一個(gè)或多個(gè)函數(shù),每個(gè)函數(shù)實(shí)現(xiàn)一個(gè)特定功效程序可由一個(gè)主函數(shù)和若干個(gè)其它函數(shù)組成主函數(shù)調(diào)用其它函數(shù),其它函數(shù)也能夠相互調(diào)用同一個(gè)函數(shù)能夠被一個(gè)或多個(gè)函數(shù)調(diào)用任意屢次第5頁(yè)7.1為何要用函數(shù)mainabcfghdeie第6頁(yè)7.1為何要用函數(shù)能夠使用庫(kù)函數(shù)能夠使用自己編寫函數(shù)在程序設(shè)計(jì)中要善于利用函數(shù),能夠降低重復(fù)編寫程序段

3、工作量,同時(shí)能夠方便地實(shí)現(xiàn)模塊化程序設(shè)計(jì)第7頁(yè)7.1為何要用函數(shù)例7.1 輸出以下結(jié)果,用函數(shù)調(diào)用實(shí)現(xiàn)。 * How do you do! *第8頁(yè)7.1為何要用函數(shù)解題思緒:在輸出文字上下分別有一行“*”號(hào),顯然無須重復(fù)寫這段代碼,用一個(gè)函數(shù)print_star來實(shí)現(xiàn)輸出一行“*”號(hào)功效。再寫一個(gè)print_message函數(shù)來輸出中間一行文字信息用主函數(shù)分別調(diào)用這兩個(gè)函數(shù)第9頁(yè)#include int main() void print_star(); void print_message(); print_star(); print_message(); print_star(); re

4、turn 0;void print_star() printf(“*n”); void print_message() printf(“ How do you do!n”); 輸出16個(gè)*輸出一行文字第10頁(yè)#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”);

5、申明函數(shù)定義函數(shù)第11頁(yè)#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”); 第12頁(yè)說明: (1) 一個(gè)程序由一個(gè)或多個(gè)程序模塊組成,每一個(gè)程序模塊作為一個(gè)源程序文件。對(duì)較大程序,一般不希望把全部?jī)?nèi)容全放在一個(gè)文件中,而是將它們分別放在若干個(gè)源文件中,由若干個(gè)

6、源程序文件組成一個(gè)C程序。這么便于分別編寫、分別編譯,提高調(diào)試效率。一個(gè)源程序文件可認(rèn)為多個(gè)C程序共用。第13頁(yè)說明: (2) 一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)以及其它相關(guān)內(nèi)容(如預(yù)處理指令、數(shù)據(jù)申明與定義等)組成。一個(gè)源程序文件是一個(gè)編譯單位,在程序編譯時(shí)是以源程序文件為單位進(jìn)行編譯,而不是以函數(shù)為單位進(jìn)行編譯。第14頁(yè)說明: (3) 程序執(zhí)行是從main函數(shù)開始,假如在main函數(shù)中調(diào)用其它函數(shù),在調(diào)用后流程返回到main函數(shù),在main函數(shù)中結(jié)束整個(gè)程序運(yùn)行。第15頁(yè)說明: (4) 全部函數(shù)都是平行,即在定義函數(shù)時(shí)是分別進(jìn)行,是相互獨(dú)立。一個(gè)函數(shù)并不隸屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義。函

7、數(shù)間能夠相互調(diào)用,但不能調(diào)用main函數(shù)。main函數(shù)是被操作系統(tǒng)調(diào)用。第16頁(yè)說明: (5) 從用戶使用角度看,函數(shù)有兩種。庫(kù)函數(shù),它是由系統(tǒng)提供,用戶無須自己定義而直接使用它們。應(yīng)該說明,不一樣C語(yǔ)言編譯系統(tǒng)提供庫(kù)函數(shù)數(shù)量和功效會(huì)有一些不一樣,當(dāng)然許多基本函數(shù)是共同。用戶自己定義函數(shù)。它是用以處理用戶專門需要函數(shù)。第17頁(yè)說明:(6) 從函數(shù)形式看,函數(shù)分兩類。 無參函數(shù)。無參函數(shù)普通用來執(zhí)行指定一組操作。無參函數(shù)能夠帶回或不帶回函數(shù)值,但普通以不帶回函數(shù)值居多。 有參函數(shù)。在調(diào)用函數(shù)時(shí),主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時(shí),經(jīng)過參數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù),普通情況下,執(zhí)行被調(diào)用函數(shù)時(shí)會(huì)得到一個(gè)函數(shù)值

8、,供主調(diào)函數(shù)使用。第18頁(yè)7.2 怎樣定義函數(shù)7.2.1 為何要定義函數(shù)7.2.2 定義函數(shù)方法第19頁(yè)7.2.1 為何要定義函數(shù)C語(yǔ)言要求,在程序中用到全部函數(shù),必須“先定義,后使用”指定函數(shù)名字、函數(shù)返回值類型、函數(shù)實(shí)現(xiàn)功效以及參數(shù)個(gè)數(shù)與類型,將這些信息通知編譯系統(tǒng)。第20頁(yè)7.2.1 為何要定義函數(shù)指定函數(shù)名字,方便以后按名調(diào)用指定函數(shù)類型,即函數(shù)返回值類型指定函數(shù)參數(shù)名字和類型,方便在調(diào)用函數(shù)時(shí)向它們傳遞數(shù)據(jù)指定函數(shù)功效。這是最主要,這是在函數(shù)體中處理第21頁(yè)7.2.1 為何要定義函數(shù)對(duì)于庫(kù)函數(shù),程序設(shè)計(jì)者只需用#include指令把相關(guān)頭文件包含到本文件模塊中即可程序設(shè)計(jì)者需要在程序

9、中自己定義想用而庫(kù)函數(shù)并沒有提供函數(shù)第22頁(yè)7.2.2 定義函數(shù)方法1.定義無參函數(shù)定義無參函數(shù)普通形式為:類型名 函數(shù)名(void) 函數(shù)體 類型名 函數(shù)名() 函數(shù)體 包含申明部分和語(yǔ)句部分包含申明部分和語(yǔ)句部分第23頁(yè)7.2.2 定義函數(shù)方法1.定義無參函數(shù)定義無參函數(shù)普通形式為:類型名 函數(shù)名(void) 函數(shù)體 類型名 函數(shù)名() 函數(shù)體 指定函數(shù)值類型指定函數(shù)值類型第24頁(yè)7.2.2 定義函數(shù)方法2.定義有參函數(shù)定義有參函數(shù)普通形式為:類型名 函數(shù)名(形式參數(shù)表列) 函數(shù)體 第25頁(yè)7.2.2 定義函數(shù)方法3. 定義空函數(shù)定義空函數(shù)普通形式為:類型名 函數(shù)名( ) 先用空函數(shù)占一個(gè)

10、位置,以后逐步擴(kuò)充好處:程序結(jié)構(gòu)清楚,可讀性好,以后擴(kuò)充新功效方便,對(duì)程序結(jié)構(gòu)影響不大第26頁(yè)7.3 調(diào)用函數(shù)7.3.1函數(shù)調(diào)用形式7.3.2函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞7.3.3函數(shù)調(diào)用過程7.3.4函數(shù)返回值第27頁(yè)7.3.1函數(shù)調(diào)用形式函數(shù)調(diào)用普通形式為: 函數(shù)名(實(shí)參表列)假如是調(diào)用無參函數(shù),則“實(shí)參表列”能夠沒有,但括號(hào)不能省略假如實(shí)參表列包含多個(gè)實(shí)參,則各參數(shù)間用逗號(hào)隔開第28頁(yè)7.3.1函數(shù)調(diào)用形式按函數(shù)調(diào)用在程序中出現(xiàn)形式和位置來分,能夠有以下3種函數(shù)調(diào)用方式:. 函數(shù)調(diào)用語(yǔ)句把函數(shù)調(diào)用單獨(dú)作為一個(gè)語(yǔ)句 如printf_star();這時(shí)不要求函數(shù)帶回值,只要求函數(shù)完成一定操作第29頁(yè)7

11、.3.1函數(shù)調(diào)用形式按函數(shù)調(diào)用在程序中出現(xiàn)形式和位置來分,能夠有以下3種函數(shù)調(diào)用方式:. 函數(shù)表示式函數(shù)調(diào)用出現(xiàn)在另一個(gè)表示式中 如c=max(a,b);這時(shí)要求函數(shù)帶回一個(gè)確定值以參加表示式運(yùn)算第30頁(yè)7.3.1函數(shù)調(diào)用形式按函數(shù)調(diào)用在程序中出現(xiàn)形式和位置來分,能夠有以下3種函數(shù)調(diào)用方式:. 函數(shù)參數(shù)函數(shù)調(diào)用作為另一函數(shù)調(diào)用時(shí)實(shí)參 如mmax(a,max(b,c);其中max(b,c)是一次函數(shù)調(diào)用,它值作為max另一次調(diào)用實(shí)參第31頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞1.形式參數(shù)和實(shí)際參數(shù)在調(diào)用有參函數(shù)時(shí),主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系定義函數(shù)時(shí)函數(shù)名后面變量名稱為“形式參數(shù)”(簡(jiǎn)稱“

12、形參”)主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面參數(shù)稱為“實(shí)際參數(shù)”(簡(jiǎn)稱“實(shí)參”) 實(shí)際參數(shù)能夠是常量、變量或表示式第32頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞2. 實(shí)參和形參間數(shù)據(jù)傳遞在調(diào)用函數(shù)過程中,系統(tǒng)會(huì)把實(shí)參值傳遞給被調(diào)用函數(shù)形參或者說,形參從實(shí)參得到一個(gè)值該值在函數(shù)調(diào)用期間有效,能夠參加被調(diào)函數(shù)中運(yùn)算第33頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞 例7.2 輸入兩個(gè)整數(shù),要求輸出其中值較大者。要求用函數(shù)來找到大數(shù)。解題思緒:(1)函數(shù)名應(yīng)是見名知意,故定名為max(2) 因?yàn)榻o定兩個(gè)數(shù)是整數(shù),返回主調(diào)函數(shù)值(即較大數(shù))應(yīng)該是整型(3)max函數(shù)應(yīng)該有兩個(gè)參數(shù),方便從主函數(shù)接收兩個(gè)整數(shù),所以參數(shù)類型應(yīng)

13、該是整型第34頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞先編寫max函數(shù):int max(int x,int y) int z; z=xy?x:y; return(z); 第35頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞在max函數(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); return 0;實(shí)參能夠是常量、變量或表示式第36頁(yè)7.3.2 函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞

14、 c=max(a,b); (main函數(shù))int max(int x, int y) (max函數(shù)) int z; z=xy?x:y; return(z); 第37頁(yè)7.3.3 函數(shù)調(diào)用過程在定義函數(shù)中指定形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中存放單元。在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)max形參被暫時(shí)分配內(nèi)存單元。2a3bxy23實(shí)參形參第38頁(yè)7.3.3 函數(shù)調(diào)用過程調(diào)用結(jié)束,形參單元被釋放實(shí)參單元仍保留并維持原值,沒有改變假如在執(zhí)行一個(gè)被調(diào)用函數(shù)時(shí),形參值發(fā)生改變,不會(huì)改變主調(diào)函數(shù)實(shí)參值2a3bxy23實(shí)參形參第39頁(yè)7.3.4. 函數(shù)返回值通常,希望經(jīng)過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個(gè)確定值,這就

15、是函數(shù)值(函數(shù)返回值)函數(shù)返回值是經(jīng)過函數(shù)中return語(yǔ)句取得。一個(gè)函數(shù)中能夠有一個(gè)以上return語(yǔ)句,執(zhí)行到哪一個(gè)return語(yǔ)句,哪一個(gè)就起作用return語(yǔ)句后面括號(hào)能夠不要第40頁(yè)7.3.4. 函數(shù)返回值通常,希望經(jīng)過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個(gè)確定值,這就是函數(shù)值(函數(shù)返回值)(2) 函數(shù)值類型。應(yīng)該在定義函數(shù)時(shí)指定函數(shù)值類型第41頁(yè)7.3.4. 函數(shù)返回值通常,希望經(jīng)過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個(gè)確定值,這就是函數(shù)值(函數(shù)返回值)(3)在定義函數(shù)時(shí)指定函數(shù)類型普通應(yīng)該和return語(yǔ)句中表示式類型一致假如函數(shù)值類型和return語(yǔ)句中表示式值不一致,則以函數(shù)類型為準(zhǔn)第42頁(yè)7.

16、3.4. 函數(shù)返回值例7.3將例7.2稍作改動(dòng),將在max函數(shù)中定義變量z改為float型。函數(shù)返回值類型與指定函數(shù)類型不一樣,分析其處理方法。解題思緒:假如函數(shù)返回值類型與指定函數(shù)類型不一樣,按照賦值規(guī)則處理。第43頁(yè)#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=xy?x:y; return( z ) ;1.52.

17、62.62變?yōu)?第44頁(yè)7.4對(duì)被調(diào)用函數(shù)申明和函數(shù)原型在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備以下條件:(1) 被調(diào)用函數(shù)必須是已經(jīng)定義函數(shù)(是庫(kù)函數(shù)或用戶自己定義函數(shù))(2) 假如使用庫(kù)函數(shù),應(yīng)該在本文件開頭加對(duì)應(yīng)#include指令(3) 假如使用自己定義函數(shù),而該函數(shù)位置在調(diào)用它函數(shù)后面,應(yīng)該申明第45頁(yè)7.4對(duì)被調(diào)用函數(shù)申明和函數(shù)原型 例7.4 輸入兩個(gè)實(shí)數(shù),用一個(gè)函數(shù)求出它們之和。解題思緒:用add函數(shù)實(shí)現(xiàn)。首先要定義add函數(shù),它為float型,它應(yīng)有兩個(gè)參數(shù),也應(yīng)為float型。尤其要注意是:要對(duì)add函數(shù)進(jìn)行申明。第46頁(yè)7.4對(duì)被調(diào)用函數(shù)申明和函數(shù)原型分別編寫add函數(shù)和main

18、函數(shù),它們組成一個(gè)源程序文件main函數(shù)位置在add函數(shù)之前在main函數(shù)中對(duì)add函數(shù)進(jìn)行申明第47頁(yè)#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 0;float add(float x,float y) float z; z=x+y; return(z); 求兩個(gè)實(shí)數(shù)之和,函數(shù)值也是實(shí)型對(duì)add函數(shù)申明第48頁(yè)#include in

19、t 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 0;float add(float x,float y) float z; z=x+y; return(z); 只差一個(gè)分號(hào)第49頁(yè)#include int main() float add(float x, float y); float a,b,c; printf(Please enter a and b:)

20、; 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); 定義add函數(shù)調(diào)用add函數(shù)第50頁(yè)函數(shù)原型普通形式有兩種:如 float add(float x, float y); float add(float, float);原型說明能夠放在文件開頭,這時(shí)全部函數(shù)都能夠使用此函數(shù)第51頁(yè)7.5 函數(shù)嵌套調(diào)用語(yǔ)言函數(shù)定義是相互平行、獨(dú)立即函數(shù)不能嵌套定義但能夠嵌套調(diào)用函數(shù)即調(diào)用一個(gè)函數(shù)過程中,又能夠調(diào)用另一個(gè)函數(shù)第5

21、2頁(yè)7.5 函數(shù)嵌套調(diào)用main函數(shù)調(diào)用a函數(shù)結(jié)束a函數(shù)調(diào)用b函數(shù)b函數(shù)第53頁(yè)7.5 函數(shù)嵌套調(diào)用 例7.5 輸入4個(gè)整數(shù),找出其中最大數(shù)。用函數(shù)嵌套調(diào)用來處理。解題思緒:main中調(diào)用max4函數(shù),找4個(gè)數(shù)中最大者max4中再調(diào)用max2,找兩個(gè)數(shù)中大者max4中屢次調(diào)用max2,可找4個(gè)數(shù)中大者,然后把它作為函數(shù)值返回main函數(shù)main函數(shù)中輸出結(jié)果第54頁(yè)#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4 integer numbers:); scanf(%d%d%d%d,

22、&a,&b,&c,&d); max=max4(a,b,c,d); printf(max=%d n,max); return 0; 主函數(shù)對(duì)max4 函數(shù)申明第55頁(yè)#include int main() int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4 integer numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d); printf(max=%d n,max); return 0; 主函數(shù)輸入4個(gè)整數(shù)第56頁(yè)#include int main() int

23、max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“4 integer numbers:); scanf(%d%d%d%d,&a,&b,&c,&d); max=max4(a,b,c,d); printf(max=%d n,max); return 0; 主函數(shù)調(diào)用后必定是4個(gè)數(shù)中最大者輸出最大者第57頁(yè)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

24、函數(shù)對(duì)max2 函數(shù)申明第58頁(yè)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ù)a,b中較大者a,b,c中較大者a,b,c,d中最大者第59頁(yè)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ù)int max2(int

25、a,int b) if(a=b) return a; else return b; max2函數(shù)找a,b中較大者第60頁(yè)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ù)int max2(int a,int b) if(a=b) return a; else return b; max2函數(shù)return(ab?a:b);第61頁(yè)int max4(int a,int b,int c,int d) int ma

26、x2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m); max4函數(shù)int max2(int a,int b) return(ab?a:b); 第62頁(yè)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ù)m=max2(max2(a,b),c);int max2(int a,int b) return(ab?a:b);

27、第63頁(yè)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ù)m=max2(max2(max2(a,b),c),d);int max2(int a,int b) return(ab?a:b); 第64頁(yè)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); ret

28、urn(m); max4函數(shù)ruturn max2(max2(max2(a,b),c),d);int max2(int a,int b) return(ab?a:b); 第65頁(yè)int max4(int 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); 第66頁(yè)課堂練習(xí)寫一個(gè)函數(shù),輸入一個(gè)4位數(shù)字,要求輸出這四個(gè)數(shù)字字符,但每?jī)蓚€(gè)數(shù)字之間空

29、一個(gè)空格。如輸入,應(yīng)該輸出“2 0 1 3”。 第67頁(yè)課堂練習(xí)編程實(shí)現(xiàn)1-100累加。要求使用自定義函數(shù),該函數(shù)可求自然數(shù)m-n累加和,m、n由用戶從鍵盤輸入。第68頁(yè)#include int sum(int m,int n);int main( )int a,b,c; scanf(“%d%d”,&a,&b) c=sum(a,b); printf(“%d到%d自然數(shù)之和=%d,a,b,c); return 0;int sum(int x,int y)int i,s=0; i=x; while(i=y) s=s+i; i+; return s;第69頁(yè)7.6 函數(shù)遞歸調(diào)用在調(diào)用一個(gè)函數(shù)過程中又

30、出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)遞歸調(diào)用。語(yǔ)言特點(diǎn)之一就在于允許函數(shù)遞歸調(diào)用。第70頁(yè) f2函數(shù)調(diào)用f1函數(shù) 7.6 函數(shù)遞歸調(diào)用int f(int x) int y,z; z=f(y); return (2*z); f函數(shù)調(diào)用f函數(shù) f1函數(shù)調(diào)用f2函數(shù)應(yīng)使用if語(yǔ)句控制結(jié)束調(diào)用直接調(diào)用本函數(shù)間接調(diào)用本函數(shù)第71頁(yè)7.6 函數(shù)遞歸調(diào)用 例7.6 有5個(gè)學(xué)生坐在一起問第5個(gè)學(xué)生多少歲?他說比第4個(gè)學(xué)生大2歲問第4個(gè)學(xué)生歲數(shù),他說比第3個(gè)學(xué)生大2歲問第3個(gè)學(xué)生,又說比第2個(gè)學(xué)生大2歲問第2個(gè)學(xué)生,說比第1個(gè)學(xué)生大2歲最終問第1個(gè)學(xué)生,他說是10歲請(qǐng)問第5個(gè)學(xué)生多大第72頁(yè)7.6 函數(shù)遞歸

31、調(diào)用解題思緒:要求第個(gè)年紀(jì),就必須先知道第個(gè)年紀(jì)要求第個(gè)年紀(jì)必須先知道第個(gè)年紀(jì)第個(gè)年紀(jì)又取決于第個(gè)年紀(jì)第個(gè)年紀(jì)取決于第個(gè)年紀(jì)每個(gè)學(xué)生年紀(jì)都比其前個(gè)學(xué)生年紀(jì)大第73頁(yè)7.6 函數(shù)遞歸調(diào)用解題思緒:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10第74頁(yè) 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 回溯階段 遞推階段第

32、75頁(yè) 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 回溯階段 遞推階段結(jié)束遞歸條件第76頁(yè)#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); 第77頁(yè)age(5)輸出age(5)

33、mainc=age(4)+2age函數(shù)n=5c=age(3)+2age函數(shù)n=4c=age(1)+2age函數(shù)n=2c=age(2)+2age函數(shù)n=3c=10age函數(shù)n=1age(1)=10age(2)=12age(3)=14age(4)=16age(5)=1818第78頁(yè)例7.7 用遞歸方法求!。解題思緒:求!能夠用遞推方法:即從開始,乘,再乘一直乘到。遞推法特點(diǎn)是從一個(gè)已知事實(shí)(如1!=1)出發(fā),按一定規(guī)律推出下一個(gè)事實(shí)(如2!=1!*2),再?gòu)倪@個(gè)新已知事實(shí)出發(fā),再向下推出一個(gè)新事實(shí)(3!=3*2!)。n!=n*(n-1)!。第79頁(yè)例7.7 用遞歸方法求!。解題思緒:求!也能夠用遞

34、歸方法,即!等于!,而!,!可用下面遞歸公式表示:第80頁(yè)#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;第81頁(yè)int fac(int n) int f; if(n0) printf(ncn1:hanoi(n-1, a, c, b)a-chanoi(n-1, b, a, c)注意用遞歸調(diào)用結(jié)果,不關(guān)注該結(jié)果怎樣取得細(xì)節(jié)第123頁(yè)#include int main()

35、void hanoi(int n,char one, char two,char three); int m; printf(“the number of diskes:); scanf(%d,&m); printf(move %d diskes:n,m); hanoi(m,A,B,C);第124頁(yè)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); han

36、oi(n-1,two,one,three); 第125頁(yè)void move(char x,char y) printf(%c-%cn,x,y); 第126頁(yè)課堂練習(xí)小猴子第一天摘下若干桃子,當(dāng)即吃掉二分之一,又多吃一個(gè).第二天早上又將剩下桃子吃二分之一,又多吃一個(gè).以后天天早上吃前一天剩下二分之一另一個(gè).到第10天早上猴子想再吃時(shí)發(fā)覺,只剩下一個(gè)桃子了.問第一天猴子共摘多少個(gè)桃子?第127頁(yè)遞推方法循環(huán)結(jié)構(gòu)#includeint main()int i,s=1;for(i=9;i=1;i-) s=(s+1)*2; printf(第%d天有%d個(gè)桃子n,i,s); return 0;第128頁(yè)函

37、數(shù)遞歸調(diào)用取代循環(huán)結(jié)構(gòu)#includeint f(int n)int s;if(n=10) s=1;else s=(f(n+1)+1)*2;return s;int main() printf(第1天有%d個(gè)桃子n,f(1); return 0;第129頁(yè)7.7數(shù)組作為函數(shù)參數(shù)7.7.1數(shù)組元素作函數(shù)實(shí)參7.7.2數(shù)組名作函數(shù)參數(shù)7.7.3多維數(shù)組名作函數(shù)參數(shù)第130頁(yè)7.7.1數(shù)組元素作函數(shù)實(shí)參 例7.9 輸入10個(gè)數(shù),要求輸出其中值最大元素和該數(shù)是第幾個(gè)數(shù)。第131頁(yè)7.7.1數(shù)組元素作函數(shù)實(shí)參解題思緒:定義數(shù)組a,用來存放10個(gè)數(shù)設(shè)計(jì)函數(shù)max,用來求兩個(gè)數(shù)中大者在主函數(shù)中定義變量m,初

38、值為a0,每次調(diào)用max函數(shù)后返回值存放在m中用“打擂臺(tái)”算法,依次將數(shù)組元素a1到a9與m比較,最終得到m值就是10個(gè)數(shù)中最大者第132頁(yè)#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);第133頁(yè) 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“

39、,n+1);int max(int x,int y) return(xy?x:y); 第134頁(yè)7.7.2數(shù)組名作函數(shù)參數(shù)除了能夠用數(shù)組元素作為函數(shù)參數(shù)外,還能夠用數(shù)組名作函數(shù)參數(shù)(包含實(shí)參和形參)用數(shù)組元素作實(shí)參時(shí),向形參變量傳遞是數(shù)組元素值用數(shù)組名作函數(shù)實(shí)參時(shí),向形參傳遞是數(shù)組首元素地址第135頁(yè)7.7.2數(shù)組名作函數(shù)參數(shù) 例7.10 有一個(gè)一維數(shù)組score,內(nèi)放10個(gè)學(xué)生成績(jī),求平均成績(jī)。解題思緒:用函數(shù)average求平均成績(jī),用數(shù)組名作為函數(shù)實(shí)參,形參也用數(shù)組名在average函數(shù)中引用各數(shù)組元素,求平均成績(jī)并返回main函數(shù)第136頁(yè)#include int main() flo

40、at 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ù)組第137頁(yè)float average(float array10) int i; float aver,sum=array0; for(i=1;i10;i+) sum=sum+arrayi; aver=sum/10; return

41、(aver);定義形參數(shù)組相當(dāng)于score0相當(dāng)于scorei第138頁(yè) 例7.11 有兩個(gè)班級(jí),分別有35名和30名學(xué)生,調(diào)用一個(gè)average函數(shù),分別求這兩個(gè)班學(xué)生平均成績(jī)。第139頁(yè)解題思緒:需要處理怎樣用同一個(gè)函數(shù)求兩個(gè)不一樣長(zhǎng)度數(shù)組平均值問題定義average函數(shù)時(shí)不指定數(shù)組長(zhǎng)度,在形參表中增加一個(gè)整型變量i從主函數(shù)把數(shù)組實(shí)際長(zhǎng)度從實(shí)參傳遞給形參i這個(gè)i用來在average函數(shù)中控制循環(huán)次數(shù)為簡(jiǎn)化,設(shè)兩個(gè)班學(xué)生數(shù)分別為5和10第140頁(yè)#include int main() float average(float array ,int n); float score15=98.5,

42、97,91.5,60,55; float score210=67.5,89.5,99,69.5, 77,89.5,76.5,54,60,99.5; printf(“%6.2fn”,average(score1,5); printf(“%6.2fn”,average(score2,10); return 0;第141頁(yè)float 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)用形式為average(score1,5

43、)時(shí)相當(dāng)于score10相當(dāng)于score1i相當(dāng)于5第142頁(yè)float 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)用形式為average(score2,10)時(shí)相當(dāng)于score20相當(dāng)于score2i相當(dāng)于10第143頁(yè) 例7.12用選擇法對(duì)數(shù)組中10個(gè)整數(shù)按由小到大排序。解題思緒:所謂選擇法就是先將10個(gè)數(shù)中最小數(shù)與a0對(duì)換;再將a1到a9中最小數(shù)與a1對(duì)換每比較一輪,找出一個(gè)未經(jīng)排序數(shù)中最小一個(gè)共比較9

44、輪第144頁(yè)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小到大排序第145頁(yè)#include int main() void sort(int array,int n); int a10,i; printf(enter 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); return 0; 第146頁(yè)void sort

45、(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=arrayi; arrayi=t; 在sortisort9中,最小數(shù)與sorti對(duì)換第147頁(yè)課堂練習(xí)寫一個(gè)函數(shù),可對(duì)任意個(gè)整數(shù)進(jìn)行起泡排序(升序,降序可選) 第148頁(yè)7.7.3多維數(shù)組名作函數(shù)參數(shù) 例7.13 有一個(gè)矩陣,求全部元素中最大值。解題思緒:先使變量max初值等于矩陣中第一個(gè)元素值,然后將矩陣中各個(gè)元素值與max相比,每次比較后都把“大者”存放在max中,全部元素比

46、較完后,max 值就是全部元素最大值。第149頁(yè)#include int main() int max_value(int array4); int a34=1,3,5,7,2,4,6,8, 15,17,34,12; printf(“Max value is %dn”, max_value(a); return 0;能夠省略不能省略要與實(shí)參數(shù)組第二維大小相同第150頁(yè)int max_value(int array4) int i,j,max; max = array00; for (i=0;i3;i+) for(j=0;jmax) max = arrayij; return (max);要與實(shí)

47、參數(shù)組第二維大小相同第151頁(yè)7.8局部變量和全局變量7.8.1 局部變量7.8.2 全局變量第152頁(yè)7.8.1 局部變量定義變量可能有三種情況:在函數(shù)開頭定義在函數(shù)內(nèi)復(fù)合語(yǔ)句內(nèi)定義在函數(shù)外部定義第153頁(yè)7.8.1 局部變量在一個(gè)函數(shù)內(nèi)部定義變量只在本函數(shù)范圍內(nèi)有效在復(fù)合語(yǔ)句內(nèi)定義變量只在本復(fù)合語(yǔ)句范圍內(nèi)有效在函數(shù)內(nèi)部或復(fù)合語(yǔ)句內(nèi)部定義變量稱為“局部變量”第154頁(yè)float f1( int a) int b,c; char f2(int x,int y) int i,j; int main( ) int m,n; return 0; a、b、c僅在此函數(shù)內(nèi)有效x、y、i、j僅在此函數(shù)內(nèi)有

48、效m、n僅在此函數(shù)內(nèi)有效第155頁(yè)float f1( int a) int b,c; char f2(int x,int y) int i,j; int main( ) int a,b; return 0; 類似于不一樣班同名學(xué)生a、b也僅在此函數(shù)內(nèi)有效第156頁(yè)int main ( ) int a,b; int c; c=a+b; c僅在此復(fù)合語(yǔ)句內(nèi)有效a、b僅在此復(fù)合語(yǔ)句內(nèi)有效第157頁(yè)7.8.2全局變量在函數(shù)內(nèi)定義變量是局部變量,而在函數(shù)之外定義變量稱為外部變量外部變量是全局變量(也稱全程變量)全局變量可認(rèn)為本文件中其他函數(shù)所共用有效范圍為從定義變量位置開始到根源文件結(jié)束第158頁(yè)int

49、 p=1,q=5float f1(int a) int b,c; char c1,c2;char f2 (int x, int y) int i,j; int main ( ) int m,n; return 0;p、q、c1、c2為全局變量第159頁(yè)int p=1,q=5float f1(int a) int b,c; char c1,c2;char f2 (int x, int y) int i,j; int main ( ) int m,n; return 0;p、q有效范圍c1、c2有效范圍第160頁(yè) 例7.14 有一個(gè)一維數(shù)組,內(nèi)放10個(gè)學(xué)生成績(jī),寫一個(gè)函數(shù),當(dāng)主函數(shù)調(diào)用此函數(shù)后,能

50、求出平均分、最高分和最低分。解題思路:調(diào)用一個(gè)函數(shù)可以得到一個(gè)函數(shù)返回值,現(xiàn)在希望通過函數(shù)調(diào)用能得到3個(gè)結(jié)果??梢岳萌肿兞縼磉_(dá)到此目。第161頁(yè)#include float Max=0,Min=0; int main() float average(float array ,int n); float ave,score10; int i; printf(Please enter 10 scores:n); for(i=0;i10;i+) scanf(%f,&scorei); ave=average(score,10); printf(max=%6.2fnmin=%6.2fn averag

51、e=%6.2fn,Max,Min,ave); return 0; 第162頁(yè)float average(float array ,int n) int i; float aver,sum=array0; Max=Min=array0; for(i=1;iMax) Max=arrayi; else if(arrayiMin) Min=arrayi; sum=sum+arrayi; aver=sum/n; return(aver); 第163頁(yè) ave score 10 Max Min aver array n Max Minmain函數(shù)average函數(shù)提議不在必要時(shí)不要使用全局變量第164頁(yè)

52、例7.15 若外部變量與局部變量同名,分析結(jié)果。第165頁(yè)#include int a=3,b=5; int main() int max(int a,int b); int a=8; printf(“max=%dn”,max(a,b); return 0; int max(int a,int b) int c; c=ab?a:b; return(c); a為局部變量,僅在此函數(shù)內(nèi)有效b為全局變量第166頁(yè)#include int a=3,b=5; int main() int max(int a,int b); int a=8; printf(“max=%dn”,max(a,b); retu

53、rn 0; int max(int a,int b) int c; c=ab?a:b; return(c); a、b為局部變量,僅在此函數(shù)內(nèi)有效第167頁(yè)7.9變量存放方式和生存期7.9.1動(dòng)態(tài)存放方式與靜態(tài)存放方式7.9.2 局部變量存放類別7.9.3 全局變量存放類別7.9.4 存放類別小結(jié)第168頁(yè)7.9.1動(dòng)態(tài)存放方式與靜態(tài)存放方式從變量作用域角度來觀察,變量能夠分為全局變量和局部變量從變量值存在時(shí)間(即生存期)觀察,變量存放有兩種不一樣方式:靜態(tài)存放方式和動(dòng)態(tài)存放方式靜態(tài)存放方式是指在程序運(yùn)行期間由系統(tǒng)分配固定存放空間方式動(dòng)態(tài)存放方式是在程序運(yùn)行期間依據(jù)需要進(jìn)行動(dòng)態(tài)分配存放空間方式第

54、169頁(yè)程序區(qū)靜態(tài)存放區(qū)動(dòng)態(tài)存放區(qū)用戶區(qū)將數(shù)據(jù)存放在此區(qū)全局變量全部存放在靜態(tài)存放區(qū)中函數(shù)形式參數(shù)函數(shù)中定義沒有用關(guān)鍵字static申明變量函數(shù)調(diào)用時(shí)現(xiàn)場(chǎng)保護(hù)和返回地址等存放在動(dòng)態(tài)存放區(qū)程序開始執(zhí)行時(shí)給全局變量分配存放區(qū),程序執(zhí)行完成就釋放。在程序執(zhí)行過程中占據(jù)固定存放單元函數(shù)調(diào)用開始時(shí)分配,函數(shù)結(jié)束時(shí)釋放。在程序執(zhí)行過程中,這種分配和釋放是動(dòng)態(tài)第170頁(yè)每一個(gè)變量和函數(shù)都有兩個(gè)屬性:數(shù)據(jù)類型和數(shù)據(jù)存放類別數(shù)據(jù)類型,如整型、浮點(diǎn)型等存放類別指是數(shù)據(jù)在內(nèi)存中存放方式(如靜態(tài)存放和動(dòng)態(tài)存放)存放類別包含: 自動(dòng)、靜態(tài)、存放器、外部依據(jù)變量存放類別,能夠知道變量作用域和生存期第171頁(yè)7.9.2 局

55、部變量存放類別1.自動(dòng)變量(auto變量)局部變量,假如不專門申明存放類別,都是動(dòng)態(tài)地分配存放空間調(diào)用函數(shù)時(shí),系統(tǒng)會(huì)給局部變量分配存放空間,調(diào)用結(jié)束時(shí)就自動(dòng)釋放空間。所以這類局部變量稱為自動(dòng)變量自動(dòng)變量用關(guān)鍵字auto作存放類別申明第172頁(yè)7.9.2 局部變量存放類別int f(int a) auto int b,c=3; 能夠省略第173頁(yè)7.9.2 局部變量存放類別2.靜態(tài)局部變量(static局部變量)希望函數(shù)中局部變量在函數(shù)調(diào)用結(jié)束后不消失而繼續(xù)保留原值,即其占用存放單元不釋放,在下一次再調(diào)用該函數(shù)時(shí),該變量已經(jīng)有值(就是上一次函數(shù)調(diào)用結(jié)束時(shí)值),這時(shí)就應(yīng)該指定該局部變量為“靜態(tài)局部

56、變量”,用關(guān)鍵字static進(jìn)行申明第174頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);調(diào)用三次每調(diào)用一次,開辟新a和b,但c不是第175頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf

57、(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);03bc第一次調(diào)用開始第176頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);03bc第一次調(diào)用期間14第177頁(yè) 例7.16

58、考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第一次調(diào)用結(jié)束147第178頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto

59、 int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第二次調(diào)用開始04第179頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第二次調(diào)用期間0451第180頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int

60、); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第二次調(diào)用結(jié)束158第181頁(yè) 例7.16 考查靜態(tài)局部變量值。#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(“%dn”,f(a); return 0;int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; ret

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論