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

正文內容

【c語言課件】第7章函數(shù)20xxnew-文庫吧

2025-01-04 09:34 本頁面


【正文】 } x , y main( ) {int a,b,c。 scanf(“ %d,%d”,amp。a,amp。b)。 c=max(a,b)。 printf(“ max=%d”,c)。 } 主 函 數(shù) int max(x,y) int x,y。 {int z。 if (xy) z=x。 else z=y。 return(z)。 } 執(zhí) 行 語 句 部 分 返回值 參數(shù) 說明 函數(shù)調用 include 函數(shù)定義 可以有“空函數(shù)”,它的形式為: 類型說明符 函數(shù)名( ) { } 例如: dummy( ) { } 調用此函數(shù)時,沒有任何實際作用。在主調函數(shù)中寫上“ dummy( )。”表明“這里要調用一個函數(shù)”,而現(xiàn)在這個函數(shù)沒有起作用,等以后擴充函數(shù)功能時補充上??蘸瘮?shù)在程序設計中常常是有用的。 函數(shù) 庫函數(shù) (內部函數(shù) ) I/O, 分類,轉換,診斷, 目標控制,圖形,接口,進程控制,處理,數(shù)學,文本窗口,內存,時間, 日期 自定義函數(shù) 從使用角 度劃分 printf() scanf() gets() printstar print_message 函數(shù) 有參函數(shù),定義方式: 類型標識符 函數(shù)名 (形式參數(shù)表 ) 形參說明 { 變量說明部分 語句 } 無參函數(shù),定義方式: 類型標識符 函數(shù)名 ( void) { 變量說明部分 語句 } 從函數(shù)形式 角度劃分 返回 printstar() getchar() int max(int x,int y) putchar(char) 類型標識符 函數(shù)名(形式參數(shù)表列及說明) {聲明部分 語句 } 類型標識符 函數(shù)名(形式參數(shù)表列) 形式參數(shù)說明 {聲明部分 語句 } 三、形式參數(shù)和實際參數(shù) ? 形式參數(shù) (形參 ):在定義函數(shù)時后面括弧中的變量名。 ? 實際參數(shù) (實參 ):在調用函數(shù)時函數(shù)名后面的表達式。 main( ) {int a,b,c。 scanf(“ %d,%d”,amp。a,amp。b)。 c=max(a,b)。 printf(“ max=%d”,c)。 } 主 函 數(shù) int max(x,y) int x,y。 {int z。 if (xy) z=x。 else z=y。 return(z)。 } 執(zhí) 行 語 句 部 分 數(shù)據(jù)說 明部分 參數(shù) 說明 函數(shù)定義 include 實際參數(shù) 形式參數(shù) ?說明 : 形參變量在未出現(xiàn)函數(shù)調用時并不占內存單元,只有在發(fā)生 函數(shù)調用時形參才被分配內存單元 。 實參可以是 常量 .變量或表達式 ,要求有確定的值。 在被定義的函數(shù)中,必須 指定形參的類型 。 實參與形參的類型應該一致 。 C語言規(guī)定, 實參對形參的數(shù)據(jù)傳遞是“值傳遞”( 單向傳遞 ) ,只由 實參傳給形參 , 而不能由形參傳遞給實參 。因此,在執(zhí)行一個被調用函數(shù)時,形參的值如果發(fā)生改變,并不會改變實參的值。 在內存中,實參單元與形參單元是不同的單元。調用函數(shù)時,才給形參分配單元,并將實參的值傳給形參,調用結束后,形參單元釋放。 說明 main( ) {int a,b,c。 scanf(“ %d,%d”,amp。a,amp。b)。 c=max(a,b)。 printf(“ max=%d”,c)。 } 主 函 數(shù) int max(x,y) int x,y。 {int z。 if (xy) z=x。 else z=y。 return(z)。 } 執(zhí) 行 語 句 部 分 數(shù)據(jù)說 明部分 參數(shù) 說明 include 實參可以是 常量 .變量或表達式 ,要有確定的值。 必須 指定形參的類型 。實參與形參的類型應該一致 實參對形參的數(shù)據(jù)傳遞是( 單向傳遞 ) ,實參單元與形參單元是不同的單元 返回 函數(shù)的參數(shù)傳遞 函數(shù)參數(shù)的傳遞過程 void main(){ … S1 =area(a, b, c) S2 =area(c, d, e) … } float area(float l1,float l2,float,l3) { float s。 … 。s= 表達式 。 return s。 } 找到了函數(shù)定義,調用 變量 s的值作為 返回值給主程序 同時 實參 傳遞給 形參 a=6 b=7 c=9 l1=6 l2=7 l3=9 s= S1= 例 計算 x的立方 include float cube(float x) { return(x*x*x)。 } void main() { float a, product。 printf(Please input value of a:)。 scanf(%f,amp。a)。 product=cube(a)。 printf(”Cube of %.4f is %.4f\n,a,product)。 } x a product 函數(shù)參數(shù)的傳遞方式 值傳遞 (傳值 ) 實參值不隨形參的變化而改變。 參數(shù)傳遞方式 地址傳遞 (傳址 ) 實參 的值隨 形參 的值一起改變。 函數(shù)的參數(shù)傳遞 函數(shù)參數(shù)的傳遞方式 — 值傳遞 值傳遞 0100 5 內存 地址 內容 … … … … 實參 a 函數(shù)調用時,要 為形參開辟新的存儲單元 1000 5 內容 地址 內存 … … … … 形參 x 系統(tǒng)將實參 a的值 復制 了一份給形參 x x與 a再無聯(lián)系 7 11 x: y: 調用前: 調用結束: 7 11 x: y: 例 交換兩個數(shù) include void main() { int x=7,y=11。 printf(x=%d,\ty=%d\n,x,y)。 printf(swapped:\n)。 swap(x,y)。 printf(x=%d,\ty=%d\n,x,y)。 } void swap(int a,int b) { int temp。 temp=a。 a=b。 b=temp。 } 調用: 7 11 a: b: 7 11 x: y: swap: 7 11 x: y: 11 7 a: b: temp 函數(shù)參數(shù)的傳遞方式 — 地址傳遞 0100 5 地址 內容 … … … … 實參 a 形參 x 系統(tǒng) 將實參 a的地址 傳給了 形參 x,并未給 x開辟新的存儲單元 相當于一個存儲單元有兩個名字,因此,對 x的改變就是對 a的改變 地址傳遞 函數(shù)的調用 ? 函數(shù)調用的形式 函數(shù)名 (實際參數(shù)表 ) 注意: 函數(shù)調用時提供的 實際參數(shù) (簡稱實參 )應與被調用函數(shù)的 形式參數(shù) 按順序一一對應,而且 參數(shù)類型 也要一致。 函數(shù)的調用 ? 函數(shù)調用的形式 — 練習 課堂練習:存在右面的函數(shù)定義后,如何修改程序調用這個函數(shù) float area(float l1,float ,l2,float l3) { float s,temparea。 s=(l1+l2+l3)/2。 temparea=sqrt(s*(sa)*(sb)*(sc))。 return temparea。 } l1=(a+b+c)/2。 s1=(float)sqrt(l1*(l1a)*(l1b)*(l1c))。 l2=(c+d+e)/2。 s2=(float)sqrt(l2*(l2c)*(l2d)*(l2e))。 l3=(e+f+g)/2。 s3=(float)sqrt(l3*(l3e)*(l3f)*(l3g))。 printf(area=%f\n,s1+s2+s3)。 方法 1: s1=area(a,b,c)。 s2=area(c,d,e)。 s3=area(e,f,g)。 printf(area=%f\n,s1+s2+s3)。 方法 2: printf(area=%f\n,area(a,b,c)+area(c,d,e)+area(e,f,g))。 總結: 函數(shù)調用可以作為一個獨立的語句,也可作為一個運算量。 五、函數(shù)的調用 : ? 函數(shù)名(實參表列) 調用無參函數(shù),實參表列沒有,“ ( )”不能省略。實參表列包含多個實參,參數(shù)間用“ , ”隔開。 實參與形參的個數(shù)應相等,類型應一致 。 實參與形參按順序對應,一一傳遞數(shù)據(jù) 。 許多 C版本(例如 Turbo C 和 MS C)是按 自右至左的順序求值 。例如: main() {int i=2,p。 p=f(i,++i)。 /*如果按自左至右順序求實參的值,則函數(shù) 調用相當于 printf(“%d,p)。 f(2,3);*/ } /*編程時盡量避免如此函數(shù)調用。 void main() { int i=2,p。 p=f(i,++i)。 printf(%d,p)。 } int f(int a, int b) { int c。 if(ab) c=1。 else if(a==b) c=0。 else c=1。 return(c)。 } 例 參數(shù)求值順序 void main() { int i=2,p。 p=f(i, i++)。 printf(%d,p)。 } int f(int a, int b) { int c。 if(ab) c=1。 else if(a==b) c=0。 else c=1。 return(c)。 } 運行結果: 0 運行結果: 1 按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調用方式 : 1 )函數(shù)語句 。把函數(shù)調用作為一個語句。例如: printstar( )。 這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。 2 )函數(shù)表達式 。函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為函數(shù)表達式。這時要求函數(shù)帶回一個確定的值參加表達式的運算。例如: c=2*max(a,b) 3)函數(shù)參數(shù) 。函數(shù)調用作為函數(shù)的一個實參。例如: m=max(a,max(b,c))。 max(b,c)是一次函數(shù)調用 ,它的值作為 max另一次調用的實參 . 函數(shù)調用作為函數(shù)的參數(shù),實質上也是函數(shù)表達式形式的一種,因為函數(shù)的參數(shù)本來就要求是表達式形式。 在一個函數(shù)中調用另一函數(shù)(被調函數(shù))需具備的條件: 1、被調用的函數(shù)必須是 已經(jīng)存在 的函數(shù)(庫函數(shù)或用戶自 己定義的函數(shù)) 2、如果 調用庫函數(shù) ,一般應該在本文件開頭用 include命令將調用有關庫函數(shù)時所需用到的信息包含到本文件來。例如: include “” include “” 3、如果用自己定義的函數(shù),且該函數(shù)與調用它的函數(shù)(主調函數(shù))在同一個文件中,一般應該在 主調函數(shù)中對被調用函數(shù)的返回值的類型作說明 。這種類型說明的一般形式為: 類型標識符 被調用函數(shù)的函數(shù)名(參數(shù)類型 1,… ); ? 請看下頁例子。 **例 *** 函數(shù)的調用,兩數(shù)相加 (自定義函數(shù)的應用 ) *** main() {
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1