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

正文內(nèi)容

c語言程序設(shè)計第2版下ppt(已修改)

2025-01-16 08:52 本頁面
 

【正文】 C語言程序設(shè)計(第 2版) 第八章 ? 本章要點 ? 函數(shù)的概念 ? 函數(shù)的定義與調(diào)用 ? 函數(shù)的遞歸調(diào)用 ? 變量的作用域 ? 函數(shù)的作用域 主要內(nèi)容 函數(shù)是什么 函數(shù)是什么 一個C程序可由一個主函數(shù)和若干個其他函數(shù)構(gòu)成。一個較大的程序可分為若干個程序模塊,每一個模塊用來實現(xiàn)一個特定的功能。在高級語言中用子程序?qū)崿F(xiàn)模塊的功能。子程序由函數(shù)來完成。 函數(shù)間的調(diào)用關(guān)系 :由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。 例題 想輸出以下的結(jié)果 , 用函數(shù)調(diào)用實現(xiàn) 。 ****************** How do you do! ****************** 解題思路 在輸出的文字上下分別有一行 “ *” 號 , 顯然不必重復(fù)寫這段代碼 , 用一個函數(shù) print_star來實現(xiàn)輸出一行 “ *” 號的功能 。 再寫一個print_message 函數(shù)來輸出中間部分的信息 。 編寫程序 include void main() { void printstar()。 /*對 printstar函數(shù)聲明 */ void print_message()。/*對 print_message函數(shù)聲明 */ printstar()。 / *調(diào)用printstar函數(shù) */ print_message()。 /*調(diào)用print_message函數(shù) */ printstar()。 / *調(diào)用printstar函數(shù) */ } void printstar() / *定義 printstar函數(shù) */ { printf(* * * * * * * * * * * * * * * *\n)。 } void print_message() / *定義 print_message函數(shù) */ { printf(How do you do!\n)。 } 運行情況如下: * * * * * * * * * * * * * * * * How do you do! * * * * * * * * * * * * * * * * 說明: , 每一個程序模塊作為一個源程序文件 。 對于較大的程序 , 通常將程序內(nèi)容分別放在若干個源文件中 ,再由若干源程序文件組成一個 C程序 。 這樣便于分別編寫 、 分別編譯 , 提高調(diào)試效率 。 一個源程序文件可以為多個 C程序公用 。 說明: 2. 一個源程序文件由一個或多個函數(shù)以及其他有關(guān)內(nèi)容 ( 如命令行 、 數(shù)據(jù)定義等 ) 組成 。一個源程序文件是一個編譯單位 , 在程序編譯時是以源程序文件為單位進行編譯的 , 而不是以函數(shù)為單位進行編譯的 。 說明: 3. C程序的執(zhí)行是從 main函數(shù)開始的 , 如果在main函數(shù)中調(diào)用其他函數(shù) , 在調(diào)用后流程返回到main函數(shù) , 在 main函數(shù)中結(jié)束整個程序的運行 。 說明: 4. 所有函數(shù)都是平行的 , 即在定義函數(shù)時是分別進行的 , 是互相獨立的 。 一個函數(shù)并不從屬于另一函數(shù) , 即函數(shù)不能嵌套定義 。 函數(shù)間可以互相調(diào)用 , 但不能調(diào)用 main函數(shù) 。main函數(shù)是系統(tǒng)調(diào)用的 。 說明: , 函數(shù)有兩種: ① 標準函數(shù) , 即庫函數(shù) 。 這是由系統(tǒng)提供的 , 用戶不必自己定義這些函數(shù) , 可以直接使用它們 。 不同的 C系統(tǒng)提供的庫函數(shù)的數(shù)量和功能會有一些不同 , 但許多基本的函數(shù)是共同的 。 ② 用戶自己定義的函數(shù) 。 用以解決用戶的專門需要 。 說明: 6. 從函數(shù)的形式看 , 函數(shù)分兩類: ① 無參函數(shù) 。 無參函數(shù)一般用來執(zhí)行指定的一組操作 。 在調(diào)用無參函數(shù)時 , 主調(diào)函數(shù)不向被調(diào)用函數(shù)傳遞數(shù)據(jù) 。 ② 有參函數(shù) 。 主調(diào)函數(shù)在調(diào)用被調(diào)用函數(shù)時 , 通過參數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù) 。 為什么要定義函數(shù) C語言規(guī)定,在程序中用到的所有函數(shù),必須 “ 先定義,后使用 ” 。只有事先按規(guī)范對它進行定義,指定它的功能和它的名字,并將這些信息通知編譯系統(tǒng),在程序執(zhí)行時,編譯系統(tǒng)才會按照定義時所指定的功能執(zhí)行。 定義函數(shù)應(yīng)包括以下幾個內(nèi)容: 1. 指定函數(shù)的名字 , 以便以后按名調(diào)用 。 2. 指定函數(shù)的類型 , 即函數(shù)值的類型 。 3. 指定函數(shù)的參數(shù)的名字和類型 , 以便在調(diào)用函數(shù)時向它們傳遞數(shù)據(jù) 。 對無參函數(shù)不需要這項 。 4. 指定函數(shù)應(yīng)當(dāng)完成什么操作 , 也就是函數(shù)是做什么的 , 即函數(shù)的功能 。 這是最重要的 , 這是在函數(shù)體中解決的 。 對于 C編譯系統(tǒng)提供的庫函數(shù) , 是由編譯系統(tǒng)事先定義好的 , 對它們的定義已放在相關(guān)的頭文件中。 程序設(shè)計者不必自已定義 , 只需用 include命令把有關(guān)的頭文件包含到本文件模塊中即可 。 定義函數(shù) ( 1)定義無參函數(shù)的一般形式為 : 類型標識符 函數(shù)名 () { 聲明部分 語句部分 } ( 2)定義有參函數(shù)的一般形式為 : 類型標識符 函數(shù)名 (形式參數(shù)列表) { 聲明部分 語句部分 } 例如: int max( int x, int y) {int z; / *函數(shù)體中的聲明部分 */ z=x>y?x ∶ y; return(z); } ( 3)定義空函數(shù)的一般形式為 : 類型標識符 函數(shù)名 () { } 例如: dummy ( ) { } 主調(diào)函數(shù)調(diào)用空函數(shù)時,只表明這里要調(diào)用一個函數(shù),但函數(shù)本身什么工作也不做等 ,以后擴充函數(shù)功能時補充上。 函數(shù)的調(diào)用 函數(shù)調(diào)用的一般形式為 : 函數(shù)名 (實參表列) 說明 : ,則 “ 實參表列 ” 可以沒有,但括弧不能省略。 如 print_star()。 ,對實參求值的順序并不是確定的,有的系統(tǒng)按自左至右順序求實參的值,有的系統(tǒng)則按自右至左順序。 ,則各參數(shù)間用max(a,b)。實參與形參的個數(shù)應(yīng)相等,類型應(yīng)匹配。實參與形參按順序?qū)?yīng),一一傳遞數(shù)據(jù)。 例題 輸入兩個整數(shù) , 求輸出二者中的大者 。 要求在主函數(shù)中輸入兩個整數(shù) , 用一個函數(shù) max求出其中的大者 , 并在主函數(shù)中輸出此值 。 解題思路 題目要求用一個 max函數(shù)來實現(xiàn)比較兩個整數(shù) , 并將得到的大數(shù)帶回主函數(shù) 。 顯然 , 二個整數(shù)中的大者也應(yīng)該是整數(shù) , 因此 max函數(shù)應(yīng)當(dāng)是 int型 。 兩個數(shù)是在主函數(shù)中輸入的 , 在 max函數(shù)中進行比較 , 因此應(yīng)該定義為有參函數(shù) , 在函數(shù)調(diào)用時進行數(shù)據(jù)的傳遞 。 編寫程序 include void main() { int max(int x,int y)。 /* max函數(shù)聲明,表示在 main函數(shù)中將要調(diào)用 max函數(shù) */ int a,b,c。 printf(”please input two number:”)。 scanf(%d,%d,amp。a,amp。b)。 /* 輸入兩個整數(shù) */ c = max(a,b)。 /* 調(diào)用 max函數(shù),得到一個值,賦給 c */ printf(max is %d\n,c)。 /* 輸出 c的值就是兩個整數(shù)中的大者 */ } int max(int x,int y) /* 定義 max函數(shù),函數(shù)類型為 int型,兩個參數(shù)為 int型 */ { int z。 /* 變量 z用來存放兩個整數(shù)中的大者, int型 */ if (xy) z=x。 else z=y。 return(z)。 } 運行結(jié)果如下: please input two number:17, 32↙ Max is 17 說明: 形式參數(shù)和實際參數(shù) 形式參數(shù): 函數(shù)名后面括弧中的變量名稱為“ 形式參數(shù) ” (簡稱 “ 形參 ” ) 。 實際參數(shù): 主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù) (可以是一個表達式 )稱為 “ 實際參數(shù) ” (簡稱 “ 實參 ” ) 。 函數(shù)返回值: return后面的括弧中的值作為函數(shù)帶回的值(稱 函數(shù)返回值 )。 主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞的關(guān)系。在不同的函數(shù)之間傳遞數(shù)據(jù),可以使用的方法有: ◆ 參數(shù):通過形式參數(shù)和實際參數(shù) ◆ 返回值:用 return語句返回計算結(jié)果 ◆ 全局變量:外部變量 說明: 函數(shù)調(diào)用的過程: 通過函數(shù)調(diào)用,可使兩個函數(shù)中的數(shù)據(jù)發(fā)生聯(lián)系。 關(guān)于形參與實參的說明: 1. 在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。只有在發(fā)生函數(shù)調(diào)用時,函數(shù) max中的形參才被分配內(nèi)存單元。在調(diào)用結(jié)束后,形參所占的內(nèi)存單元也被釋放。 2. 實參可以是常量、變量或表達式, 例如: max(3,a+b); 但要求它們有確定的值。在調(diào)用時將實參的值賦給形參。 ,必須指定形參的類型。 。 5. 實參向形參的數(shù)據(jù)傳遞是單向“值傳遞”,只能由實參傳給形參,而不能由形參傳回來給實參。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。 函數(shù)的返回值 是通過函數(shù)調(diào)用使主調(diào)函數(shù)得到的確定值。 例如 :例 , max(2,3)的值是3, max(5,2)的值是 5。賦值語句將這個函數(shù)值賦給變量c。 說明: return語句獲得的。 一個函數(shù)中可以有一個以上的 return語句,執(zhí)行到哪一個 return語句,哪一個語句起作用。 return語句后面的括弧也可以不要 例如 : “return z 。” 等價于 “ return ( z ) ; ” return后面的值可以是一個表達式 。 例如 : max ( int x , int y ) { return( x y ? x :y ) ; } 2. 函數(shù)的返回值應(yīng)當(dāng)屬于某一個確定的類型,在定義函數(shù)時指定函數(shù)返回值的類型。 例如 :下面是 3個函數(shù)的首行: int max( float x , float y ) /* 函數(shù)值為整型 */ char letter( char c1, char c2) /* 函數(shù)值為字符型 */ double min( int x , int y ) /* 函數(shù)值為雙精度型 */ 注意: 凡不加類型說明的函數(shù),自動按整型處理。 return語句中的表達式類型一致。 如果函數(shù)值的類型和 return語句中表達式的值不一致,則以函數(shù)類型為準。對數(shù)值型數(shù)據(jù),可以自動進行類型轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。 ,應(yīng)當(dāng)用“ void” 定義函數(shù)為“無類型”(或稱“空類型”)。此時在函數(shù)體中不得出現(xiàn) return語句。 說明: 1.函數(shù)語句 把函數(shù)調(diào)用作為一個語句。這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。 2.函數(shù)表達式 函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為 函數(shù)表達式 。這時要求函數(shù)帶回一個確定的值以參加表達式的運算。例如 :c=2 *max(a,b); 按函數(shù)在程序中出現(xiàn)的位置來分 , 可以有以下三種函數(shù)調(diào)用方式: 3.函數(shù)參數(shù) 函數(shù)調(diào)用作為一個函數(shù)的實參。 例如 : m = max (a , max ( b , c ) ) 。 其中 max ( b , c )是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實參。 m的值是 a、 b、 c三者中的最大者。 對被調(diào)用函數(shù)的聲明和函數(shù)原型 (是庫函數(shù)或用戶自己定義的函數(shù))。但光有這一條件還不夠。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1