程序設(shè)計(jì)基礎(chǔ)07_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)07_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)07_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)07_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)07_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)東北大學(xué)高級(jí)語(yǔ)言程序設(shè)計(jì)課程組課程網(wǎng)站: 有自己的界面 有相關(guān)的操作 完成獨(dú)立的功能各個(gè)模塊可以分別由不同的人員編寫和調(diào)試將不同的模塊組裝成一個(gè)完整的程序 將所有的程序模塊象積木一樣裝配起來(lái)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 在設(shè)計(jì)時(shí),往往將一些常用的功能模塊編寫成為函數(shù),放在函數(shù)庫(kù)中,供大家選用或多次調(diào)用,以減少重復(fù)性的編寫程序 C程序的功能可以通過(guò)函數(shù)之間的調(diào)用實(shí)現(xiàn)方便的利用函數(shù)作為程序模塊實(shí)現(xiàn) C語(yǔ)言程序設(shè)計(jì)的模塊化程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) C C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n預(yù)編譯命令預(yù)編譯命令函數(shù)函數(shù)1 1函數(shù)函數(shù)n n

2、函數(shù)體函數(shù)體函數(shù)首部函數(shù)首部程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) )不同源文件的組裝可以通過(guò)工程文件實(shí)現(xiàn) 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) )n用戶定義函數(shù)max( ) 主函數(shù)可以定義在程序的任意位置n函數(shù)的定義是平行的彼此相互獨(dú)立不能嵌套定義在主函數(shù)中n調(diào)用庫(kù)函數(shù)n調(diào)用用戶函數(shù)例:求最大值函數(shù)例:求最大值函數(shù)#include /*函數(shù)函數(shù)max()的原型說(shuō)明()的原型說(shuō)明*/ int max (int x,int y);); void main()() int n1,n2,n3, a; scanf(“%d%d” ,&n1,&n2,&n3);); a=max(n1,n2);); a=max(a

3、,n3);); printf(“最大值是最大值是%d” ,a);); /*函數(shù)函數(shù)max()的定義()的定義*/ int max(int x,int y) int z ; if (xy)z=x; else z=y; return (z);); 函數(shù)舉例程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)庫(kù)函數(shù)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include #include main () int i,j,num; for (i=0;i10;i+) num=rand()%10+1; for (j=0;jnum;j+) printf(*); printf( n ); printf(n) ; 本例是在屏幕上輸出本例是在屏幕上輸出101

4、0行行* *,每一行每一行* *的個(gè)數(shù)是的個(gè)數(shù)是1 12020之間的之間的隨機(jī)數(shù),程序中用到了一個(gè)可隨機(jī)數(shù),程序中用到了一個(gè)可以產(chǎn)生隨機(jī)數(shù)的庫(kù)函數(shù)以產(chǎn)生隨機(jī)數(shù)的庫(kù)函數(shù)randrand(),這個(gè)函數(shù)的調(diào)用格(),這個(gè)函數(shù)的調(diào)用格式為:式為: randrand()();調(diào)用結(jié)果返回一個(gè)隨機(jī)數(shù)。庫(kù)調(diào)用結(jié)果返回一個(gè)隨機(jī)數(shù)。庫(kù)函數(shù)函數(shù)randrand的原型說(shuō)明在頭文件的原型說(shuō)明在頭文件stdlib.hstdlib.h中。中。庫(kù)函數(shù)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include #include #include main() int i; srand(time(NULL); for(i=1;iy)z=x; e

5、lse z=y; return (z);); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 函數(shù)返回值可以是除數(shù)組和函數(shù)外的任何合法的數(shù)據(jù)類型 例:int 、long、float、char、指針、結(jié)構(gòu)體等系統(tǒng)默認(rèn)的類型是整類型 如果未指定類型,則返回值為整型可用void表示如果函數(shù)沒(méi)有返回值 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 是C語(yǔ)言函數(shù)定義中唯一不可省略的部分 需符合C語(yǔ)言命名規(guī)則的標(biāo)識(shí)符用在程序中標(biāo)識(shí)函數(shù),并用該標(biāo)識(shí)符調(diào)用函數(shù) 一個(gè)好的函數(shù)名應(yīng)該能夠反映該函數(shù)的模

6、塊的功能函數(shù)名本身代表數(shù)值 它代表了該函數(shù)的入口地址 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名(形參表說(shuō)明)(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 作用是指出每一個(gè)形參的類型和形參的名稱 包括形參的類型和形參標(biāo)識(shí)符 當(dāng)調(diào)用函數(shù)時(shí),接受來(lái)自主調(diào)函數(shù)的數(shù)據(jù),確定各參數(shù)的值形參表說(shuō)明的兩種表示形式: 函數(shù)類型函數(shù)類型 函數(shù)名(函數(shù)名(形參表說(shuō)明形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 int func (int x, int y ) int

7、 func ( x, y )int x, y; 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 括起來(lái)的部分是函數(shù)的主體函數(shù)體是一段體現(xiàn)函數(shù)功能的程序函數(shù)內(nèi)部應(yīng)有自己的說(shuō)明語(yǔ)句和執(zhí)行語(yǔ)句 形式參數(shù)表中經(jīng)過(guò)說(shuō)明的變量可以在函數(shù)體內(nèi)直接使用 但函數(shù)內(nèi)定義的變量不可以與形參同名提示 函數(shù)體部分可以沒(méi)有,空函數(shù),但是每個(gè)函數(shù)體外面的一對(duì) 不能省略 任何情況下不允許一個(gè)函數(shù)內(nèi)部定義另外一個(gè)函數(shù)(函數(shù)不能嵌套定義) 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) C語(yǔ)言要求函數(shù)定義的類型應(yīng)當(dāng)與返

8、回語(yǔ)句中表達(dá)式的類型保持一致 當(dāng)兩者不一致時(shí),系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,將函數(shù)返回語(yǔ)句中表達(dá)式的類型轉(zhuǎn)換為函數(shù)定義時(shí)的類型提示 函數(shù)的類型決定著返回值的類型 系統(tǒng)進(jìn)行自動(dòng)的轉(zhuǎn)換會(huì)造成程序的不清晰、可讀性差等 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 #include main( ) float a,b;i

9、nt c;scanf (%f%f, &a, &b);c = max(a,b);printf (MAX is %dn, c); max ( float x, float y ) float z;z = xy ? x : y;return(z); 運(yùn)行時(shí),若從鍵盤輸入:運(yùn)行時(shí),若從鍵盤輸入:4.5 6.8結(jié)果為:結(jié)果為:6程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 return (表達(dá)式表達(dá)式) ; /*return(2*3)表示函數(shù)返回值為表

10、示函數(shù)返回值為6 */return表達(dá)式;表達(dá)式; /*return 2*3 表示函數(shù)返回值為表示函數(shù)返回值為6 */return; /*沒(méi)有返回值沒(méi)有返回值*/程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 并不是函數(shù)執(zhí)行后沒(méi)有值 只是沒(méi)有被用戶指定并由系統(tǒng)分配函數(shù)一個(gè)隨機(jī)值函數(shù)中不需要指明返回值時(shí)可以不寫返回語(yǔ)句 此時(shí),并不意味該函數(shù)不帶回返回值,而是帶回一個(gè)不確定的值,有可能給程序帶來(lái)某種意外的影響 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 例如對(duì)帶有返回值的函數(shù),在調(diào)用

11、時(shí),可以將其作為同類型的一個(gè)變量 一樣使用 例如 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值;函數(shù)返回值 sign(int x) if(x0) return(1); if(x=0) return(0);); if(x 0) renturn(-1);); int a,b,c,max; max=max(c,max(a,b););程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 函數(shù)類型函數(shù)類型 函數(shù)名(形參表說(shuō)明)函數(shù)名(形參表說(shuō)明) /* 函數(shù)體函數(shù)體 */ 說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句 執(zhí)行語(yǔ)句執(zhí)行語(yǔ)句 return;函數(shù)返回值

12、;函數(shù)返回值 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) void(空)類型對(duì)于void(空)類型函數(shù),系統(tǒng)保證不使函數(shù)帶有任何值同時(shí)也禁止在調(diào)用函數(shù)中使用被調(diào)函數(shù)的值說(shuō)明沒(méi)有形參n形參表明確地寫明void,表示沒(méi)有形式參數(shù)例如:void main(void)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 函數(shù)名(形參表)函數(shù)名(形參表) 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) an allowed type in function main”例:例:void printcharvoid printchar(char cchar c) printfprintf(“%c=%d” %c=%d” ,c c,c c);); main()()int k; k=p

13、rintchar(a); /* printchar沒(méi)有返回值沒(méi)有返回值*/ printf(“%dn” ,k); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 1: void fun1void fun1(a,b,ca,b,c) printfprintf(“%d%d%d” %d%d%d” ,a a,b b,c c););?正確格式:正確格式:void fun1void fun1( int aint a,int bint b,int c int c )問(wèn)題問(wèn)題2 2: float fun2float fun2(float afloat a,float bfloat b) float afloat a,b b,c c; c

14、=a+bc=a+b; returnreturn(c c););? 形參被重復(fù)定義形參被重復(fù)定義問(wèn)題問(wèn)題3 3:已知函數(shù)已知函數(shù)abc的定義格式為:的定義格式為: void abc()() 則函數(shù)定義中則函數(shù)定義中void的含義是的含義是_。A.執(zhí)行函數(shù)執(zhí)行函數(shù)abc后,函數(shù)沒(méi)有返回值后,函數(shù)沒(méi)有返回值 B.執(zhí)行函數(shù)執(zhí)行函數(shù)abc后,函數(shù)不再返回后,函數(shù)不再返回C.執(zhí)行函數(shù)執(zhí)行函數(shù)abc后,可以返回任何類型后,可以返回任何類型D.以上答案都是錯(cuò)誤的以上答案都是錯(cuò)誤的 函數(shù)的定義程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) fun(void)int fun(void) printf(“inside fun n”); p

15、rintf(“inside fun n”); int fun1(void) int fun1(void) printf(“inside fun1n”); printf(“inside fun1n”); int sum(int x,int y)int sum(int x,int y) int result; int result; result=x+y; result=x+y; (c) int sum(int x)(c) int sum(int x) if(x=0) if(x=0) return 0; return 0; else else x+sum(x-1); x+sum(x-1);(a)(

16、a) 錯(cuò)誤錯(cuò)誤:函數(shù)函數(shù)fun1定義在函定義在函數(shù)數(shù)fun的內(nèi)部的內(nèi)部.改正改正:將函數(shù)將函數(shù)fun1的定義的定義移出函數(shù)移出函數(shù)fun之外之外.錯(cuò)誤錯(cuò)誤:函數(shù)應(yīng)該返回一個(gè)整數(shù)函數(shù)應(yīng)該返回一個(gè)整數(shù)值值,但卻沒(méi)有返回值語(yǔ)句但卻沒(méi)有返回值語(yǔ)句.改正改正:添加一個(gè)添加一個(gè)return語(yǔ)句語(yǔ)句. return result;或刪除后或刪除后 return x+y;錯(cuò)誤錯(cuò)誤:沒(méi)有返回沒(méi)有返回x+sum(x-1)的的結(jié)果結(jié)果.改正改正:把把else塊中的語(yǔ)句改為塊中的語(yǔ)句改為: return x+sum(x-1);函數(shù)的定義程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) programming.。#include func2 (

17、 ) printf (“&n);printf ( c programming .n);printf (“&n);main( ) func2( );程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) main是唯一不可缺少的函數(shù)n是整個(gè)程序的主函數(shù)程序運(yùn)行時(shí),從主函數(shù)開始執(zhí)行一個(gè)程序由多個(gè)函數(shù)組成時(shí),主函數(shù)main與程序中其它函數(shù)的任意次序排列 main作為最后一個(gè)函數(shù)放在文件結(jié)尾處,系統(tǒng)也總是要從main開始運(yùn)行語(yǔ)言的一個(gè)程序可以由多個(gè)文件組成n每個(gè)文件可以單獨(dú)編譯n將幾個(gè)文件一起聯(lián)接成一個(gè)可運(yùn)行文件n一個(gè)函數(shù)的定義不能跨越在兩個(gè)文件中函數(shù)在一個(gè)文件中必須保持完整n一個(gè)程序的多個(gè)函數(shù)定義中,不允許存在相同

18、的函數(shù)名程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 只是用來(lái)完成某種操作 主調(diào)函數(shù)并不需要它有任何的信息返回調(diào)用時(shí)可將其作為C的一個(gè)語(yǔ)句直接調(diào)用函數(shù)不能嵌套定義n一個(gè)函數(shù)的定義不能從屬與另外一個(gè)函數(shù)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) float max(float x,float y)不能寫成 float max(foat x,y),此時(shí)y為系統(tǒng)缺省的int類型函數(shù)定義小結(jié)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 應(yīng)該考慮將該函數(shù)分成完成單個(gè)任務(wù)的較小的函數(shù)函數(shù)原型、函數(shù)頭部和函數(shù)調(diào)用應(yīng)該具有一致的參數(shù)個(gè)數(shù)、參數(shù)類型、參數(shù)順序和返回值類型函數(shù)定義小結(jié)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) C 標(biāo)準(zhǔn)規(guī)定被省略的結(jié)果是不確定的、隨機(jī)的n從返回類型為void的函數(shù)

19、返回一個(gè)值會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤n定義函數(shù)時(shí),在其參數(shù)列表的)后以“;”結(jié)束是一種語(yǔ)法錯(cuò)誤n形參的類型說(shuō)明一定放在函數(shù)體內(nèi)會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤n在函數(shù)體內(nèi)部對(duì)形式參數(shù)再次定義是一種語(yǔ)法錯(cuò)誤函數(shù)定義小結(jié)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)函數(shù)調(diào)用程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) int max (int x,int y);); void main()()int n1,n2,a; scanf(“%d%d” ,&n1,&n2);); a=max(n1,n2);); printf(“最大值是最大值是%d” ,a);); int max(int x,int y) int z ; if (xy)z=x; else z=y; r

20、eturn (z);); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) (實(shí)參表);說(shuō)明n函數(shù)名確定了被調(diào)函數(shù)的對(duì)象n實(shí)參表函數(shù)調(diào)用時(shí)()內(nèi)的變量名是執(zhí)行被調(diào)函數(shù)時(shí)主調(diào)函數(shù)傳遞給形參的實(shí)際參數(shù)提示 參數(shù)的類型、個(gè)數(shù)和次序應(yīng)與函數(shù)要求的形式參數(shù)完全統(tǒng)一例例: : int fun3 int fun3()() int iint i,j j,k k; i=2i=2; j=ij=i* *i i; k=jk=j* *j j; printfprintf(“%3d%3d%3d” %3d%3d%3d” , i i,j j,k k);); mainmain()() fun3 fun3();(); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) n函數(shù)語(yǔ)句 n

21、函數(shù)表達(dá)式n函數(shù)參數(shù)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 常用于調(diào)用一個(gè)可以忽略返回值或沒(méi)有返回值的函數(shù) 只要求函數(shù)完成一定的操作程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 要求函數(shù)必須帶回一個(gè)確定的值參與表達(dá)式的運(yùn)算程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) n函數(shù)調(diào)用作為另外一個(gè)函數(shù)的實(shí)際參數(shù)n格式fun1(x,fun2);n說(shuō)明這種方式要求函數(shù)必須帶回一個(gè)確定的值 函數(shù)的參數(shù)也是表達(dá)式n例 m=max m=max(maxmax(a,ba,b),c,c););或或 printfprintf(“%d” %d” ,maxmax(a,ba,b););程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 一個(gè)函數(shù)要調(diào)用另外一個(gè)函數(shù)n首先是被調(diào)用的函數(shù)必須存在n其次還應(yīng)在主調(diào)函數(shù)中

22、對(duì)所有被調(diào)函數(shù)加以說(shuō)明否則,在連接時(shí)會(huì)出現(xiàn)找不到所調(diào)用函數(shù)的錯(cuò)誤信息函數(shù)的調(diào)用也應(yīng)遵循“先定義后使用”的原則程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 庫(kù)函數(shù)的聲明n被調(diào)函數(shù)是C語(yǔ)言系統(tǒng)提供的標(biāo)準(zhǔn)庫(kù)函數(shù)在源程序文件的開頭處,使用#include命令,將存放所調(diào)用庫(kù)函數(shù)的有關(guān)“頭文件”包含到該程序文件中來(lái)#include命令的一般形式為 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 用戶自定義函數(shù)的聲明n被調(diào)用函數(shù)為用戶自己定義的函數(shù)一般情況下,應(yīng)在主調(diào)用函數(shù)中對(duì)被調(diào)用函數(shù)(返回值)的類型進(jìn)行說(shuō)明n形式n說(shuō)明為編譯系統(tǒng)進(jìn)行類型檢查提供依據(jù) 函數(shù)值是什么類型 有多少個(gè)參數(shù),每一個(gè)參數(shù)是什么類型的 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名(形參類型形

23、參類型1 形參名形參名1,形參類型,形參類型2 形參名形參名2 )程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 用戶自定義函數(shù)的聲明n提示:在下列情況下可以省略函數(shù)聲明 當(dāng)函數(shù)的返回值為整型或字符型時(shí) 如果在同一個(gè)文件中既定義函數(shù),又調(diào)用該函數(shù) 不論定義函數(shù)與調(diào)用函數(shù)在源程序中的位置關(guān)系如何,都可以省去函數(shù)聲明 此時(shí)系統(tǒng)對(duì)其自動(dòng)按整型處理例:求兩個(gè)非負(fù)數(shù)的最大公約數(shù) 分析:采用“轉(zhuǎn)輾相除”法若若ab,求,求a/b的余數(shù)的余數(shù)r;若若r=0,則,則b為最大公約數(shù);為最大公約數(shù);若若r!=0,則,則 r-b, b- a,再一次進(jìn)行再一次進(jìn)行a/b求余數(shù)求余數(shù)r,r=0, b為最大公約數(shù)為最大公約數(shù)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)

24、 main() int a,b,r; scanf(%d%d,&a,&b); r=gcd(a,b); printf(gcd(a,b)is %dn,r); int gcd(x,y) int x,y; int a,b,t; if(xy?x:y; max=maxz?max:z; return(max);); main()() float a,b,c,max; scanf(“%f%f%f”,&a,&b,&c);); max=max_value(a,b,c);); printf(“%f” ,max);); 871。c被調(diào)函數(shù)被調(diào)函數(shù)max_valuemax_valu

25、e()()的定義放在主調(diào)函數(shù)的定義放在主調(diào)函數(shù)mainmain()之前,所以在()之前,所以在mainmain()中不再進(jìn)行對(duì)()中不再進(jìn)行對(duì)max_valuemax_value()函數(shù)的()函數(shù)的說(shuō)明。說(shuō)明。函數(shù)聲明程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 用戶自定義函數(shù)的聲明n提示:在下列情況下可以省略函數(shù)聲明 當(dāng)全局聲明被調(diào)函數(shù)時(shí) 在所有函數(shù)定義之前(即在文件的開始處),對(duì)函數(shù)類型進(jìn)行了說(shuō)明 在主調(diào)用函數(shù)中不再對(duì)被調(diào)函數(shù)(返回值)的類型進(jìn)行聲明 這種方法最常用程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) float max_value();(); void cpy();(); int count();(); main()()

26、void cpy (s1,s2) char s130 ,s220 ; int count (char str,int n) 函數(shù)聲明main()不必再聲明所調(diào)用的()不必再聲明所調(diào)用的函數(shù)類型。因此沒(méi)有包含函數(shù)類型。因此沒(méi)有包含float max_value();();void cpy();();int count();();的聲明語(yǔ)句,即沒(méi)有對(duì)這三個(gè)的聲明語(yǔ)句,即沒(méi)有對(duì)這三個(gè)被調(diào)函數(shù)進(jìn)行類型說(shuō)明。被調(diào)函數(shù)進(jìn)行類型說(shuō)明。程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 用戶自定義函數(shù)的聲明n提示:在下列情況下必須函數(shù)聲明如果函數(shù)定義在源程序中的位置在調(diào)用該函數(shù)之后 必須在調(diào)用該函數(shù)的函數(shù)中給出被調(diào)用函數(shù)的說(shuō)明如果函數(shù)的

27、定義與調(diào)用在兩個(gè)不同的文件中 不論函數(shù)返回值的類型是什么,在調(diào)用該函數(shù)時(shí)都必須給出函數(shù)聲明程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 提示n函數(shù)的聲明和函數(shù)的定義形式上十分相似,但兩者上有本質(zhì)上的不同的 函數(shù)的定義是一個(gè)完整而獨(dú)立的函數(shù)單元 在程序中,函數(shù)的定義只能有一次 函數(shù)首部后沒(méi)有“;” 函數(shù)的聲明僅是對(duì)編譯系統(tǒng)的一個(gè)說(shuō)明 是對(duì)已定義過(guò)的函數(shù)返回值的類型說(shuō)明,以通知系統(tǒng)在本函數(shù)中所調(diào)用的函數(shù)是什么類型 不包括函數(shù)體(或形參) 是一個(gè)說(shuō)明語(yǔ)句,必須以分號(hào)結(jié)束程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 例main()() float a,b,c,max; float max_value();();/*對(duì)被調(diào)函數(shù)類型進(jìn)行聲明對(duì)被調(diào)函

28、數(shù)類型進(jìn)行聲明*/ scanf(“%f%f%f”,&a,&b,&c);); max=max_value(a,b,c);); printf(“%f” ,max);); float max-value(x,y,z) float x,y,z; float max; max=xy?x:y; max=maxz?max:z; return(max);); 被調(diào)函數(shù)定義在主調(diào)函數(shù)之后,被調(diào)函數(shù)定義在主調(diào)函數(shù)之后,所以在主調(diào)函數(shù)的聲明部分對(duì)被所以在主調(diào)函數(shù)的聲明部分對(duì)被調(diào)函數(shù)的類型(既返回值的類型)調(diào)函數(shù)的類型(既返回值的類型)進(jìn)行了說(shuō)明。也可以寫成:進(jìn)行了說(shuō)明。也可以寫成: floa

29、t max_valuefloat max_value (floatfloat,floatfloat,floatfloat););程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 對(duì)被調(diào)函數(shù)的聲明n編譯系統(tǒng)需知道被調(diào)函數(shù)有幾個(gè)參數(shù),各自是什么類型,而參數(shù)的名字是無(wú)關(guān)緊要的簡(jiǎn)化對(duì)被調(diào)函數(shù)的聲明n上述方式稱為函數(shù)的原型n例float max_value (float,float,float); /* 僅聲明形參的類型,不必指出形參的名 */通常將一個(gè)文件中需調(diào)用的所有函數(shù)原型寫在文件的開始函數(shù)類型標(biāo)識(shí)符函數(shù)類型標(biāo)識(shí)符 函數(shù)名(形參類型函數(shù)名(形參類型1,形參類型,形參類型2 ););程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 型n函數(shù)原型的主要

30、目的在于聲明函數(shù)返回值的類型以及函數(shù)期望接收的參數(shù)的個(gè)數(shù)、參數(shù)類型和參數(shù)順序n如果程序中沒(méi)有某個(gè)函數(shù)的函數(shù)原型(沒(méi)有說(shuō)明),編譯系統(tǒng)就會(huì)用第一次出現(xiàn)的這個(gè)函數(shù)(函數(shù)定義或函數(shù)調(diào)用)構(gòu)造函數(shù)原型在缺省下編譯系統(tǒng)假設(shè)函數(shù)返回類型為int 而對(duì)函數(shù)參數(shù)類型不做任何假設(shè)常見錯(cuò)誤n和函數(shù)原型不匹配的函數(shù)調(diào)用會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤n函數(shù)原型和函數(shù)定義不一致,也會(huì)產(chǎn)生錯(cuò)誤程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) int i=10; main()() int j=1; j=fun();(); printf(“%d” ,j);); j=fun();(); printf(“%d” ,j);); fun()() int k=0; k=k+i

31、; i=i+10; return( k );); 演示演示89。C執(zhí)行過(guò)程:執(zhí)行過(guò)程:(1 1)主調(diào)程序)主調(diào)程序mainmain()順序執(zhí)行,第一個(gè)函()順序執(zhí)行,第一個(gè)函數(shù)調(diào)用語(yǔ)句數(shù)調(diào)用語(yǔ)句j=funj=fun();();處理處理“=”=”右邊的調(diào)用函右邊的調(diào)用函數(shù)數(shù)funfun()。()。(2 2)執(zhí)行)執(zhí)行funfun()函數(shù)體()函數(shù)體, k=k+i=10;i=20, k=k+i=10;i=20;(3 3)執(zhí)行到)執(zhí)行到returnreturn( k k )語(yǔ)句,帶回返回值)語(yǔ)句,帶回返回值 ( k= 10 k= 10 ) 。(4 4)被調(diào)函數(shù))被調(diào)函數(shù)funfun()的返回值賦給(

32、)的返回值賦給“=”=”左邊左邊的的變量變量j j,j=10j=10;(5 5)執(zhí)行庫(kù)函數(shù))執(zhí)行庫(kù)函數(shù)printfprintf,打印,打印j j的值。的值。(6 6)執(zhí)行第二個(gè)函數(shù)調(diào)用語(yǔ)句)執(zhí)行第二個(gè)函數(shù)調(diào)用語(yǔ)句j=funj=fun();();(7 7)執(zhí)行)執(zhí)行funfun()函數(shù)體()函數(shù)體, k=k+i=20; , k=k+i=20; i=i+10=20i=i+10=20;(8 8)執(zhí)行到)執(zhí)行到returnreturn( k k )語(yǔ)句,帶回返回值)語(yǔ)句,帶回返回值 ( k= 20 k= 20 ) 。(9 9)被調(diào)函數(shù))被調(diào)函數(shù)funfun()的返回值賦給()的返回值賦給“=”=”左邊

33、左邊的的變量變量j j,j=20j=20;(1010)執(zhí)行庫(kù)函數(shù))執(zhí)行庫(kù)函數(shù)printfprintf(),打?。ǎ?,打印j j的值。的值。函數(shù)執(zhí)行過(guò)程程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)參數(shù)傳遞程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) n函數(shù)之間的數(shù)據(jù)傳遞C語(yǔ)言的一個(gè)源程序文件可以由多個(gè)函數(shù)組成n每個(gè)函數(shù)在功能上是獨(dú)立的n目地就是共同實(shí)現(xiàn)某一特定的功能,以解決某個(gè)具體的實(shí)際問(wèn)題n函數(shù)與函數(shù)之間通常要傳遞數(shù)據(jù)和計(jì)算結(jié)果C語(yǔ)言中采用三種方式進(jìn)行數(shù)據(jù)傳遞n參數(shù)傳遞實(shí)參與形參一一對(duì)應(yīng)方法在主調(diào)函數(shù)與被調(diào)函數(shù)之間傳遞多個(gè)數(shù)據(jù)n返回值傳遞被調(diào)函數(shù)返回主調(diào)函數(shù)一個(gè)結(jié)果值n全局變量傳遞在一個(gè)函數(shù)內(nèi)使用其他函數(shù)中的某些變量的結(jié)果程序設(shè)計(jì)基礎(chǔ)(

34、C語(yǔ)言) 形參是函數(shù)定義時(shí)由用戶定義的形式上的變量n定義函數(shù)時(shí)函數(shù)名后()內(nèi)的變量列表n形參與函數(shù)體內(nèi)定義的其它變量一樣在函數(shù)體內(nèi)引用n這些變量在未調(diào)用函數(shù)之前并不實(shí) 際占用內(nèi)存實(shí)參是函數(shù)調(diào)用時(shí),主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)n調(diào)用函數(shù)時(shí)給該函數(shù)形參具體指定的值是常量、表達(dá)式或變量例如:例如: main()() . a=max(num1,num2);); .int max(int x,int y)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 調(diào)用時(shí)先計(jì)算表達(dá)式的值,再將結(jié)果(值)復(fù)制到形參對(duì)應(yīng)的存儲(chǔ)單元中n在函數(shù)內(nèi)部使用從實(shí)參中復(fù)制來(lái)的值進(jìn)行處理形參是函數(shù)的局部變量 僅在函數(shù)內(nèi)部才有意義 不能用它來(lái)傳遞函數(shù)的結(jié)果

35、 一旦函數(shù)執(zhí)行結(jié)束形參存儲(chǔ)單元所保存的值不再保留程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) void change(int k) printf(“2k=%dn” ,k);); k=k+10; printf( “4k=%dn” ,k);); main()() int i; i=10; printf(“1i=%dn” ,i);); change(i);); printf(“3i=%dn” ,i);); 實(shí)參實(shí)參i i10101010形參形參k k1010(調(diào)用開始時(shí))(調(diào)用開始時(shí))2020(調(diào)用結(jié)束時(shí))(調(diào)用結(jié)束時(shí))調(diào)用之前調(diào)用之前參數(shù)傳遞n“傳值”程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) main () int a,b; void

36、p(int,int); a=5; b=8; p(a,b); p(a+b,a); p(a/b,b); void p(int x,int y) y=x+y; printf(%d,%dn,x,y); 則程序的執(zhí)行結(jié)果為:則程序的執(zhí)行結(jié)果為:A.5,13 B.5,13 C.5,13 D.5,13 A.5,13 B.5,13 C.5,13 D.5,13 13,18 18,5 18,5 18,23 13,18 18,5 18,5 18,23 0,8 1,13 1,14 1,13 0,8 1,13 1,14 1,13 參數(shù)傳遞n“傳值”程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) “math.h”main()() int m,s

37、um=0; for (m=101;m=200;m=m+2) sum+=sum(m);); printf(“%dn” ,s);); int sum(int m) int i,k; k=sqrt(m);); for (i=2;i=k;i+) if(m%i=0) return (0);); return (m);); 參數(shù)傳遞n“傳值”程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include main( ) int k=2,n=0; do if(isprime(k)&isprime(k+2) n+=1; printf(“%d,%d”,k,k+2);); k=k+1; while(n15);); isprim

38、e(int a);); int k,j; j=1; k=2; while(k=a/2)& j) if (a%k= =0)j=0; else k=k+1; return(j);); 參數(shù)傳遞例題例題孿生素?cái)?shù)是指兩個(gè)相差為孿生素?cái)?shù)是指兩個(gè)相差為2的素?cái)?shù),的素?cái)?shù),例如:例如:3和和5,5和和7,11和和13等。編等。編程實(shí)現(xiàn)輸出程實(shí)現(xiàn)輸出15對(duì)孿生素?cái)?shù)。對(duì)孿生素?cái)?shù)。程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) main ( ) int x, y;x=3; y=5; printf (“before swap x=%d, y=%dn”, x, y);swap(x, y); /* 用變量用變量x和和y作為實(shí)際參數(shù)調(diào)用函

39、數(shù)作為實(shí)際參數(shù)調(diào)用函數(shù) */printf (“after swap x=%d, y=%dn”,x,y);swap ( int m, int n) int temp; /* 借助臨時(shí)變量交換兩個(gè)形參變量借助臨時(shí)變量交換兩個(gè)形參變量m和和n的值的值 */ temp = m; /* */ m = n; /* */ n= temp; /* */ printf (in swap m=%d, n=%dn, m, n);參數(shù)傳遞例題例題若在主函數(shù)中變量若在主函數(shù)中變量x=3,y=5,編寫,編寫一個(gè)函數(shù)交換主函數(shù)中兩個(gè)變量的一個(gè)函數(shù)交換主函數(shù)中兩個(gè)變量的值,使變量值,使變量x=5,y=3。 n“傳值”befo

40、re swap x=3, y=5in swap m=5, n=3after swap x=3, y=5程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) a5;a2int xapaint* pa;或或int b5; a程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) n可以采用傳遞普通變量一樣的方式以單個(gè)元素的方式實(shí)現(xiàn)數(shù)組元素的傳遞 “復(fù)制數(shù)據(jù)” 的方法由于形參是在函數(shù)定義時(shí)定義,并無(wú)具體的值,因此數(shù)組元素只能在函數(shù)調(diào)用時(shí),作函數(shù)的實(shí)參n當(dāng)用數(shù)組中的元素作函數(shù)的實(shí)參時(shí)必須在主調(diào)函數(shù)內(nèi)定義數(shù)組,并賦值實(shí)參與形參之間是“值傳遞”的方式程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) n例:求一維數(shù)組a4的所有元素之和數(shù)組元素作實(shí)參float sumall(float a,fl

41、oat b,float c,float d);); return(a+b+c+d);); main()() float sum; static float a4=1,2,3,4; sum=sumall(a0 ,a1 ,a2 ,a3);); printf(“sum=%fn” ,sum);); 演示演示8B。C在調(diào)用在調(diào)用sumallsumall函數(shù)時(shí),將函數(shù)時(shí),將數(shù)組元素?cái)?shù)組元素a0 a3a0 a3作為作為實(shí)參把值傳遞給實(shí)參把值傳遞給sumallsumall函函數(shù)的數(shù)的a a,b b,c c,d d的四個(gè)形的四個(gè)形參,是單向的按值傳遞。參,是單向的按值傳遞。程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 參數(shù)形式 如果

42、形參是數(shù)組名,則實(shí)參必須是實(shí)際的數(shù)組名 如果實(shí)參是數(shù)組名,則形參可以是同樣維數(shù)的數(shù)組名或指針數(shù)組定義 要在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組 形參數(shù)組可以不指明長(zhǎng)度 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 數(shù)組名代表了該數(shù)組在內(nèi)存中的首地址 采用的是按址傳遞方式調(diào)用方式 只需將數(shù)組名作為參數(shù)直接調(diào)用函數(shù)即可,無(wú)須使用下標(biāo)實(shí)參數(shù)組名將該數(shù)組的起始地址傳遞給形參數(shù)組,兩個(gè)數(shù)組共享一段內(nèi)存單元程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) 賦值給形參數(shù)組str兩個(gè)數(shù)組共同占用相同的內(nèi)存單元,共享數(shù)組中的數(shù)據(jù) string0與str0代表同一個(gè)元素 #include print ( char str ) printf (%s,str); ma

43、in( ) char string20= C Programming; print(string); /* 數(shù)組名做函數(shù)的實(shí)參數(shù)組名做函數(shù)的實(shí)參 */程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #define SIZE 5 void modifyarray(int ,int); void modifyelement(int); main( ) int aSIZE=0,1,2,3,4; int i; printf(“nThe values of the original array are:n”); for (i=0;i=SIZE-1;i+) printf(“%3d”,ai); printf(“n”); modif

44、yarray(a,SIZE); /*以傳址方式傳遞數(shù)組以傳址方式傳遞數(shù)組a*/ printf(“The values os the modified array are:n”); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) for(i=0;i=SIZE-1;i+) printf(“%3d”,ai); printf(“nThe values of a 3is %3dn”,a3); modifyelement(a3); printf(“The values of a3is %3dn”,a3); void modifyarray(int b ,int size) int j; for (j=0;j=size-1;j+)

45、 bj*=2; void modifyelement(int x) printf(“Velue in modifyelement is %3dn”,x*=2); 參數(shù)傳遞程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include “stdio.h” main()() int i;float a10,ave; float aver(float a10);); for (i=0;i10;i+) scanf(“%f” ,&ai);); ave=aver(a);); printf(“naver=%6.2fn” ,ave);); float aver(float b10) int i; float s=0.0,a

46、ve; for (i=0;i10;i+) s+=bi ; ave=s/10; return(ave);); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) ). #include int fun(int x ,int n) int i, s=1; for(i=0; i=n; i+) s*=xi; return s; main() int a =1,2,3,4,5,6; int x=fun(a,4 ); printf(“%d”,x); A. 24 B. 120 C. 720 D.5本題主要測(cè)試數(shù)組在函數(shù)之間本題主要測(cè)試數(shù)組在函數(shù)之間傳遞的用法。在函數(shù)間傳遞數(shù)傳遞的用法。在函數(shù)間傳遞數(shù)組時(shí),通常傳遞的是數(shù)組的首組時(shí),通常

47、傳遞的是數(shù)組的首地址。由于數(shù)組元素是連續(xù)存地址。由于數(shù)組元素是連續(xù)存放的,因此可以根據(jù)該地址找放的,因此可以根據(jù)該地址找到數(shù)組的所有的元素。由于傳到數(shù)組的所有的元素。由于傳遞數(shù)組的長(zhǎng)度為遞數(shù)組的長(zhǎng)度為 4,因此函數(shù),因此函數(shù) fun中的計(jì)算只包括元素中的計(jì)算只包括元素1,2,3,4,5,函數(shù)返回的值是,函數(shù)返回的值是1*2*3*4*5=120。所以輸。所以輸出是出是120。程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) average(arrary,n) int n; float arrary ; int i; float aver,sum=0.0; for (i=0;in;i+) sum+=arraryi ; av

48、er=sum/n; return(aver);); 定義形參時(shí)未指明數(shù)組大小,定義形參時(shí)未指明數(shù)組大小,而且引進(jìn)一個(gè)參數(shù)而且引進(jìn)一個(gè)參數(shù) n,以便,以便兩次調(diào)用兩次調(diào)用 average 函數(shù)時(shí),函數(shù)時(shí),兩個(gè)實(shí)參數(shù)組的長(zhǎng)度可以先兩個(gè)實(shí)參數(shù)組的長(zhǎng)度可以先后傳遞給后傳遞給n,從而在,從而在average函數(shù)體中能分別訪問(wèn)兩個(gè)數(shù)函數(shù)體中能分別訪問(wèn)兩個(gè)數(shù)組的所有元素組的所有元素.程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) float a8 ,b9 ; int i; for (i=0;i8;i+) scanf(“%f” ,&ai);); for (i=0;i9;i+) scanf(“%f” ,&bi););

49、printf(“aver=%7.2fn” ,average(a,8);); printf(“aver=%7.2fn” ,average(b,9);); 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)參數(shù)的嵌套調(diào)用程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) num1 num1();(); num1num1()() num2 num2();(); num2num2()() 程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include int difint dif(int x,int y,int zint x,int y,int z););int maxint max(int x,int y,int zint x,int y,int z););int minin

50、t min(int x,int y,int zint x,int y,int z););void mainvoid main()() int a,b,c,dint a,b,c,d; scanfscanf(“%d%d%d”%d%d%d”,&a,&b,&c&a,&b,&c);); d=difd=dif(a,b,c a,b,c );); printfprintf(“%dn” %dn” ,d d);); int difint dif( int x,int y,int z int x,int y,int z ) return return (maxmax(

51、x,y,zx,y,z)- - minmin(x,y,zx,y,z);); 函數(shù)嵌套調(diào)用n嵌套過(guò)程例:求三個(gè)數(shù)最大與最小的差值分析n在這個(gè)程序中共定義三個(gè)函數(shù)dif()求差值max()求最大數(shù)min()求最小數(shù)n在調(diào)用dif()時(shí)需要調(diào)用max()和 min()分別求出最大和最小程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) min(int x,int y,int z) int r; if (xy) if(yz) r=y; else r=z; else if(xy) if(xz)r=x; else r=z; else if(yz)r=y; else r=z; return(r);); 函數(shù)嵌套調(diào)用程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言) #include int isprime (int );); main()() int i,a,s; float b,c; int add(int);); float mul(int);); for (i=0;i=20;i+) s=isprime(i);); if (s)printf

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論