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

正文內(nèi)容

安徽工程科技學(xué)院-wenkub

2023-03-15 10:22:04 本頁面
 

【正文】 有具體值 , 稱為形參 。 } 函數(shù)調(diào)用的一般形式 1. 函數(shù)調(diào)用的一般形式 函數(shù)名 ( 實際參數(shù)表列 ) 實際參數(shù)表列是函數(shù)入口參數(shù)的實際值 。k=n。 int k。 /*在主函數(shù) main()內(nèi)對被調(diào)函數(shù) sum()作局部聲明 , */ scanf(%d,m)。 例 函數(shù)聲明示例 。 內(nèi)部聲明過的函數(shù)只能在聲明它的主調(diào)函數(shù)內(nèi)調(diào)用 。 除需要分析已知和未知外 , 還需要確定已知和未知的數(shù)據(jù)類型 , 從而完成對函數(shù)頭的設(shè)計 。 return語句使用的一般形式為: return(表達式 ) return語句應(yīng)書寫在函數(shù)體的算法實現(xiàn)部分,圓括號可以省略。 return語句的功能有 3個 。 return (temp)。 float max(x, y) float x, y。 類型標(biāo)識符說明了函數(shù)返回值的類型 , 也簡稱函數(shù)類型 。 函數(shù)的定義 函數(shù)由兩部分構(gòu)成:函數(shù)頭和函數(shù)體。 3. 從函數(shù)的返回值分 從函數(shù)是否有返回值 , 函數(shù)可分為以下兩類 。 具體使用方法將在本章中詳細介紹 。 函數(shù)的平行關(guān)系使得函數(shù)的編寫相對獨立 , 便于模塊化程序設(shè)計的實現(xiàn) 。 C語言程序結(jié)構(gòu) 函數(shù)是構(gòu)成 C語言程序的基本功能模塊 ,它完成一項相對獨立的任務(wù) 。無參函數(shù)可以帶回或不帶回函數(shù)值。 ? ②用戶自己定義的函數(shù),用戶自己編寫的用以解決特定問題。函數(shù)間可以互相調(diào)用,但不能調(diào)用 main函數(shù)。這樣可以分別編寫、分別編譯,提高調(diào)度效率。 說明: ( 1)一個源程序文件由一個或多個函數(shù)組成。 圖 模塊化程序設(shè)計 大任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) 小任務(wù) ? 在程序設(shè)計中,常將一些常用的功能模塊編寫成函數(shù),放在函數(shù)庫中供公共選用。 概 述 函數(shù)的定義 函數(shù)的調(diào)用 函數(shù)的嵌套及遞歸調(diào)用 數(shù)組作為函數(shù)參數(shù) 局部變量和全局變量 變量的存儲類別 內(nèi)部函數(shù)和外部函數(shù) 編譯預(yù)處理 程序舉例 第 6章 函 數(shù) 安徽工程科技學(xué)院 概 述 模塊化程序設(shè)計思想 面對一項復(fù)雜任務(wù),通常采取模塊化的解決方法。要善于利用函數(shù)庫中的函數(shù),以減少重復(fù)編寫程序段的工作量。一個源程序文件是一編譯單位,即以源程序為單位進行編譯,而不以函數(shù)為單位進行編譯。一個源文件可以為多個 C程序公用。 ? ( 5)從用戶使用的角度看,函數(shù)有兩種; ? ①標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。 ? ( 6)從函數(shù)的形式看,函數(shù)分兩類: ? ①無參函數(shù)。 ? ②有參函數(shù)。 一個 C語言程序是若干函數(shù)構(gòu)成的 , 在構(gòu)成 C程序的諸多函數(shù)中有而且只有一個主函數(shù) 。 C程序的執(zhí)行總是從主函數(shù)開始,又從主函數(shù)結(jié)束,其他函數(shù)只有通過調(diào)用關(guān)系發(fā)生作用。 2. 從函數(shù)形式分 從函數(shù)形式角度 , 函數(shù)可分為以下兩類 。 ( 1) 有值函數(shù) , 調(diào)用該函數(shù)后可以得到返回值 。 函數(shù)頭給出函數(shù)相關(guān)信息(類似“黑盒子”中的入口和出口),而函數(shù)體具體實現(xiàn)函數(shù)的功能。 函數(shù)體用一對花括號 {}括起來 。 { float temp。 } 函數(shù)的返回值 在函數(shù)定義時需要描述函數(shù)類型 , 但沒有給出函數(shù)如何得到返回值 。 ( 1) 返回一個值給主調(diào)函數(shù) 。 形參和返回值的設(shè)定 編寫函數(shù)時 , 應(yīng)分析該函數(shù)中哪些量是函數(shù)的已知量 , 那些是函數(shù)需要得到的結(jié)果 。 函數(shù)的調(diào)用 當(dāng)函數(shù)被調(diào)用時 , 函數(shù)對應(yīng)的程序代碼才開始執(zhí)行 , 才能實現(xiàn)相應(yīng)的函數(shù)功能 。 外部聲明過的函數(shù) , 從聲明處到本程序文件結(jié)束都可以被調(diào)用 。 main() { int m。 /*只能在主函數(shù)內(nèi)調(diào)用聲明過的函數(shù)max()*/ c=sum(m)。 a=1,b=2。k++) { t=a,a=b,b=a+t。如例 c?sum(m)中的 m就是有確定值的實際參數(shù) , sum(m)是對函數(shù)的調(diào)用 , 調(diào)用結(jié)束后得到返回值賦值給變量 c。 ( 1)形式參數(shù) 定義函數(shù)時,函數(shù)名后的參數(shù)稱作形式參數(shù),簡稱形參。 ( 2) 實際參數(shù) 在調(diào)用函數(shù)時 , 函數(shù)名后的參數(shù)稱作實際參數(shù) , 簡稱實參 。 調(diào)用函數(shù)時 , 系統(tǒng)給形參分配存儲單元 ,并且把實參的數(shù)值傳遞給形參 。下面用例。 scanf(%f,%f,a,b)。 { float z。 具體調(diào)用過程如下 。 ① 給函數(shù)體內(nèi)的變量分配存儲空間 。 ? 將返回值返回主調(diào)函數(shù) , 即將 z的值返回給 main()。 函數(shù)調(diào)用前后實參 、 形參的變化情況如圖 。 ( 2) 作為函數(shù)參數(shù) 。 ( 2) 實參和形參的結(jié)合方向是自右向左的 。 函數(shù)的嵌套及遞歸調(diào)用 函數(shù)的嵌套調(diào)用 嵌套調(diào)用指的是在函數(shù)的調(diào)用過程中又出現(xiàn)了另外一種函數(shù)調(diào)用,稱為函數(shù)的嵌套調(diào)用。 main()調(diào)用函數(shù) f2(), 在函數(shù)f2()的執(zhí)行過程中又調(diào)用了函數(shù) f1(), main()嵌套調(diào)用了函數(shù) f1()。 for(x=0。 } float f2(x,h) float x,h。 { return (x*x+sin(x))。 float fac(int n) { float f。 } main()函數(shù)如下: main() { int n。 scanf(%d,n)。 數(shù)組元素作函數(shù)實參時 , 僅僅是將其代表的值作為實參處理 。 else return y。 for(k=1。 } 程序運行的結(jié)果為: 數(shù)組名作函數(shù)的參數(shù) 數(shù)組名代表數(shù)組的首地址 , 在數(shù)組名作為函數(shù)的參數(shù)時 , 形參和實參都應(yīng)該是數(shù)組名 。 程序如下。x[1]=temp。 change(a)。 用數(shù)組名作為函數(shù)參數(shù)應(yīng)注意以下幾點 。 ( 4) 數(shù)組名作函數(shù)參數(shù)時 , 應(yīng)將數(shù)組的長度也作為函數(shù)的參數(shù) , 這樣編寫的函數(shù)具備通用性 。 ( 1) 對 5個數(shù)兩兩比較 , 如果相臨的兩個數(shù)不是從小到大排列的 , 則交換使之變?yōu)閺男〉酱笈帕?, 比較結(jié)束后最大值在序列底部 , 于是得到序列 (3,8,4,1,9)。 排序工作結(jié)束 。 for(i=0。 for(i=0。 sort(a,5)。 printf(\n)。i0。 array[j]=array[j+1]。 關(guān)于局部變量的作用域需要說明以下幾點。 ( 4)在復(fù)合語句中也可定義變量,其作用域只在本復(fù)合語句范圍內(nèi)。 變量的存儲方式 C語言中的變量不僅有類型屬性,而且還有存儲類別的屬性。 自動存儲類型 關(guān)鍵字 auto表示變量是自動存儲類型 。 寄存器存儲類型 關(guān)鍵字 register表示變量是寄存器存儲類型 。寄存器存儲類型變量的作用范圍也是僅局限于定義它的函數(shù)。 外部存儲類型變量具有靜態(tài)性。 表示定義變量 x, y是雙精度浮點型并且是靜態(tài)存儲類型 。 6. 8 內(nèi)部函數(shù)和外部函數(shù) 同一個源程序文件中的函數(shù)之間是可以互相調(diào)用的,不同源程序文件中的函數(shù)之間也是可以互相調(diào)用的,根據(jù)需要我們也可以指定函數(shù)不能被其他文件調(diào)用。即 static類型標(biāo)識符 函數(shù)名(形參表) 如 static int fun(int a, int b ) 內(nèi)部函數(shù)又稱靜態(tài)函數(shù)。 ? 如函數(shù)首部可以寫為 ? extern int fun (int a, int b) ? 這樣,函數(shù) fun 就可以為其他文件調(diào)用。 ? 【例 】 有一個字符串,內(nèi)有若干個字符,今輸入一個字符,要求程序?qū)⒆址性撟址麆h去。 str[j]= \0 ; } (文件 4) print_string(char str[ ]) /*定義外部函數(shù)print_string*/ { printf(%s ,str)。其中scanf是庫函數(shù),另外 3個是用戶自己定義的函數(shù)。從圖中可以看到,應(yīng)該使 str[0]賦給 str[0],str[1]str[1], str[2]str[2], str[3]str[3],然后, str[5]str[4], …… 請讀者注意分析如何控制 i和 j的變化,以便使被刪除的字符不保留在原數(shù)組中。最后將結(jié)束符 \o也復(fù)制到被保留的字符后面。 Extern聲明的形式就是在函數(shù)原型基礎(chǔ)上加關(guān)鍵字 extern(見本例 main函數(shù)中的聲明形式)。用函數(shù)原型也能夠把函數(shù)的作用域擴展到定義該函數(shù)的文件之外(不必使用 extern)。在前面幾章中曾多次使用過# include命令,并提到過:# include命令所指定的“頭文件”中包含有調(diào)用庫函數(shù)時所需的信息。為減少程序設(shè)計者的困難,在頭文件其他有關(guān)信息,用戶只需用以下 include命令: ? include< > ? 這樣,在該文件中就能合法地調(diào)用各數(shù)學(xué)庫函數(shù)了。若程序中用# include命令包含一個文件“ ”,則在預(yù)處理時將 代替該命令)。必須正確區(qū)別預(yù)處理命令和 C語句、區(qū)別預(yù)處理和編譯,才能正確使用預(yù)處理命令。 宏定義 用一個指定的標(biāo)識符(即名子)來代表一個字符串,它的一般形式為 # define 標(biāo)識符 字符串 這就是已經(jīng)介紹過的定義符號常量。 【例 】 # define PI main( ) { float l, s, r, v; printf(input radius:); scanf(%f,r); l= *PI*r; s=PI*r*r; v=*PI*r*r*r; printf(i=%\ns=%\nv=%\n, l, s,v); } 運行情況如下: input radius:4? l=??? s=??? v=?? ? 說明: ? ( 1)宏名一般習(xí)慣用大寫字母表示,以便與變量名相區(qū)別。 例如,定義數(shù)組大小,可以用: # define array_size 1000 int array[array_size]; 先指定 array_size代表常量 1000,因此數(shù)組 array大小為 1000,如果需要改變數(shù)組大小,只需改# define行: # define array_size 500 使用宏定義,可以提高程序的通用性。只有在編譯已被宏展開后的源程序時才會發(fā)現(xiàn)錯誤并報錯。 ? 經(jīng)過宏展開后,該語句為 ? area=*r*r; ? 顯然出現(xiàn)語法錯誤。例如: define G —— main( ) { | G的有效范圍 ┆ } undef G —— f1( ) { ┆ } 由于 undef的作用,使 G的作用范圍在 undef行處終止,因此在 f1函數(shù)中, G不再代表 。 } 運行情況如下: L= S= ? 經(jīng)過宏展開后, printf函數(shù)中的輸出項 L被展開為 2**, S展開為 **,printf函數(shù)調(diào)用語句展開為 ? printf(” L=%f\nS=%f\n” ,2**,5926**)。 不是進行簡單的字符串替換,還要進行參數(shù)替換。在程序中用了 S( 3, 2),把 2分別代替宏定義中的形式參數(shù) a、 b,即用 3*2代替 S( 3, 2),因此賦值語句展開為 area=S(3,2); 對帶參的宏定義是這樣展開置換的:在程序中如果有帶實參的宏(如 S( 3, 2))
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1