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

正文內(nèi)容

實(shí)用c語言程序設(shè)計(jì)教程4函數(shù)模塊化編程ppt(編輯修改稿)

2025-01-03 18:51 本頁面
 

【文章內(nèi)容簡介】 include /*包含了隨機(jī)函數(shù) */ include /*時間、日期和與系統(tǒng)有關(guān)的函數(shù) */ void main() { int num,x,i。 printf(如果輸入數(shù)據(jù) 1,則游戲結(jié)束 !請開始 ...\n)。 do{ srand((unsigned)time(NULL))。 /*循環(huán)產(chǎn)生不同的隨時機(jī)數(shù) */ num=1+rand()%100。 /*產(chǎn)生 [1, 100]的隨機(jī)數(shù) */ printf(開始新一輪猜數(shù)據(jù)游戲 .請輸入 :x\n)。 for(i=1。i=10。i++) /*循環(huán)猜 10次 */ { scanf(%d,amp。x)。 /*輸入所猜想的數(shù) x*/ if(x==1) exit(1)。 /*結(jié)束標(biāo)記,則通出 */ if (!(x=1||x=100)) /*數(shù)據(jù)在正確范圍內(nèi) */ if(x==num) { printf(你猜對了 .請繼續(xù) ...\n)。break。 } else if(xnum) printf(大了 .請繼續(xù) ...\n)。 else if(xnum) printf(小了 .請繼續(xù) ...\n)。 } /*for語句結(jié)束 */ }while(1)。 } 程序如下 : C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)的分類(自學(xué)) ?從定義函數(shù)的角度 ?標(biāo)準(zhǔn)函數(shù)(庫函數(shù)):由系統(tǒng)提供 ?用戶自定義函數(shù) ?從函數(shù)形式 ?無參函數(shù) ?有參函數(shù) ?從函數(shù)調(diào)用角度 ?有返回值函數(shù) ?無返回值函數(shù) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 (Called)與返回 函數(shù)調(diào)用形式和調(diào)用過程 函數(shù)間的數(shù)據(jù)傳遞方式 函數(shù)的嵌套與遞歸函數(shù) 項(xiàng)目案例 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)調(diào)用( call)形式和調(diào)用過程 【 例 44】 用函數(shù)調(diào)用實(shí)現(xiàn)求 1000以內(nèi)的全部素?cái)?shù) 分析: (1)把判斷一個數(shù)是否為素?cái)?shù)的算法設(shè)計(jì)為一個函數(shù): int prime_number(int n) 函數(shù)功能 :判斷一個數(shù)是否為素?cái)?shù) 。 若此數(shù)是素?cái)?shù) , 返回值為 1;否則 , 返回值為 0。 (2)循環(huán)遍歷 1~ 1000, 調(diào)用 prime_ number()函數(shù)判斷每個數(shù) , 返回值為 1, 則輸出此數(shù) , 否則不輸出 。 /**/ include include /*判斷一個數(shù)是否為素?cái)?shù) */ int prime_number(int n) /*函數(shù)定義 */ { int j。 for(j=2。j=(int)sqrt(n)。j++) if(!(n%j)) {return 0。} if(j(int)sqrt(n)) return 1。 else return 0。 } void main() { int j,k,min,max。 printf(請輸入搜索數(shù)據(jù)范圍: min,max\n)。 scanf(%d,%d,amp。min,amp。max)。 for(j=min。j=max。j++){ k=prime_number(j)。 /*函數(shù)調(diào)用 */ if(k) printf(%8d,j)。 } } main主函數(shù) 自定義函數(shù) 函數(shù)調(diào)用 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 程序執(zhí)行總是從主函數(shù)開始。 執(zhí)行過程中遇到一個函數(shù)名時,即產(chǎn)生了函數(shù)調(diào)用( Called,或者 Invoked)。 函數(shù)調(diào)用使程序控制流程轉(zhuǎn)到被調(diào)函數(shù)內(nèi)部。當(dāng)被調(diào)函數(shù)執(zhí)行結(jié)束,程序控制流程再返回到主調(diào)函數(shù),繼續(xù)執(zhí)行主調(diào)函數(shù)。這個過程就叫函數(shù)調(diào)用與返回。產(chǎn)生調(diào)用的函數(shù)叫 主調(diào)函數(shù) ,被調(diào)用的函數(shù)叫 被調(diào)函數(shù) 。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ? 函數(shù)調(diào)用的一般形式為: 函數(shù)名 (實(shí)參表 ) ?函數(shù)調(diào)用時,實(shí)參與形參應(yīng)保持個數(shù)、次序及類型一致,以確保實(shí)參與形參之間數(shù)據(jù)的正確傳遞。實(shí)參間以 “ , ” 分隔。 ?函數(shù)調(diào)用的一般方式有三種: ( 1) 函數(shù)表達(dá)式 (c+d*max(a,b))%e ( 2) 函數(shù)語句調(diào)用 printf(%d\n,i)。 ( 3)作為 函數(shù)實(shí)參 gcd(max(a,b),min(c,d)) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)調(diào)用的過程如下: 主調(diào)函數(shù)計(jì)算實(shí)參值 復(fù)制實(shí)參值到對應(yīng)的形參變量 執(zhí)行被調(diào)函數(shù)體 被調(diào)函數(shù) 有 return 表達(dá)式 計(jì)算表達(dá)式值,轉(zhuǎn)換 為函數(shù)返回值類型 Y 無表達(dá)式或無 return。語句 返回主調(diào)函數(shù) 返回主調(diào)函數(shù) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)間的數(shù)據(jù)傳遞方式 數(shù)據(jù)在函數(shù)乊間的傳遞 ?C語言中利用 參數(shù)、返回值和變量 三種方式進(jìn)行函數(shù)之間的數(shù)據(jù)傳遞。主調(diào)函數(shù)和被調(diào)函數(shù)間的數(shù)據(jù)傳遞渠道,也叫 數(shù)據(jù)接口 。 ?主調(diào)函數(shù)與被調(diào)函數(shù)之間是 雙向傳遞數(shù)據(jù) 。 主調(diào)函數(shù)通過實(shí)參為形參提供數(shù)據(jù);調(diào)用結(jié)束時,被調(diào)函數(shù)通過返回語句將函數(shù)的運(yùn)行結(jié)果(稱為返回值)帶回主調(diào)函數(shù)中。參數(shù)傳遞有 “ 值傳遞 ” 和 “ 地址傳遞 ” 兩種方式。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 45】 閱讀程序并分析下面程序中參數(shù)值傳遞過程。 include void swap(int a,int b) { int temp。 temp=a。 a=b。 b=temp。 return。 } 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)。 } 7 11 x: y: 調(diào)用前: 調(diào)用結(jié)束: 7 11 x: y: 開始調(diào)用: 7 11 a: b: 7 11 x: y: 執(zhí)行 swap: 7 11 x: y: 11 7 a: b: temp 形參 內(nèi)部變量 返回 內(nèi)部變量 實(shí)參 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù) main 函數(shù) swap a b x y 實(shí)參與形參數(shù)據(jù)傳遞 x y a b 實(shí)參值 形參值 用完釋放 內(nèi)存示意圖 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 值傳遞( Callbyvalue) : 實(shí)參向形參復(fù)制數(shù)據(jù)。值傳遞方式下,數(shù)據(jù)是單向值傳遞。函數(shù)未被調(diào)用時,形參變量不分配存儲單元。當(dāng)函數(shù)被調(diào)用執(zhí)行時,形參被分配相應(yīng)獨(dú)立于實(shí)參的內(nèi)存空間,函數(shù)調(diào)用執(zhí)行結(jié)束后,形參所占的存儲單元將被釋放。 局部變量( local variable) : 在函數(shù)中聲明定義的每一個變量(包括形式參數(shù))僅在聲明它們的函數(shù)中有作用,因此被稱為局部變量( local variable)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 46】 閱讀程序并分析下面程序中參數(shù)地址傳遞過程。 include void swap(int *,int *)。 void main() { int x=7,y=11。 printf(x=%d,\ty=%d\n,x,y)。 printf(swapped:\n)。 swap(amp。x,amp。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 x: y: 調(diào)用前: 調(diào)用結(jié)束: 11 7 x: y: 調(diào)用: amp。x amp。y a: b: 7 11 x: y: temp swap: 11 7 x: y: amp。x amp。y a: b: C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 地址傳遞( Passbyaddress ) : 地址傳遞方式是指形參定義為指針,而實(shí)參是內(nèi)存對象的地址。函數(shù)調(diào)用時將內(nèi)存地址傳遞給形參指針變量,形參和實(shí)參指向共同的內(nèi)存單元。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)的嵌套與遞歸函數(shù) (Recursive Functions) 函數(shù) B { …… …… …… } 函數(shù) A { …… 調(diào)用函數(shù) B; …… } main函數(shù) { …… 調(diào)用函數(shù) A。 …… } 函數(shù)之間的調(diào)用可以是任意的,即允許在一個函數(shù)體內(nèi)再調(diào)用其他函數(shù) (包括在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用) ,這種在函數(shù)體中再調(diào)用其它函數(shù)稱為函數(shù)的嵌套調(diào)用。 在 C語言的函數(shù)調(diào)用過程中,若函數(shù)直接或間接調(diào)用函數(shù)自身,則這種調(diào)用稱為函數(shù)的 “ 遞歸調(diào)用 ” 。 這種函數(shù)稱為遞歸函數(shù)。 函數(shù)的嵌套 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 include void main( ) { int n=3。 printf (%d\n,sub1(n) )。 } sub1(int n) { int i,a=0。 for (i=n。 i0。 i) a+=sub2(i)。 return a 。 } sub2(int n) { return n+1。 } 程序輸出結(jié)果: 9 嵌套調(diào)用舉例: C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 47】 利用函數(shù)嵌套,編寫一個程序,求出所有的兩位絕對素?cái)?shù)。 分析: ( 1)問題描述: 絕對素?cái)?shù)是指一個自然數(shù)本身是素?cái)?shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素?cái)?shù)。兩位絕對素?cái)?shù)是將一個素?cái)?shù)的個位和十位交換位置后仍為素?cái)?shù)的自然數(shù)。題目要求出所有的兩位絕對素?cái)?shù)。 ( 2)需求分析: 用枚舉法解決該問題,逐個判斷所有的兩位數(shù)是否為絕對素?cái)?shù),程序輸出所有的絕對素?cái)?shù)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 3) 這是一個已知循環(huán)次數(shù)的問題,可用 for語句來實(shí)現(xiàn)。處理流程描述如下: ? 設(shè)計(jì)一個判斷某數(shù)是否為素?cái)?shù)的自定義函數(shù)。 函數(shù)原型: int prime_number(int a)。 函數(shù)功能:若 a是素?cái)?shù),返回值為 1,否則返回值為 0 ? 設(shè)計(jì)交換一個兩位數(shù)的個位和十位的函數(shù)。 函數(shù)原型: int invert(int n)。 函數(shù)功能:返回值為對換位置后的數(shù) ? 在主函數(shù) main的枚舉循環(huán)中,先調(diào)用 prime_number函數(shù)判斷一個數(shù)是否為素?cái)?shù);再調(diào)用 invert對換該數(shù),并以其為參數(shù)調(diào)用 prime_number判斷對換位置后的數(shù)是否為素?cái)?shù),如果是,則輸出該數(shù)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 算法描述 /*算法開始 */ 變量定義; for(n=11。n=99。n++) if(prime_number(n)amp。amp。prime_number(invert(n))) 輸出該數(shù); /*算法結(jié)束 */ 嵌套調(diào)用 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 include include int prime_number(int n) /*判斷素?cái)?shù)函數(shù)定義 */ { int j,flag=1。 if(n==2) return 1。 for(j=2。j=(int)sqrt(n)。j++) if(n%j==0) {flag=0。break。} return
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1