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

正文內(nèi)容

c程序設(shè)計第四章ppt西工大(留存版)

2025-02-26 07:43上一頁面

下一頁面
  

【正文】 參為 max(a,b),c 總結(jié): 函數(shù)參數(shù) 形式參數(shù) ——定義函數(shù)時的參數(shù),在未發(fā)生函數(shù)調(diào) 用時并不實際占用存儲單元,僅是形 式符號。 形參: x y 第二次調(diào)用 : 實參: d c d=max(d, c)。 //聲明 ps float f1(…) { …。 4. 函數(shù)調(diào)用的位置 1) 對有返回值函數(shù)的調(diào)用位置,可以是表達式的運算元素、函數(shù)的參數(shù); 如: c=2*max(a,b)+10。 } int max(int x, int y) //動態(tài)分配與釋放 { int z。 printf(\n)。 j0。 } double myexp(double x) { int i。 //day of the month [1,31] int tm_mon。 隨機數(shù)函數(shù) : 函數(shù)原型: int rand( void)。 break。 公式: 定義函數(shù): main: 實現(xiàn) I/O、調(diào)用 p函數(shù) 。 //嵌套調(diào)用 return s。 20 } while (fabs(y)=)。 int num。r e t u r n ( f ) 。 scanf(%d, amp。 float f2(float x, float y) c1, c2 { int i, j。 //全局變量引用、賦值 if(bmax) max=b。 } 8 4) 若全局變量 p定義點之前的函數(shù) f1想引用 p,一 是將定義點提前,或在函數(shù) f1內(nèi)做 外部變量說 明 ,使 p的有效范圍擴展到 f1中; 例: int f1(int a) { extern int p。 ?顯然, data段的存儲單元有與程序代碼相同的生命期,它們的初始值實際在編譯時就已經(jīng)確定了。如果這些變量有初始化,就會有賦值指令給這些變量送初值,否則變量的值就呈現(xiàn)隨機性。 auto 類型 變量名 [=初值 ], ...... 108 生命期 ?4.寄存器變量 ?C語言允許用 CPU的寄存器來存放局部變量,稱為寄存器變量。 i++) sum=fun1(i)。 … // 典型數(shù)據(jù) 2, 5, 5, 3, 8 long fact(int n) { int i。i=10。 //外部函數(shù)聲明 scanf(%d%d%d, amp。 scanf(“%u”, amp。例如:某個函數(shù)定義有變動,那么所有含有這個函數(shù)聲明的調(diào)用文件都需要找出來,逐一修改。 程序的兩個 函數(shù)分別編制在 。//靜態(tài)局部變量會保持其值 5 t++。 // 2, 5, 5, 3, 8 f=fact(n)。 scanf(%d, amp。 ?堆的優(yōu)點是分配和釋放是自由的,缺點是需要程序員自行掌握分配和釋放時機,特別是釋放時機,假如已經(jīng)釋放了還要使用堆會產(chǎn)生引用錯誤,或者始終沒有釋放產(chǎn)生內(nèi)存泄漏( memory leak)。期間如果數(shù)據(jù)被修改,則修改會一直保持。 text段通常也是只讀的,使其只讀的原因是防止一個程序意外地修改了它的指令。 return c。 printf(Aver=%.2f Max=%d Min=%d\n, aver,max,min)。 意義 : 可使不同函數(shù)對同一個變量進行引用或賦值, 這相當(dāng)于給函數(shù)間增加了一條數(shù)據(jù)傳遞通路;因而 可利用全局變量使函數(shù)調(diào)用返回一個以上的值; 全局變量有效范圍圖示: int p, q。 if(n!=0) fun(n)。 } SX048 Play遞歸說明: 1) 函數(shù) fact的執(zhí)行代碼只有一組,遞歸過程就是 重復(fù)執(zhí)行這組代碼段; 2) 每次遞歸調(diào)用,都動態(tài)地為形參 n和局部變量 f 分配存儲單元, n接受本次遞歸傳遞的實參值; 3) 由分支條件控制遞歸的繼續(xù)或終止; 注意:要保證遞歸是有限的 4) 遞歸調(diào)用過程始終未出現(xiàn) f的賦值操作,始終未 執(zhí)行過 return語句; 5) 遞歸調(diào)用結(jié)束的回歸過程,將不斷執(zhí)行 return和 f的賦值。反復(fù)應(yīng)用分治手段,可使子問題與原問題類型一致而其規(guī)模卻不斷縮小,最終使子問題縮小到很容易求出其解。 15 do { 16 x=point(a,b)。 } ┇ m、 n 組合數(shù) 階乘值 int main( ) { ┅ c=p(m, n)。 ?但如果是數(shù)組參數(shù)、指針參數(shù)就有必要了。 } SX046 for(i=1。 //日歷時間轉(zhuǎn)換為 tm結(jié)構(gòu)時間 printf(LocalTime is: %d年 %d月 %d日 %d:%d:%d 星期 %d\n, localtm_year+1900, localtm_mon+1, localtm_mday, localtm_hour, localtm_min, localtm_sec, localtm_wday)。 tm結(jié)構(gòu)體 : struct tm { int tm_sec。x)。 printf(”\n”)。 return 0; //星號的個數(shù)為實參 } void pstar(int sn) //有參無返回值 { int j。 d=max(a, b)。 3. 函數(shù)調(diào)用的一般形式 函數(shù)名 (實參表 ) 當(dāng)被調(diào)函數(shù)形參是變量時,實參形式: 可是常量、變量、下標(biāo)變量、表達式、函數(shù)調(diào)用 等;多個實參逗號分隔。個數(shù)不匹配則 編譯出錯;類型不匹配則以形參類型為準自 動轉(zhuǎn)換 (賦值兼容 )。 } int max(int x, int y) //動態(tài)分配與釋放 { int z。實參可以是常量、變量或表達式,還可以是函數(shù)的返回值。 4 } 第 1行 a和 b就是形參。 void delay( ) //無參、無返回值 { long i。 第 3~ 8行為函數(shù)體,稱為 IsPrime函數(shù)的實現(xiàn)。 ?2.形式參數(shù)列表 ? 實現(xiàn)函數(shù)需要確定有無形式參數(shù)、有多少形式參數(shù)、有什么類型的形式參數(shù)。 C語言規(guī)定一個函數(shù)如果沒有給出返回類型,則默認是 int型 13 函數(shù)定義的一般形式 ? 函數(shù)可以不返回數(shù)據(jù),此時返回類型應(yīng)寫成 void,表示沒有返回值,其形式為: void 函數(shù)名 (形式參數(shù)列表 ) { 函數(shù)體聲明部分 函數(shù)體執(zhí)行語句 } 14 函數(shù)定義的一般形式 ?4.函數(shù)體 ? 實現(xiàn)函數(shù)最重要的是編寫函數(shù)體。 14 else printf(No\n)。 } 20 函數(shù)返回 ?2.有返回值函數(shù) ? 當(dāng)函數(shù)的返回類型不是 void,表明函數(shù)有返回值。 或省略 如: void PrintStar( ) { printf(********************\n)。 實際參數(shù) ——調(diào)用函數(shù)時的參數(shù) 參數(shù)傳遞機制 ——C采用單向的值傳遞 28 參數(shù)傳遞機制 ?值傳遞時,實參數(shù)據(jù)傳遞給形參是單向傳遞,即只能由實參傳遞給形參,而不能由形參傳回給實參,這也是實參可以是常量和表達式的原因(這些數(shù)據(jù)不是左值)。 形參: x y 8 5 8 12 8 12 5 8 5 0 8 0 2) 由于實參和形參各有各的存儲單元,因此在被調(diào)函數(shù)中對形參變量賦值,不會對實參造成任何影響。 ps( )。 如: m=max(a, max(7,c) )。 z=xy? x:y。 return。 j) printf(” ”)。 double sum=, t=。 //months since January [0,11] int tm_year。 該函數(shù)返回至少為 0~ 32767之間的隨機整數(shù),反復(fù)調(diào)用將產(chǎn)生隨機數(shù)序列,但每次執(zhí)行程序所產(chǎn)生的序列是重復(fù)的,因此這是個偽隨機數(shù)序列,在利用計算機模擬某些實驗時恰恰需要這一特性。 case 2: f2++。 p: 描述組合計算公式、調(diào)用階乘函數(shù) fact。 } long fact(int x) { int i。 //計算精度 E 21 return x。 printf(Enter n:)。f = 2 * f a c t ( 1 ) 。n)。 有效; …。 if(cmax) max=c。 //外部變量聲明 …。即使程序沒有運行,這些存儲單元的初始值也固定下來了,當(dāng)程序開始運行時,這些存儲單元是沒有初始化的動作。當(dāng)函數(shù)調(diào)用結(jié)束時,函數(shù)??蚣艹鰲?,函數(shù)局部變量釋放存儲空間。在局部變量前加上 register存儲類別修飾來定義的,其形式為: register 類型 變量名 [=初值 ], ...... 109 生命期 ?5.靜態(tài)局部對象 ?在局部對象的前面加上 static存儲類別修飾用來指明對象是靜態(tài)局部對象( static local object),一般形式為: static 類型 變量名 [=初值 ] , ...... 110 生命期 ? auto:對局部變量無特殊要求時采用;特點是函 數(shù)被調(diào)用時動態(tài)分配、釋放,可節(jié)省內(nèi)存資源; ? static:若函數(shù)調(diào)用結(jié)束后,希望能保留已有值 以便下次調(diào)用時繼續(xù)引用,采用該類別可達目的; 因為: 靜態(tài)局部變量在程序的整個運行期間始終在靜 態(tài)存儲區(qū)占據(jù)著固定的存儲單元,但 只有發(fā)生函數(shù) 調(diào)用時才可對其引用或賦值 ,函數(shù)調(diào)用結(jié)束它仍然保存其值和存儲單元,函數(shù)再次被調(diào)用時又可繼續(xù)引用。 printf(1+2+…+%d=%d\n, n, sum)。 static long f=1, n0=0。i++) c=fun()。a,amp。c1)。如果是函數(shù)聲明比較多的情況下,在每個文件中都寫上函數(shù)聲明不是好辦法,很難管理。 { …… } ┇ 【 例 】 定義函數(shù)可求三個數(shù)中的最大 、 最小及平均值;要求:在 main中實現(xiàn)輸入 、 輸出 。 } ┇ 1 0 ┇ 靜態(tài)存儲區(qū) 2 2 120 51 6340320 8SX0411 117 生命期 例 1 include 2 int fun() 3 { 4 static int t=0。n)。 printf(Enter a number:)。 105 程序映像和內(nèi)存布局 ?堆和棧的區(qū)別是分配方式的不同 ?棧是編譯器根據(jù)程序代碼自動確定大小,到函數(shù)調(diào)用時有指令自動完成分配和釋放的;堆則完全由程序員指定分配大小、何時分配、何時釋放。在程序運行中這些變量和對象的存儲空間不會被釋放,一直保持到程序運行結(jié)束。通常情況下, text段是可共享的,使其可共享的目的是對于頻繁被執(zhí)行的程序,只需要在內(nèi)存中有一份副本即可。 全局 a,b失效 c=ab? a:b。 aver=f1(a,b,c)。 i, j, x, m有效
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1