freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計第四章ppt西工大(已修改)

2025-01-24 07:43 本頁面
 

【正文】 1 第 4章 函數(shù) 2 第 4章 函數(shù) ? 函數(shù)定義 ? 函數(shù)參數(shù) ? 函數(shù)原型與調(diào)用 ? 內(nèi)聯(lián)函數(shù) ? 函數(shù)調(diào)用形式 ? 作用域和生命期 ? 對象初始化 ? 聲明與定義 3 第 4章 函數(shù) ? 變量修飾小結(jié) ? 程序組織結(jié)構(gòu) ? 函數(shù)應(yīng)用程序舉例 C程序各函數(shù)之間的關(guān)系 1) 不管主函數(shù)的書寫位置如何, C程序總是從主函 數(shù)開始運(yùn)行、并在主函數(shù)結(jié)束; 2) 主函數(shù)可調(diào)用所有自定義函數(shù),但不能被任何函 數(shù)調(diào)用; 3) 一個自定義函數(shù)除了可被主函數(shù)調(diào)用外,還可被 其它自定義函數(shù)調(diào)用; 4) 自定義函數(shù)可調(diào)用除主函數(shù)之外的其它自定義函 數(shù), 甚至 可直接或間接地自己調(diào)用自己; 5) 在 main函數(shù)、自定義函數(shù)中都可調(diào)用庫函數(shù)。 main 自定義 f1 自定義 f2 自定義 fn ┇ 函數(shù)調(diào)用關(guān)系圖示: 庫函數(shù) 3. 函數(shù)調(diào)用的執(zhí)行流程 嵌套調(diào)用: main a b c 開始 結(jié)束 f2 f1 調(diào)用 返回 調(diào)用 返回 間接遞歸調(diào)用: 直接遞歸調(diào)用: 調(diào)用 返回 f 4. C函數(shù)的分類 從用戶使用的角度分類: ?庫函數(shù) — 由系統(tǒng) (或第三方 )提供,包括:常用數(shù)學(xué) 庫、標(biāo)準(zhǔn) I/O庫、 圖形庫、科學(xué)計算庫 等; API、 SDK屬系統(tǒng)函數(shù)范疇。 ?用戶自定義函數(shù) — 根據(jù)特定需求自行編制; 從函數(shù)的形式分類: 無參函數(shù) ——調(diào)用時不需要任何參數(shù); 有參函數(shù) ——調(diào)用時必須給出實(shí)參,函數(shù)依據(jù)實(shí)參 進(jìn)行相應(yīng)處理。 空函數(shù) ——調(diào)試時使用的臨時占位函數(shù) 8 函數(shù)定義 ?函數(shù)定義的一般形式為: ?函數(shù)定義本質(zhì)上就是函數(shù)的實(shí)現(xiàn),包括: ?①確定函數(shù)名; ?②確定形式參數(shù)列表;③確定返回類型; ?④編寫函數(shù)體代碼。 返回類型 函數(shù)名 (形式參數(shù)列表 ) { 函數(shù)體聲明部分 函數(shù)體執(zhí)行語句 } 9 函數(shù)定義的一般形式 ?1.函數(shù)名 ? 實(shí)現(xiàn)函數(shù)需要確定函數(shù)名,以便使用函數(shù)時能夠按名引用。 ?2.形式參數(shù)列表 ? 實(shí)現(xiàn)函數(shù)需要確定有無形式參數(shù)、有多少形式參數(shù)、有什么類型的形式參數(shù)。形式參數(shù)列表是函數(shù)與調(diào)用者進(jìn)行數(shù)據(jù)交換的途徑,一般形式為: 類型 1 參數(shù)名 1,類型 2 參數(shù)名 2, 類型 3 參數(shù)名 3 , … 10 函數(shù)定義的一般形式 ? 多個參數(shù)用逗號(,)分隔,且每個參數(shù)都要有自己的類型說明,即使類型相同的參數(shù)也是如此。例如: int fun(int x, int y, double m) { return m ? x : y。 } 11 函數(shù)定義的一般形式 ? 函數(shù)可以沒有形式參數(shù),定義形式為: 返回類型 函數(shù)名 () { 函數(shù)體聲明部分 函數(shù)體執(zhí)行語句 } 返回類型 函數(shù)名 (void) { 函數(shù)體聲明部分 函數(shù)體執(zhí)行語句 } 12 函數(shù)定義的一般形式 ?3.返回類型 ?實(shí)現(xiàn)函數(shù)需要確定有無返回數(shù)據(jù)、返回什么類型的數(shù)據(jù)。返回值是函數(shù)向調(diào)用者返回數(shù)據(jù)的途徑之一, ?返回類型可以是 C語言除數(shù)組之外的內(nèi)置數(shù)據(jù)類型或自定義類型。 C語言規(guī)定一個函數(shù)如果沒有給出返回類型,則默認(rèn)是 int型 13 函數(shù)定義的一般形式 ? 函數(shù)可以不返回數(shù)據(jù),此時返回類型應(yīng)寫成 void,表示沒有返回值,其形式為: void 函數(shù)名 (形式參數(shù)列表 ) { 函數(shù)體聲明部分 函數(shù)體執(zhí)行語句 } 14 函數(shù)定義的一般形式 ?4.函數(shù)體 ? 實(shí)現(xiàn)函數(shù)最重要的是編寫函數(shù)體。函數(shù)體( function body)包含聲明部分和執(zhí)行語句,是一組能實(shí)現(xiàn)特定功能的語句序列的集合。 ? 編寫函數(shù)體是為了實(shí)現(xiàn)函數(shù)功能。故稱函數(shù)定義為函數(shù)實(shí)現(xiàn),簡稱實(shí)現(xiàn)。 ? 而函數(shù)頭簡稱接口。 15 函數(shù)定義的一般形式 例 1 include 2 int IsPrime(int m) //求素數(shù)函數(shù) 3 { //枚舉法求 m是否素數(shù) 4 int i。 5 for (i=2 。 i=m1 。 i++) 6 if (m % i==0) return 0。 7 return 1。 //是素數(shù)返回 1 8 } 第 2行為函數(shù)頭,稱為 IsPrime函數(shù)的接口。 第 3~ 8行為函數(shù)體,稱為 IsPrime函數(shù)的實(shí)現(xiàn)。 16 函數(shù)定義的一般形式 例 9 int main() 10 { 11 int m。 12 scanf(%d,amp。m)。 13 if (IsPrime(m)) printf(Yes\n)。 14 else printf(No\n)。 //不是素數(shù)輸出 No 15 return 0。 16 } 17 函數(shù)返回 說明:函數(shù)調(diào)用時,程序執(zhí)行流程就跳轉(zhuǎn)到函數(shù)中來。在函數(shù)內(nèi)部,執(zhí)行流程是從函數(shù)體的第一個語句開始往下執(zhí)行,一直執(zhí)行到函數(shù)體右括號?}?為止,稱為自然結(jié)束。 ?如果中間遇到 return語句,函數(shù)會立即返回,函數(shù)內(nèi)的執(zhí)行流程也就結(jié)束了。 18 函數(shù)返回 ?return語句有兩種形式: ?①無返回值語句: ?②有返回值語句: ?無論函數(shù)是自然結(jié)束,或是使用 return語句結(jié)束,返回值總是按返回類型來處理的。 return 。 return 表達(dá)式 。 19 函數(shù)返回 ?1.無返回值函數(shù) ? 當(dāng)函數(shù)的返回類型是 void時,表明函數(shù)無返回值。這種情況下,函數(shù)是可以自然結(jié)束的。而要用 return語句結(jié)束時,只能使用第一種 return語句形式。 void delay( ) //無參、無返回值 { long i。 for( i=0。 i=32022000。 i++)。 return。 } 20 函數(shù)返回 ?2.有返回值函數(shù) ? 當(dāng)函數(shù)的返回類型不是 void,表明函數(shù)有返回值。 int IsPrime (int n) //函數(shù)首部 { int i, k。 //局部變量定義 k=(int)sqrt(n)。 for(i=2。 i=k。 i++) if(n%i==0) return 0。 //出現(xiàn)約數(shù)返回 0 return 1。 //是素數(shù)返回 1 } 21 函數(shù)參數(shù) ?大多數(shù)函數(shù)都是有參數(shù)的。 ?本質(zhì)上,函數(shù)參數(shù)是為了讓主調(diào)函數(shù)與被調(diào)函數(shù)能夠進(jìn)行數(shù)據(jù)交換,如主調(diào)函數(shù)向被調(diào)函數(shù)傳遞一些數(shù)據(jù),被調(diào)函數(shù)向主調(diào)函數(shù)返回一些數(shù)據(jù)。 22 形式參數(shù) ?形式參數(shù) ?函數(shù)定義中的形式參數(shù)列表( parameters),簡稱形參。例如: 1 int max(int a, int b) 2 { 3 return ab ? a : b。 4 } 第 1行 a和 b就是形參。 使用說明: 1) 自定義函數(shù)可有一個以上的 return語句;這常用 于分支結(jié)構(gòu)的不同出口,但只能有一個被執(zhí)行。 如: int max(int x, int y) { if (xy) return x。 else return y。 } 2) 若函數(shù)不用 return語句返回值,其類型應(yīng)為空類 型 void;此時返回語句形式為: return。 或省略 如: void PrintStar( ) { printf(********************\n)。 return。 //或省略 } 3) return后表達(dá)式值的類型一般應(yīng)與定義函數(shù)的類 型一致;若不一致,則以定義函數(shù)時的類型為準(zhǔn) 自動轉(zhuǎn)換。 如: int average(…… ) { ┇ return(sum/)。 } //值為實(shí)型,自動轉(zhuǎn)為 int型返回 4) C99規(guī)定 main函數(shù)返回值必需是 int類型,函數(shù)體中最后一個 return 0表示程序正常退出。 25 形式參數(shù) ?函數(shù)定義時指定的形參,在未進(jìn)行函數(shù)調(diào)用前,并不實(shí)際占用內(nèi)存中的存儲單元,這也是稱它為形式參數(shù)的原因,即它們不是實(shí)際存在的。 ?只有在發(fā)生函數(shù)調(diào)用時,形參才分配實(shí)際的內(nèi)存單元,接受從主調(diào)函數(shù)傳來的數(shù)據(jù),此刻形參是真實(shí)存在的,因而可以對它們進(jìn)行各種操作。 ?當(dāng)函數(shù)調(diào)用結(jié)束后,形參占用的內(nèi)存單元被自動釋放。此后,形參又是未實(shí)際存在的。 26 實(shí)際參數(shù) ?實(shí)際參數(shù) ?函數(shù)調(diào)用時提供給被調(diào)函數(shù)的參數(shù)稱為實(shí)際參數(shù)( arguments),簡稱實(shí)參。 ?實(shí)參必須有確定的值,因?yàn)檎{(diào)用函數(shù)會將它們傳遞給形參。實(shí)參可以是常量、變量或表達(dá)式,還可以是函數(shù)的返回值。例如: x = max(a,b)。 //max函數(shù)調(diào)用 , 實(shí)參為 a,b y = max(a+3,128)。 //max函數(shù)調(diào)用 , 實(shí)參為 a+3,128 z = max(max(a,b),c)。 //max函數(shù)調(diào)用 , 實(shí)參為 max(a,b),c 總結(jié): 函數(shù)參數(shù) 形式參數(shù) ——定義函數(shù)時的參數(shù),在未發(fā)生函數(shù)調(diào) 用時并不實(shí)際占用存儲單元,僅是形 式符號。 實(shí)際參數(shù) ——調(diào)用函數(shù)時的參數(shù) 參數(shù)傳遞機(jī)制 ——C采用單向的值傳遞 28 參數(shù)傳遞機(jī)制 ?值傳遞時,實(shí)參數(shù)據(jù)傳遞給形參是單向傳遞,即只能由實(shí)參傳遞給形參,而不能由形參傳回給實(shí)參,這也是實(shí)參可以是常量和表達(dá)式的原因(這些數(shù)據(jù)不是左值)。 【 例 】 利用自定義函數(shù),找出三個數(shù)中的最大數(shù)。 include int main( ) { int a, b, c, d, max(int, int)。 scanf(%d,%d,%d, amp。a, amp。b, amp。c)。 d=max(a, b)。 //a、 b的值作為實(shí)參 / d=max(d, c)。 //d、 c的值作為實(shí)參 / printf(Max is %d\n, d)。 return 0。 } int max(int x, int y) //動態(tài)分配與釋放 { int z。 z=xy? x:y。 return z。 //z值作為返回值 } Lianxi41 8 5 形式參數(shù)和實(shí)際參數(shù)說明: 1) 編譯時并不為形參分配存儲單元,在程序運(yùn)行中 發(fā)生函數(shù)調(diào)用時,才動態(tài)地為形參分配存儲單元 , 并接受實(shí)參傳遞的值 (單向值傳遞 );函數(shù)調(diào)用結(jié)束,形參占用的存儲單元將被釋放; 如例中第一次調(diào)用: 實(shí)參: a b d=max(a, b)。 形參: x y 第二次調(diào)用 : 實(shí)參: d c d=max(d, c)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1