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

正文內(nèi)容

安徽工程科技學(xué)院(已修改)

2025-03-04 10:22 本頁面
 

【正文】 概 述 函數(shù)的定義 函數(shù)的調(diào)用 函數(shù)的嵌套及遞歸調(diào)用 數(shù)組作為函數(shù)參數(shù) 局部變量和全局變量 變量的存儲(chǔ)類別 內(nèi)部函數(shù)和外部函數(shù) 編譯預(yù)處理 程序舉例 第 6章 函 數(shù) 安徽工程科技學(xué)院 概 述 模塊化程序設(shè)計(jì)思想 面對(duì)一項(xiàng)復(fù)雜任務(wù),通常采取模塊化的解決方法。首先,分解該復(fù)雜任務(wù)成幾個(gè)大的功能模塊,根據(jù)需要還可以繼續(xù)細(xì)分,直到分解成一個(gè)個(gè)功能獨(dú)立的模塊為止。分解的結(jié)果可以描述為一棵倒立的大樹,如圖 。 圖 模塊化程序設(shè)計(jì) 大任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) ? 在程序設(shè)計(jì)中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供公共選用。要善于利用函數(shù)庫中的函數(shù),以減少重復(fù)編寫程序段的工作量。 ? 先舉一個(gè)簡單的函數(shù)調(diào)用的例子。 【例 】 main( ) { printstar( ); /* 調(diào)用 printstar函數(shù) */ print_message( ); /*調(diào)用 print_message*/ printstar( ); /*調(diào)用 printstar函數(shù) */ } printstar( ) /*printstar 函數(shù) * { printf( ******************\n); } print_message( ) /*print_message函數(shù) */ { printf(“How do you do!\n”); } 運(yùn)行結(jié)果如下: ****************** How do you do! ****************** printstart( )和 print_message( )都是用戶定義的函數(shù),分別用來輸出一排“ *”號(hào)和一行信息。 說明: ( 1)一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)組成。一個(gè)源程序文件是一編譯單位,即以源程序?yàn)閱挝贿M(jìn)行編譯,而不以函數(shù)為單位進(jìn)行編譯。 ( 2)一個(gè) C程序由一個(gè)或多個(gè)源程序文件組成。對(duì)較大的程序,一般不希望全放在一個(gè)文件中,而將函數(shù)和其他內(nèi)容(如預(yù)處理)分別放在若干個(gè)源文件中,再由若干源文件組成一個(gè) C程序。這樣可以分別編寫、分別編譯,提高調(diào)度效率。一個(gè)源文件可以為多個(gè) C程序公用。 ? ( 3) C程序的執(zhí)行從 main函數(shù)開始,調(diào)用其他函數(shù)后流程返回到 main函數(shù),在 main函數(shù)中結(jié)束整個(gè)程序的運(yùn)行, main函數(shù)是系統(tǒng)定義的。 ? ( 4)所有函數(shù)都是平行的,即在定義函數(shù)時(shí)是互相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義(這和其他的高級(jí)語言可能不同)。函數(shù)間可以互相調(diào)用,但不能調(diào)用 main函數(shù)。 ? ( 5)從用戶使用的角度看,函數(shù)有兩種; ? ①標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。這是由系統(tǒng)提供的,用戶不必自己定義這些函數(shù),可以直接使用它們。應(yīng)該說明,不同的 C系統(tǒng)提供的庫函數(shù)的數(shù)量和功能不同,當(dāng)然有一些基本的函數(shù)是相同的。 ? ②用戶自己定義的函數(shù),用戶自己編寫的用以解決特定問題。 ? ( 6)從函數(shù)的形式看,函數(shù)分兩類: ? ①無參函數(shù)。如例 printstar( )和 print_message( )就是無參函數(shù)。在調(diào)用無參函數(shù)時(shí),主調(diào)函數(shù)并不將數(shù)據(jù)傳送給被調(diào)用函數(shù),一般用來執(zhí)行指定的一組操作, printstar( )函數(shù)的作用是輸出 18個(gè)星號(hào)。無參函數(shù)可以帶回或不帶回函數(shù)值。 ? ②有參函數(shù)。在調(diào)用函數(shù)時(shí),在主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞。也就是說,主調(diào)函數(shù)可以將數(shù)據(jù)傳給被調(diào)用函數(shù)使用,被調(diào)用函數(shù)中的數(shù)據(jù)也可以帶回來供主調(diào)函數(shù)使用。 C語言程序結(jié)構(gòu) 函數(shù)是構(gòu)成 C語言程序的基本功能模塊 ,它完成一項(xiàng)相對(duì)獨(dú)立的任務(wù) 。 一個(gè) C語言程序是若干函數(shù)構(gòu)成的 , 在構(gòu)成 C程序的諸多函數(shù)中有而且只有一個(gè)主函數(shù) 。 函數(shù)是程序的最小組成單位 。 所有函數(shù)之間的關(guān)系是平行的 , 沒有從屬的概念 。 函數(shù)的平行關(guān)系使得函數(shù)的編寫相對(duì)獨(dú)立 , 便于模塊化程序設(shè)計(jì)的實(shí)現(xiàn) 。 C程序的執(zhí)行總是從主函數(shù)開始,又從主函數(shù)結(jié)束,其他函數(shù)只有通過調(diào)用關(guān)系發(fā)生作用。 函數(shù)的分類 1. 從用戶角度分 從用戶角度 , 函數(shù)可分為以下兩類 。 ( 1) 庫函數(shù) ( 2) 自定義函數(shù) ① 定義函數(shù); ② 聲明函數(shù); ③ 調(diào)用函數(shù) 。 具體使用方法將在本章中詳細(xì)介紹 。 2. 從函數(shù)形式分 從函數(shù)形式角度 , 函數(shù)可分為以下兩類 。 ( 1) 無參函數(shù) , 函數(shù)不帶參數(shù) 。 ( 2) 有參函數(shù) , 函數(shù)帶有至少一個(gè)參數(shù) 。 3. 從函數(shù)的返回值分 從函數(shù)是否有返回值 , 函數(shù)可分為以下兩類 。 ( 1) 有值函數(shù) , 調(diào)用該函數(shù)后可以得到返回值 。 ( 2) 無值函數(shù) , 調(diào)用該函數(shù)后沒有返回值 。無值函數(shù)類似于其他高級(jí)語言中的過程 。 函數(shù)的定義 函數(shù)由兩部分構(gòu)成:函數(shù)頭和函數(shù)體。 函數(shù)頭給出函數(shù)相關(guān)信息(類似“黑盒子”中的入口和出口),而函數(shù)體具體實(shí)現(xiàn)函數(shù)的功能。 函數(shù)的定義形式 函數(shù)定義的一般形式是: [類型標(biāo)識(shí)符 ] 函數(shù)名 (形式參數(shù)表列 ) 形式參數(shù)類型說明 { 數(shù)據(jù)描述部分 算法實(shí)現(xiàn)部分 } 前兩行是函數(shù)頭。形式參數(shù)(又簡稱形參)表列和形式參數(shù)類型說明部分體現(xiàn)的是一個(gè)函數(shù)的入口參數(shù)的個(gè)數(shù)及其類型。 類型標(biāo)識(shí)符說明了函數(shù)返回值的類型 , 也簡稱函數(shù)類型 。 函數(shù)體用一對(duì)花括號(hào) {}括起來 。 函數(shù)體中不僅可以使用數(shù)據(jù)描述部分描述的變量 , 而且還可以使用形式參數(shù) 。 例 函數(shù)定義示例 。 float max(x, y) float x, y。 { float temp。 if (xy) temp=x。 else temp=y。 return (temp)。 } 函數(shù)的返回值 在函數(shù)定義時(shí)需要描述函數(shù)類型 , 但沒有給出函數(shù)如何得到返回值 。 調(diào)用有值函數(shù)時(shí) , 要求被調(diào)函數(shù)返回?cái)?shù)據(jù)給主調(diào)函數(shù) , 返回的數(shù)據(jù)稱為函數(shù)返回值 , 簡稱函數(shù)值 。 得到函數(shù)返回值的方法是使用return語句 。 return語句的功能有 3個(gè) 。 ( 1) 返回一個(gè)值給主調(diào)函數(shù) 。 ( 2) 釋放在函數(shù)的執(zhí)行過程中分配的所有內(nèi)存空間 。 ( 3) 結(jié)束被調(diào)函數(shù)的運(yùn)行 , 將流程控制權(quán)交給主調(diào)函數(shù) 。 return語句使用的一般形式為: return(表達(dá)式 ) return語句應(yīng)書寫在函數(shù)體的算法實(shí)現(xiàn)部分,圓括號(hào)可以省略。 形參和返回值的設(shè)定 編寫函數(shù)時(shí) , 應(yīng)分析該函數(shù)中哪些量是函數(shù)的已知量 , 那些是函數(shù)需要得到的結(jié)果 。 設(shè)計(jì)時(shí)將已知數(shù)據(jù)作為函數(shù)的形參 , 已知數(shù)據(jù)有幾個(gè) , 形參就有幾個(gè) 。 未知數(shù)據(jù)正是函數(shù)需要得到的結(jié)果 。 除需要分析已知和未知外 , 還需要確定已知和未知的數(shù)據(jù)類型 , 從而完成對(duì)函數(shù)頭的設(shè)計(jì) 。 函數(shù)的調(diào)用 當(dāng)函數(shù)被調(diào)用時(shí) , 函數(shù)對(duì)應(yīng)的程序代碼才開始執(zhí)行 , 才能實(shí)現(xiàn)相應(yīng)的函數(shù)功能 。 對(duì)被調(diào)用函數(shù)的聲明 對(duì)被調(diào)用函數(shù)的聲明有兩種方式:外部聲明和內(nèi)部聲明 。 在主調(diào)函數(shù)內(nèi)對(duì)被調(diào)函數(shù)所作的聲明稱為內(nèi)部聲明 , 也稱為局部聲明;在函數(shù)外進(jìn)行的函數(shù)聲明稱為外部聲明 , 如果聲明在程序最前端 , 外部聲明又稱為全局聲明 。 內(nèi)部聲明過的函數(shù)只能在聲明它的主調(diào)函數(shù)內(nèi)調(diào)用 。 外部聲明過的函數(shù) , 從聲明處到本程序文件結(jié)束都可以被調(diào)用 。 內(nèi)部聲明應(yīng)放在主調(diào)函數(shù)的數(shù)據(jù)描述部分 , 外部聲明可以出現(xiàn)在程序中任何函數(shù)外 。 對(duì)被調(diào)用函數(shù)的聲明具體形式為: 函數(shù)類型 函數(shù)名 ( )。 例 函數(shù)聲明示例 。 main() { int m。 float c。 float sum()。 /*在主函數(shù) main()內(nèi)對(duì)被調(diào)函數(shù) sum()作局部聲明 , */ scanf(%d,m)。 /*只能在主函數(shù)內(nèi)調(diào)用聲明過的函數(shù)max()*/ c=sum(m)。 printf(c=%f\n,c)。 } float sum(int n) /*功能是計(jì)算數(shù)列 1/2,2/3,3/5,5/8…… 的前 n項(xiàng)之和 */ { float a,b,t,s。 int k。 a=1,b=2。s=。 for(k=2。k=n。k++) { t=a,a=b,b=a+t。 s=s+a/b。 } return (s)。 } 函數(shù)調(diào)用的一般形式 1. 函數(shù)調(diào)用的一般形式 函數(shù)名 ( 實(shí)際參數(shù)表列 ) 實(shí)際參數(shù)表列是函數(shù)入口參數(shù)的實(shí)際值 。如例 c?sum(m)中的 m就是有確定值的實(shí)際參數(shù) , sum(m)是對(duì)函數(shù)的調(diào)用 , 調(diào)用結(jié)束后得到返回值賦值給變量 c。 2. 形式參數(shù)和實(shí)際參數(shù) 有參函數(shù)在調(diào)用時(shí) , 主調(diào)函數(shù)和被調(diào)函數(shù)之間有數(shù)據(jù)傳遞 , 主調(diào)函數(shù)傳遞數(shù)據(jù)給被調(diào)函數(shù) 。 主調(diào)函數(shù)傳遞來的數(shù)據(jù)稱為實(shí)際參數(shù) , 簡稱實(shí)參 。 函數(shù)定義時(shí)形式參數(shù)僅僅是數(shù)據(jù)的抽象代表 , 沒有具體值 , 稱為形參 。 ( 1)形式參數(shù) 定義函數(shù)時(shí),函數(shù)名后的參數(shù)稱作形式參數(shù),簡稱形參。 在定義函數(shù)時(shí),系統(tǒng)并不給形參分配存儲(chǔ)單元,當(dāng)然形參也沒有具體的數(shù)值,所以稱它是形參,也叫作虛參。 形參在函數(shù)調(diào)用時(shí) , 系統(tǒng)暫時(shí)給它分配存儲(chǔ)單元 , 以便存儲(chǔ)調(diào)用函數(shù)時(shí)傳來的實(shí)參 。一旦函數(shù)結(jié)束運(yùn)行 , 系統(tǒng)馬上釋放相應(yīng)的存儲(chǔ)單元 。 ( 2) 實(shí)際參數(shù) 在調(diào)用函數(shù)時(shí) , 函數(shù)名后的參數(shù)稱作實(shí)際參數(shù) , 簡稱實(shí)參 。 調(diào)用函數(shù)時(shí) , 實(shí)參有確定的值 , 所以稱它是實(shí)際參數(shù) 。 它可以是變量 、 常量 、 表達(dá)式等任意“ 確定的值 ” 。 ( 3) 實(shí)參和形參之間的關(guān)系 實(shí)參的個(gè)數(shù) 、 類型應(yīng)該和形參的個(gè)數(shù) 、 類型一致 。 調(diào)用函數(shù)時(shí) , 系統(tǒng)給形參分配存儲(chǔ)單元 ,并且把實(shí)參的數(shù)值傳遞給形參 。 實(shí)參和形參分別屬于主調(diào)函數(shù)和被調(diào)函數(shù) ,具有不同的內(nèi)存單元 。 所以 , 在函數(shù)調(diào)用時(shí)形參發(fā)生改變 , 不會(huì)影響到實(shí)參 。 3.實(shí)參和形參的結(jié)合方式 C語言中實(shí)參和形參的結(jié)合采取的是“單向值傳遞”方式,只有實(shí)參傳遞參數(shù)給形參,形參不回傳參數(shù)給實(shí)參。下面用例。 例 實(shí)參和形參的結(jié)合方式示例 。 main( ) { float a,b,sum。 float add()。 scanf(%f,%f,a,b)。 sum=add(a,b)。 printf(sum=%f\n,sum)。 } float add( x, y) float x,y。 { float z。 z=x+y。 return(z)。 } 程序從主函數(shù)開始執(zhí)行 , 首先輸入 a, b的數(shù)值 ( 假如輸入3, 5) , 接下來調(diào)用函數(shù) add(a,b)。 具體調(diào)用過程如下 。 ( 1) 給形參 x, y分配內(nèi)存空間 。 ( 2) 將實(shí)參 b的值傳遞給形參 y, a的值傳遞給形參 x, 于是 y的值為 5, x的值為 3。 ( 3) 執(zhí)行函數(shù)體 。 ① 給函數(shù)體內(nèi)的變量分配存儲(chǔ)空間 。 即給 z分配存儲(chǔ)空間 。 ② 執(zhí)行算法實(shí)現(xiàn)部分 , 得到 z的值為 8。 ③ 執(zhí)行 return語句 , 完成以下功能 。 ? 將返回值返回主調(diào)函數(shù) , 即將 z的值返回給 main()。 ? 釋放函數(shù)調(diào)用過程中分配的所有內(nèi)存空間 , 即釋放 x, y, z的內(nèi)存空間 。 ? 結(jié)束函數(shù)調(diào)用 , 將流程控制權(quán)交給主調(diào)函數(shù) 。 調(diào)用結(jié)束后繼續(xù)執(zhí)行 main()函數(shù)直至結(jié)束 。 函
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1