




已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第 7章 函數(shù) 第 7章 函數(shù) 本章概述 本章的學(xué)習(xí)目標 主要內(nèi)容 第 7章 函數(shù) 第 7章 函數(shù) 本章概述 本章介紹函數(shù)定義的形式、調(diào)用的方法、函數(shù)嵌套調(diào)用和遞歸調(diào)用的方法、數(shù)組做函數(shù)參數(shù)的使用方法、局部變量和全局變量的使用方法、變量存儲類別、內(nèi)部函數(shù)和外部函數(shù)等內(nèi)容。 第 7章 函數(shù) 第 7章 函數(shù) 本章教學(xué)目的:掌握函數(shù)定義的形式,調(diào)用的方法,掌握函數(shù)嵌套調(diào)用和遞歸調(diào)用的方法,掌握數(shù)組做函數(shù)參數(shù)的使用方法,掌握局部變量和全局變量的使用方法,掌握變量存儲類別,了解內(nèi)部函數(shù)和外部函數(shù)。 本章教學(xué)重點:函數(shù)的定義和調(diào)用,嵌套調(diào)用和遞歸調(diào)用,數(shù)組做函數(shù)參數(shù),局部變量和全局變量。 本章教學(xué)難點:嵌套調(diào)用和遞歸調(diào)用,數(shù)組做函數(shù)參數(shù),局部變量和全局變量。 本章的學(xué)習(xí)目標 : 第 7章 函數(shù) 第 7章 函數(shù) 函數(shù)概述 函數(shù)的定義 函數(shù)的參數(shù)和函數(shù)的返回值 函數(shù)的調(diào)用 函數(shù)的嵌套和遞歸調(diào)用 數(shù)組作為函數(shù)的參數(shù) 局部變量和全局變量 變量的存儲類別 內(nèi)部函數(shù)和外部函數(shù) 序設(shè)計舉例 主要內(nèi)容 : 第 7章 函數(shù) 函數(shù)概述 在進行程序設(shè)計時,設(shè)計人員通常把一個較大的程序劃分為若干個程序模塊,每一個程序模塊用來實現(xiàn)一個特定的功能,通常把每個程序模塊稱作一個子程序。 在 程序的功能是由函數(shù)來完成的,一個 主函數(shù)調(diào)用其它函數(shù),其它函數(shù)也可以互相調(diào)用,同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。 在程序設(shè)計中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供編程時選用。在程序設(shè)計時,如果能夠善于使用函數(shù),則可以減少重復(fù)編寫程序段的工作量。 第 7章 函數(shù) 一個簡單的函數(shù)調(diào)用的例子: # # N 10 =97,90,88,82,79,78,73,68,66,65; ) i,s=0; i=1;i=0) 該分數(shù)在 %中排名第 %?!?, N,t); 不存在此分數(shù)!” ); ; 函數(shù) 數(shù) 給定分數(shù)在數(shù)組中不存在,則返回值為 第 7章 函數(shù) 在 函數(shù)定義的角度看,函數(shù)可分為如下兩種: ( 1)標準函數(shù),即庫函數(shù)。是由 戶不必自己定義、可以直接使用的函數(shù)。例如: 附錄 ( 2) 用戶自定義函數(shù)。是由用戶自己編寫的函數(shù),以解決用戶的專門需要。 例 第 7章 函數(shù) 函數(shù)的定義 根據(jù)有無參數(shù),可以將函數(shù)分為如下兩種形式: 1無參函數(shù) 定義形式如下: 類型標識符 函數(shù)名( ) /*函數(shù)的首部 */ 聲明部分 /*函數(shù)體 */ 執(zhí)行部分 類型標識符用來說明函數(shù)返回值的類型,也稱為函數(shù)的類型。若省略類型標識符,默認返回值類型為整型;當函數(shù)無返回值時,可以指定函數(shù)的類型為 在例 第 7章 函數(shù) 2有參函數(shù) 例 寫一個函數(shù),求兩個數(shù)的最大值。 程序為: a, b) x; if(ab) x=a; x=b; x; 上面定義了有參函數(shù) 數(shù)為 a和 b。 函數(shù)值。 定義形式如下: 類型標識符 函數(shù)名(形參表列) /*函數(shù)的首部 */ 聲明部分 /*函數(shù)體 */ 執(zhí)行部分 例 第 7章 函數(shù) 對函數(shù)定義的幾點說明: ( 1)函數(shù)名的命名要符合標識符的命名規(guī)則,同一程序中函數(shù)不能重名,一個函數(shù)名用來唯一標識一個函數(shù)。 ( 2)無參函數(shù)的形參表是空的,但“()”不能省略;有參函數(shù),要說明每一個形參的類型,形參可以是變量名、數(shù)組名、指針變量名等,形參表列中若多于一個形參,則形參之間用逗號分隔。 ( 3)花括號內(nèi)的部分稱為“函數(shù)體”。函數(shù)體由聲明部分和執(zhí)行部分構(gòu)成。聲明部分對函數(shù)內(nèi)所使用變量的類型和被調(diào)用的函數(shù)進行定義和聲明;執(zhí)行部分是實現(xiàn)函數(shù)功能的語句序列。 第 7章 函數(shù) ( 4)當函數(shù)體為空時,稱此函數(shù)為空函數(shù)。調(diào)用空函數(shù)時,什么工作也不做。 ( 5)函數(shù)定義時,舊版的 數(shù)首部中的形參表列僅包含形參,形參的類型另起一行來說明;新版的 數(shù)首部中的形參表列包含形參的類型和形參。 例如: x , y)為新版的函數(shù)定義方式, 而 x , y) x ,y; 為舊版的函數(shù)定義方式。 一般來說,在新版的 第 7章 函數(shù) 函數(shù)的參數(shù)和函數(shù)的返回值 形式參數(shù)和實際參數(shù) 定義函數(shù)時的參數(shù)稱為 形式參數(shù) ,簡稱為 形參 。形參在該函數(shù) 未被調(diào)用時是沒有確定的取值 的,只是形式上的參數(shù)。 調(diào)用函數(shù)時的參數(shù)稱為 實際參數(shù) ,簡稱為 實參 。 實參可以是變量、常量或表達式,有確定的取值 ,是實實在在的參數(shù)。 函數(shù)定義時形參不占內(nèi)存,只有發(fā)生調(diào)用時,形參才被分配內(nèi)存單元,接受實參傳來的數(shù)據(jù)。 定義函數(shù)時必須定義形參的類型。 函數(shù)的形參與實參要求在個數(shù)上相等,并且對應(yīng)的形參和實參的類型要相同。 形參和實參可以同名,形參是該函數(shù)內(nèi)部的變量,即使形參和實參同名,也是兩個不同的變量,占用不同的內(nèi)存單元。 第 7章 函數(shù) 例 數(shù)組中存儲若干個數(shù)碼 (可以重復(fù) ),編寫一個函數(shù),對于給定的一個數(shù)碼,統(tǒng)計該數(shù)碼在數(shù)組中出現(xiàn)的次數(shù)。主函數(shù)可以多次調(diào)用上面的函數(shù),實現(xiàn)多次統(tǒng)計輸出。 # 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); /*返回計算結(jié)果:兩個實數(shù)的和 */ x,y,%f,%f”,&x,&y); /*輸入兩個實數(shù) */ x,y); /*函數(shù)調(diào)用 */ x*x,y*y)/2; n%f, %f”, ; 第 7章 函數(shù) 例 7 5 求 3到 100之間的所有素數(shù)。調(diào)用函數(shù)判斷一個數(shù)是否是素數(shù),要求:若函數(shù)的返回值是 1,表示該數(shù)是素數(shù);若函數(shù)的返回值是 0,則表示該數(shù)不是素數(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個整數(shù)換成 1000個整數(shù),程序該如何修改? 第 7章 函數(shù) 數(shù)調(diào)用的說明 1函數(shù)調(diào)用的過程 函數(shù)調(diào)用的過程是: ( 1) 傳遞參數(shù)值。 對有參函數(shù)進行調(diào)用時,計算各個實參表達式的值,為所有的形參分配內(nèi)存單元,并按順序把實參的值傳遞給相應(yīng)的形參。 ( 2) 進入函數(shù)的聲明部分, 為函數(shù)體內(nèi)聲明的局部變量分配內(nèi)存單元。 ( 3) 執(zhí)行函數(shù)中的語句,實現(xiàn)函數(shù)的功能,當遇到 ”時,釋放形參和本函數(shù)體內(nèi)定義的局部變量所占的內(nèi)存空間,返回到調(diào)用它的函數(shù)。 第 7章 函數(shù) 2函數(shù)調(diào)用需要具備的條件 在一個函數(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ù)在同一個文件中,一般還應(yīng)該在調(diào)用它的函數(shù)中或主函數(shù)之前對被調(diào)用的函數(shù)進行聲明。在 數(shù)的聲明稱為函數(shù)原型 (使用函數(shù)的原型是 的一個重要特點,它的作用是利用它在程序的編譯階段對調(diào)用函數(shù)的合法性進行全面檢查。 第 7章 函數(shù) 函數(shù)聲明的一般形式為: 類型標識符 被調(diào)用函數(shù)的函數(shù)名(參數(shù)類型 1,參數(shù)類型 2, ); 類型標識符 被調(diào)用函數(shù)的函數(shù)名(參數(shù)類型 1 參數(shù)名 1,參數(shù)類型 2 參數(shù)名 2, ); 上面兩種函數(shù)聲明的形式均可,前一種為基本形式,為了便于閱讀程序,聲明函數(shù)時也可以加上參數(shù)名,即后一種形式,但編譯系統(tǒng)不檢查參數(shù)名。 若被調(diào)用的函數(shù)的定義出現(xiàn)在調(diào)用它的函數(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í)行程序,當遇到調(diào)用 去執(zhí)行函數(shù) 執(zhí)行函數(shù) 遇到調(diào)用 去執(zhí)行函數(shù) 執(zhí)行函數(shù) 遇到 ”時,返回函數(shù) 調(diào)用 函數(shù) 遇到 ”時,返回到 調(diào)用 后遇到 ”時,程序運行結(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時給出的“ 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ù) 遞歸求解過程的兩個階段 調(diào)用 返回 (1)調(diào)用過程:不斷調(diào)用遞歸函數(shù),直至最終達到遞歸終結(jié)條件。 (2)返回過程:由終結(jié)遞歸條件返回開始,沿調(diào)用過程的逆過程,逐一求值返回,直至函數(shù)的最初調(diào)用結(jié)束。 第 7章 函數(shù) #n); /*函數(shù)聲明 */ ) i ; i=1; ( 2)將 1個盤從一個座移到另一個座上。 可以編寫兩個函數(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ù)組元素同單個變量一樣,可以作為函數(shù)的實參,其用法與一般變量相同,但要求函數(shù)的相應(yīng)形參與數(shù)組元素類型一致。 數(shù)組名既可以作為函數(shù)的實參也可以作為函數(shù)的形參。 當用數(shù)組名作為函數(shù)的參數(shù)時,函數(shù)的實參與形參都應(yīng)該用數(shù)組名,且實參數(shù)組與形參數(shù)組的類型必須嚴格一致。 第 7章 函數(shù) 例 寫程序,將一維數(shù)組中的每個元素的值加 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ù) 例 分析下列程序的運行結(jié)果。 /* # x=0; ); d”,x); ; /* x; /*全局變量聲明 */ ) x+=3; 局變量 x 對 (2)在由多文件組成的程序中使用外部變量。若某個程序由多個文件組成,多個文件要用到同一個外部變量,這時可以在某個文件中定義該變量,而在其它文件中用 例 第 7章 函數(shù) 內(nèi)部函數(shù)和外部函數(shù) 一個 些函數(shù)又可分布在多個程序文件中。 函數(shù)的定義是獨立的,而函數(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)默認為外部函數(shù),可以被其它程序文件中的函數(shù)所調(diào)用。 第 7章 函數(shù) 例 /* # ) ; /*外部函數(shù)聲明 */ %c”,); ; /* ) ch=; a /*隨機產(chǎn)生正整數(shù) 函數(shù)(兩位數(shù)) */ n; n=; /*值是 0到 32767 之間的隨機整數(shù) */ n=100 | n #00 /*不妨設(shè)班級學(xué)生數(shù)少于 100*/ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ ); /*函數(shù)聲明 */ 4; /* 中、期末和總評成績 */ 15; /* ; /* () 請輸入實際學(xué)生人數(shù) :”); %d”, & ) 請選擇下面的某一項任務(wù) :”); n(1)輸入每個學(xué)生的姓名、平時成績、期中成績、期末成績。” ); n(2)計算并輸出每個學(xué)生的總評成績?!?); n(3)根據(jù)總評成績對學(xué)生分類統(tǒng)計,輸出各分數(shù)段的學(xué)生數(shù)?!?); n(4)根據(jù)輸入的學(xué)生姓名,查找并打印該學(xué)生的各項成績。” ); n(5)結(jié)束程序運行?!?); 1或 2或 3或 4或 5) :”); %d”, & 5) 1 : ); *調(diào)用輸入學(xué)生姓名成績函數(shù) */ 2 : ); *調(diào)用計算總評成績函數(shù) */ 3 : ); *調(diào)用統(tǒng)計各分數(shù)段人數(shù)函數(shù) */ 4 : ); /*調(diào)用根據(jù)姓名查找函數(shù) */ 見?!?); ; 第 7章 函數(shù) ) /*輸入學(xué)生姓名成績函數(shù) */ i; i=0;ii+) ”);
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 本年度辦公室工作總結(jié)及下一年度規(guī)劃報告
- 甘肅省武威市涼州區(qū)武威第八中學(xué)2024-2025學(xué)年高一下學(xué)期開學(xué)生物學(xué)試題(含答案)
- 古代寓言故事教案狐貍與烏鴉新解
- 雪孩子幼兒教育動畫片觀后感
- 故事性文本的寫作技巧與實踐練習(xí):初中作文指導(dǎo)課程教案
- 互聯(lián)網(wǎng)產(chǎn)品聯(lián)合推廣合作協(xié)議書
- 古詩文朗讀技巧與欣賞
- 小學(xué)生綜合素質(zhì)評價標準征文
- 法律學(xué)科民法學(xué)原理試題及答案庫
- 家用電器選購與使用注意事項指南
- 施工機械檢查驗收表(挖掘機)
- JBT 14856-2023 高溫袋式除塵器 (正式版)
- 戶主變更協(xié)議書
- 2024年阜陽職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 《打草驚蛇》課件
- 圍手術(shù)期管理課件
- 蝦皮shopee新手賣家考試題庫及答案
- 公路隧道豎井施工技術(shù)規(guī)程(征求意見稿)
- 五年級口算1000題(打印版)
- 《孔乙己》教案(4篇)
- 鋁合金壓鑄件PFMEA分析
評論
0/150
提交評論