




已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第 7章 函數(shù) 第 7章 函數(shù) 本章概述 本章的學(xué)習(xí)目標(biāo) 主要內(nèi)容 第 7章 函數(shù) 第 7章 函數(shù) 本章概述 本章介紹函數(shù)定義的形式、調(diào)用的方法、函數(shù)嵌套調(diào)用和遞歸調(diào)用的方法、數(shù)組做函數(shù)參數(shù)的使用方法、局部變量和全局變量的使用方法、變量存儲(chǔ)類別、內(nèi)部函數(shù)和外部函數(shù)等內(nèi)容。 第 7章 函數(shù) 第 7章 函數(shù) 本章教學(xué)目的:掌握函數(shù)定義的形式,調(diào)用的方法,掌握函數(shù)嵌套調(diào)用和遞歸調(diào)用的方法,掌握數(shù)組做函數(shù)參數(shù)的使用方法,掌握局部變量和全局變量的使用方法,掌握變量存儲(chǔ)類別,了解內(nèi)部函數(shù)和外部函數(shù)。 本章教學(xué)重點(diǎn):函數(shù)的定義和調(diào)用,嵌套調(diào)用和遞歸調(diào)用,數(shù)組做函數(shù)參數(shù),局部變量和全局變量。 本章教學(xué)難點(diǎn):嵌套調(diào)用和遞歸調(diào)用,數(shù)組做函數(shù)參數(shù),局部變量和全局變量。 本章的學(xué)習(xí)目標(biāo) : 第 7章 函數(shù) 第 7章 函數(shù) 函數(shù)概述 函數(shù)的定義 函數(shù)的參數(shù)和函數(shù)的返回值 函數(shù)的調(diào)用 函數(shù)的嵌套和遞歸調(diào)用 數(shù)組作為函數(shù)的參數(shù) 局部變量和全局變量 變量的存儲(chǔ)類別 內(nèi)部函數(shù)和外部函數(shù) 序設(shè)計(jì)舉例 主要內(nèi)容 : 第 7章 函數(shù) 函數(shù)概述 在進(jìn)行程序設(shè)計(jì)時(shí),設(shè)計(jì)人員通常把一個(gè)較大的程序劃分為若干個(gè)程序模塊,每一個(gè)程序模塊用來實(shí)現(xiàn)一個(gè)特定的功能,通常把每個(gè)程序模塊稱作一個(gè)子程序。 在 程序的功能是由函數(shù)來完成的,一個(gè) 主函數(shù)調(diào)用其它函數(shù),其它函數(shù)也可以互相調(diào)用,同一個(gè)函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用任意多次。 在程序設(shè)計(jì)中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供編程時(shí)選用。在程序設(shè)計(jì)時(shí),如果能夠善于使用函數(shù),則可以減少重復(fù)編寫程序段的工作量。 第 7章 函數(shù) 一個(gè)簡(jiǎn)單的函數(shù)調(diào)用的例子: # # N 10 =97,90,88,82,79,78,73,68,66,65; ) i,s=0; i=1;i=0) 該分?jǐn)?shù)在 %中排名第 %?!?, N,t); 不存在此分?jǐn)?shù)!” ); ; 函數(shù) 數(shù) 給定分?jǐn)?shù)在數(shù)組中不存在,則返回值為 第 7章 函數(shù) 在 函數(shù)定義的角度看,函數(shù)可分為如下兩種: ( 1)標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。是由 戶不必自己定義、可以直接使用的函數(shù)。例如: 附錄 ( 2) 用戶自定義函數(shù)。是由用戶自己編寫的函數(shù),以解決用戶的專門需要。 例 第 7章 函數(shù) 函數(shù)的定義 根據(jù)有無參數(shù),可以將函數(shù)分為如下兩種形式: 1無參函數(shù) 定義形式如下: 類型標(biāo)識(shí)符 函數(shù)名( ) /*函數(shù)的首部 */ 聲明部分 /*函數(shù)體 */ 執(zhí)行部分 類型標(biāo)識(shí)符用來說明函數(shù)返回值的類型,也稱為函數(shù)的類型。若省略類型標(biāo)識(shí)符,默認(rèn)返回值類型為整型;當(dāng)函數(shù)無返回值時(shí),可以指定函數(shù)的類型為 在例 第 7章 函數(shù) 2有參函數(shù) 例 寫一個(gè)函數(shù),求兩個(gè)數(shù)的最大值。 程序?yàn)椋?a, b) x; if(ab) x=a; x=b; x; 上面定義了有參函數(shù) 數(shù)為 a和 b。 函數(shù)值。 定義形式如下: 類型標(biāo)識(shí)符 函數(shù)名(形參表列) /*函數(shù)的首部 */ 聲明部分 /*函數(shù)體 */ 執(zhí)行部分 例 第 7章 函數(shù) 對(duì)函數(shù)定義的幾點(diǎn)說明: ( 1)函數(shù)名的命名要符合標(biāo)識(shí)符的命名規(guī)則,同一程序中函數(shù)不能重名,一個(gè)函數(shù)名用來唯一標(biāo)識(shí)一個(gè)函數(shù)。 ( 2)無參函數(shù)的形參表是空的,但“()”不能省略;有參函數(shù),要說明每一個(gè)形參的類型,形參可以是變量名、數(shù)組名、指針變量名等,形參表列中若多于一個(gè)形參,則形參之間用逗號(hào)分隔。 ( 3)花括號(hào)內(nèi)的部分稱為“函數(shù)體”。函數(shù)體由聲明部分和執(zhí)行部分構(gòu)成。聲明部分對(duì)函數(shù)內(nèi)所使用變量的類型和被調(diào)用的函數(shù)進(jìn)行定義和聲明;執(zhí)行部分是實(shí)現(xiàn)函數(shù)功能的語句序列。 第 7章 函數(shù) ( 4)當(dāng)函數(shù)體為空時(shí),稱此函數(shù)為空函數(shù)。調(diào)用空函數(shù)時(shí),什么工作也不做。 ( 5)函數(shù)定義時(shí),舊版的 數(shù)首部中的形參表列僅包含形參,形參的類型另起一行來說明;新版的 數(shù)首部中的形參表列包含形參的類型和形參。 例如: x , y)為新版的函數(shù)定義方式, 而 x , y) x ,y; 為舊版的函數(shù)定義方式。 一般來說,在新版的 第 7章 函數(shù) 函數(shù)的參數(shù)和函數(shù)的返回值 形式參數(shù)和實(shí)際參數(shù) 定義函數(shù)時(shí)的參數(shù)稱為 形式參數(shù) ,簡(jiǎn)稱為 形參 。形參在該函數(shù) 未被調(diào)用時(shí)是沒有確定的取值 的,只是形式上的參數(shù)。 調(diào)用函數(shù)時(shí)的參數(shù)稱為 實(shí)際參數(shù) ,簡(jiǎn)稱為 實(shí)參 。 實(shí)參可以是變量、常量或表達(dá)式,有確定的取值 ,是實(shí)實(shí)在在的參數(shù)。 函數(shù)定義時(shí)形參不占內(nèi)存,只有發(fā)生調(diào)用時(shí),形參才被分配內(nèi)存單元,接受實(shí)參傳來的數(shù)據(jù)。 定義函數(shù)時(shí)必須定義形參的類型。 函數(shù)的形參與實(shí)參要求在個(gè)數(shù)上相等,并且對(duì)應(yīng)的形參和實(shí)參的類型要相同。 形參和實(shí)參可以同名,形參是該函數(shù)內(nèi)部的變量,即使形參和實(shí)參同名,也是兩個(gè)不同的變量,占用不同的內(nèi)存單元。 第 7章 函數(shù) 例 數(shù)組中存儲(chǔ)若干個(gè)數(shù)碼 (可以重復(fù) ),編寫一個(gè)函數(shù),對(duì)于給定的一個(gè)數(shù)碼,統(tǒng)計(jì)該數(shù)碼在數(shù)組中出現(xiàn)的次數(shù)。主函數(shù)可以多次調(diào)用上面的函數(shù),實(shí)現(xiàn)多次統(tǒng)計(jì)輸出。 # b) /*函數(shù)定義, 0=2,6,3,5,7,1,4,3,4,2,2,6,6,1,7,5,5,2,1,7; k ,n=0; k=0; k a , b) /*函數(shù)定義 */ s; s=a+b; s); /*返回計(jì)算結(jié)果:兩個(gè)實(shí)數(shù)的和 */ x,y,%f,%f”,&x,&y); /*輸入兩個(gè)實(shí)數(shù) */ x,y); /*函數(shù)調(diào)用 */ x*x,y*y)/2; n%f, %f”, ; 第 7章 函數(shù) 例 7 5 求 3到 100之間的所有素?cái)?shù)。調(diào)用函數(shù)判斷一個(gè)數(shù)是否是素?cái)?shù),要求:若函數(shù)的返回值是 1,表示該數(shù)是素?cái)?shù);若函數(shù)的返回值是 0,則表示該數(shù)不是素?cái)?shù) 。 # #i) /*函數(shù)定義 */ j,k,; k=i); j=2;j x,y) /*函數(shù)定義 */ xy?x:y); n1,n2,n3,n4,d; %d,%d,%d,%d”,& d=n1,n3,; /*函數(shù)調(diào)用 */ d”,d); ; 思考:若將題目中的 4個(gè)整數(shù)換成 1000個(gè)整數(shù),程序該如何修改? 第 7章 函數(shù) 數(shù)調(diào)用的說明 1函數(shù)調(diào)用的過程 函數(shù)調(diào)用的過程是: ( 1) 傳遞參數(shù)值。 對(duì)有參函數(shù)進(jìn)行調(diào)用時(shí),計(jì)算各個(gè)實(shí)參表達(dá)式的值,為所有的形參分配內(nèi)存單元,并按順序把實(shí)參的值傳遞給相應(yīng)的形參。 ( 2) 進(jìn)入函數(shù)的聲明部分, 為函數(shù)體內(nèi)聲明的局部變量分配內(nèi)存單元。 ( 3) 執(zhí)行函數(shù)中的語句,實(shí)現(xiàn)函數(shù)的功能,當(dāng)遇到 ”時(shí),釋放形參和本函數(shù)體內(nèi)定義的局部變量所占的內(nèi)存空間,返回到調(diào)用它的函數(shù)。 第 7章 函數(shù) 2函數(shù)調(diào)用需要具備的條件 在一個(gè)函數(shù)中調(diào)用另一函數(shù)(即被調(diào)用函數(shù))需要具備如下一些條件: ( 1)首先被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(是庫函數(shù)或用戶自定義的函數(shù))。 ( 2)如果調(diào)用庫函數(shù),一般還應(yīng)該在文件開頭用 # ( 3)如果使用用戶自己定義的函數(shù),而且該函數(shù)與調(diào)用它的函數(shù)在同一個(gè)文件中,一般還應(yīng)該在調(diào)用它的函數(shù)中或主函數(shù)之前對(duì)被調(diào)用的函數(shù)進(jìn)行聲明。在 數(shù)的聲明稱為函數(shù)原型 (使用函數(shù)的原型是 的一個(gè)重要特點(diǎn),它的作用是利用它在程序的編譯階段對(duì)調(diào)用函數(shù)的合法性進(jìn)行全面檢查。 第 7章 函數(shù) 函數(shù)聲明的一般形式為: 類型標(biāo)識(shí)符 被調(diào)用函數(shù)的函數(shù)名(參數(shù)類型 1,參數(shù)類型 2, ); 類型標(biāo)識(shí)符 被調(diào)用函數(shù)的函數(shù)名(參數(shù)類型 1 參數(shù)名 1,參數(shù)類型 2 參數(shù)名 2, ); 上面兩種函數(shù)聲明的形式均可,前一種為基本形式,為了便于閱讀程序,聲明函數(shù)時(shí)也可以加上參數(shù)名,即后一種形式,但編譯系統(tǒng)不檢查參數(shù)名。 若被調(diào)用的函數(shù)的定義出現(xiàn)在調(diào)用它的函數(shù)之前或函數(shù)返回值為整型或字符型時(shí),可以不必聲明。例如,可以把例 a , b); /*函數(shù)聲明 */ x,y,%f,%f”,&x,&y); x,y); /*函數(shù)調(diào)用 */ x*x,y*y)/2; n%f %f”, ; a , b) /*函數(shù)定義 */ s; s=a+b; s); 第 7章 函數(shù) 函數(shù)的嵌套和遞歸調(diào)用 函數(shù)的嵌套調(diào)用 其執(zhí)行過程為: 首先從 函數(shù)開始執(zhí)行程序,當(dāng)遇到調(diào)用 去執(zhí)行函數(shù) 執(zhí)行函數(shù) 遇到調(diào)用 去執(zhí)行函數(shù) 執(zhí)行函數(shù) 遇到 ”時(shí),返回函數(shù) 調(diào)用 函數(shù) 遇到 ”時(shí),返回到 調(diào)用 后遇到 ”時(shí),程序運(yùn)行結(jié)束。 第 7章 函數(shù) m); /*函數(shù)聲明 */ p); /*函數(shù)聲明 */ n; s; n:”); %d”,&n); s=n); /*函數(shù)調(diào)用 */ f”,s); ; m ) /*函數(shù)定義 */ ; i; i=1;f(n)=nf(給出的是遞歸公式, n=1或n=0時(shí)給出的“ f(n)=1”是遞歸的終結(jié)條件。 第 7章 函數(shù) 例 算 n!的遞歸程序。 程序如下: # n); /*函數(shù)聲明 */ n; n:”); %d”,&n); n n!=%n); /*函數(shù)調(diào)用 */ ; n) /*函數(shù)定義 */ n=1|n=0) ); /*若是終結(jié)條件,返回終結(jié)條件下的值 */ n*; /*若非終結(jié)條件,遞歸調(diào)用函數(shù)自身 */ 第 7章 函數(shù) 遞歸求解過程的兩個(gè)階段 調(diào)用 返回 (1)調(diào)用過程:不斷調(diào)用遞歸函數(shù),直至最終達(dá)到遞歸終結(jié)條件。 (2)返回過程:由終結(jié)遞歸條件返回開始,沿調(diào)用過程的逆過程,逐一求值返回,直至函數(shù)的最初調(diào)用結(jié)束。 第 7章 函數(shù) #n); /*函數(shù)聲明 */ ) i ; i=1; ( 2)將 1個(gè)盤從一個(gè)座移到另一個(gè)座上。 可以編寫兩個(gè)函數(shù)分別實(shí)現(xiàn)上面的兩類操作,用 類操作,用 類操作。完整程序如下: #x,y) %c%cn”,x,y); n, (n=1) m; %d”,&m); m,A,B,C); 第 7章 函數(shù) 數(shù)組作為函數(shù)的參數(shù) 數(shù)組元素同單個(gè)變量一樣,可以作為函數(shù)的實(shí)參,其用法與一般變量相同,但要求函數(shù)的相應(yīng)形參與數(shù)組元素類型一致。 數(shù)組名既可以作為函數(shù)的實(shí)參也可以作為函數(shù)的形參。 當(dāng)用數(shù)組名作為函數(shù)的參數(shù)時(shí),函數(shù)的實(shí)參與形參都應(yīng)該用數(shù)組名,且實(shí)參數(shù)組與形參數(shù)組的類型必須嚴(yán)格一致。 第 7章 函數(shù) 例 寫程序,將一維數(shù)組中的每個(gè)元素的值加 3,并顯示出來。 # b ,n); /*函數(shù)聲明 */ a =0,1,2,3,4,5,6,7,8,9; i; a,10); /*函數(shù)調(diào)用 */ i=0;i # 10 a,n); /*函數(shù)聲明 */ ,i,; n); i=0;i a=0; b; /*定義全局變量 a,b*/ s ,n); /*函數(shù)聲明 */ k; x10; /*定義局部變量 */ k=0;a+; n %d”,a); /*輸出全局變量 ; s ,n) k,a=0; b; /*定義局部變量 k,a,b*/ k=0;k x); /*函數(shù)聲明 */ ) i,k; i=1;i x; y; x=y*y; %d”,x); ; y=3; 第 7章 函數(shù) 例 分析下列程序的運(yùn)行結(jié)果。 /* # x=0; ); d”,x); ; /* x; /*全局變量聲明 */ ) x+=3; 局變量 x 對(duì) (2)在由多文件組成的程序中使用外部變量。若某個(gè)程序由多個(gè)文件組成,多個(gè)文件要用到同一個(gè)外部變量,這時(shí)可以在某個(gè)文件中定義該變量,而在其它文件中用 例 第 7章 函數(shù) 內(nèi)部函數(shù)和外部函數(shù) 一個(gè) 些函數(shù)又可分布在多個(gè)程序文件中。 函數(shù)的定義是獨(dú)立的,而函數(shù)之間存在著調(diào)用關(guān)系。 函數(shù)可被它所在程序中的其它函數(shù)所調(diào)用,也可以指定不能被其它程序文件中的函數(shù)調(diào)用。 根據(jù)函數(shù)能否被其他源文件中的函數(shù)調(diào)用,可將函數(shù)分為兩類: 內(nèi)部函數(shù)和外部函數(shù) 。 第 7章 函數(shù) 內(nèi)部函數(shù) 內(nèi)部函數(shù)是只能被本程序文件中的函數(shù)調(diào)用的函數(shù),其它程序文件的函數(shù)不能調(diào)用該函數(shù),內(nèi)部函數(shù)也稱為靜態(tài)函數(shù)。 內(nèi)部函數(shù)的定義格式如下: 據(jù)類型 函數(shù)名(形式參數(shù)表列) 說明部分; 語句部分; 第 7章 函數(shù) 外部函數(shù) 外部函數(shù)是可以被程序中的其他程序文件所調(diào)用的函數(shù)。定義格式如下: 數(shù)據(jù)類型 函數(shù)名(形式參數(shù)表列) 說明部分; 語句部分; 外部函數(shù)是 省略統(tǒng)默認(rèn)為外部函數(shù),可以被其它程序文件中的函數(shù)所調(diào)用。 第 7章 函數(shù) 例 /* # ) ; /*外部函數(shù)聲明 */ %c”,); ; /* ) ch=; a /*隨機(jī)產(chǎn)生正整數(shù) 函數(shù)(兩位數(shù)) */ n; n=; /*值是 0到 32767 之間的隨機(jī)整數(shù) */ n=100 | n #00 /*不妨設(shè)班級(jí)學(xué)生數(shù)少于 100*/ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ 4; /* 中、期末和總評(píng)成績 */ 15; /* ; /* () 請(qǐng)輸入實(shí)際學(xué)生人數(shù) :”); %d”, & ) 請(qǐng)選擇下面的某一項(xiàng)任務(wù) :”); n(1)輸入每個(gè)學(xué)生的姓名、平時(shí)成績、期中成績、期末成績?!?); n(2)計(jì)算并輸出每個(gè)學(xué)生的總評(píng)成績?!?); n(3)根據(jù)總評(píng)成績對(duì)學(xué)生分類統(tǒng)計(jì),輸出各分?jǐn)?shù)段的學(xué)生數(shù)?!?); n(4)根據(jù)輸入的學(xué)生姓名,查找并打印該學(xué)生的各項(xiàng)成績?!?); n(5)結(jié)束程序運(yùn)行?!?); 1或 2或 3或 4或 5) :”); %d”, & 5) 1 : ); *調(diào)用輸入學(xué)生姓名成績函數(shù) */ 2 : ); *調(diào)用計(jì)算總評(píng)成績函數(shù) */ 3 : ); *調(diào)用統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù)函數(shù) */ 4 : ); /*調(diào)用根據(jù)姓名查找函數(shù) */ 見。” ); ; 第 7章 函數(shù) ) /*輸入學(xué)生姓名成績函數(shù) */ i; i=0;ii+) ”);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子器械采購合同
- 勞務(wù)公司勞務(wù)分包合同管理制度模板
- 員工數(shù)據(jù)保密意識(shí)培訓(xùn)
- 企業(yè)員工培訓(xùn)體系構(gòu)建與實(shí)施
- 城市交通規(guī)劃策略重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 室內(nèi)家具色彩搭配培訓(xùn)課程大綱
- 《深度解析公開》課件
- 車主掛名免責(zé)協(xié)議書范本
- 逾期利息買賣合同協(xié)議
- 退商鋪電費(fèi)合同協(xié)議
- T-CEC 153-2018并網(wǎng)型微電網(wǎng)的負(fù)荷管理技術(shù)導(dǎo)則
- 單位車輛洗車合同模板
- 人工勞務(wù)合同協(xié)議書
- 向人民檢察院的控告書范文
- SL+223-2008水利水電建設(shè)工程驗(yàn)收規(guī)程
- 系統(tǒng)集成方案
- 比亞迪催賬制度
- 導(dǎo)航欄式畢業(yè)開題答辯有內(nèi)容模板
- 初中生涯規(guī)劃班會(huì)課教案
- 2024年湖南省高中英語學(xué)業(yè)水平考試合格考模擬試卷(答案詳解)
- 常用元器件識(shí)別與測(cè)量課件
評(píng)論
0/150
提交評(píng)論