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