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

正文內(nèi)容

c程序設(shè)計(jì)第四章ppt西工大-wenkub.com

2025-01-09 07:43 本頁面
   

【正文】 ?a|b 相同位只要一個(gè)為 1即為 1。 scanf(“%u”, amp。例如:某個(gè)函數(shù)定義有變動(dòng),那么所有含有這個(gè)函數(shù)聲明的調(diào)用文件都需要找出來,逐一修改。 aver=(a+b+c)/。 aver=f1(a,b,c)。 //外部函數(shù)聲明 scanf(%d%d%d, amp。 程序的兩個(gè) 函數(shù)分別編制在 。 120 外部函數(shù) ?外部函數(shù) ?在函數(shù)定義前加上 extern聲明,則函數(shù)稱為外部函數(shù),定義形式為: ?C語言中所有的函數(shù)本質(zhì)上都是外部函數(shù)。 14 } 118 程序組織結(jié)構(gòu) ?內(nèi)部函數(shù) ?函數(shù)本質(zhì)上是全局的,在多文件的程序中,在連接時(shí)會(huì)檢查函數(shù)在全局作用域內(nèi)是否名字唯一,如果不是則出現(xiàn)連接錯(cuò)誤。i=10。//靜態(tài)局部變量會(huì)保持其值 5 t++。 i++) f=f*i。 else { f=1。 … // 典型數(shù)據(jù) 2, 5, 5, 3, 8 long fact(int n) { int i。 // 2, 5, 5, 3, 8 f=fact(n)。 for(i=1。 思路: 1) 多個(gè)整數(shù)由鍵盤輸入至 n: 2, 5, 5, 3, 8 2) 循環(huán)中階乘函數(shù)的調(diào)用: f=fact(n)。 i++) sum=fun1(i)。 scanf(%d, amp。 s: 靜態(tài)存儲(chǔ)區(qū) return s。 //調(diào)用時(shí)分配單元并賦初值 static int x, y=1。 auto 類型 變量名 [=初值 ], ...... 108 生命期 ?4.寄存器變量 ?C語言允許用 CPU的寄存器來存放局部變量,稱為寄存器變量。 ?堆的優(yōu)點(diǎn)是分配和釋放是自由的,缺點(diǎn)是需要程序員自行掌握分配和釋放時(shí)機(jī),特別是釋放時(shí)機(jī),假如已經(jīng)釋放了還要使用堆會(huì)產(chǎn)生引用錯(cuò)誤,或者始終沒有釋放產(chǎn)生內(nèi)存泄漏( memory leak)。 ?C語言中可以通過使用指針、動(dòng)態(tài)內(nèi)存分配和釋放函數(shù)來實(shí)現(xiàn)堆的分配和釋放,詳見第 7章。下次函數(shù)調(diào)用時(shí)再重復(fù)。如果這些變量有初始化,就會(huì)有賦值指令給這些變量送初值,否則變量的值就呈現(xiàn)隨機(jī)性。期間如果數(shù)據(jù)被修改,則修改會(huì)一直保持。此后, bss段的存儲(chǔ)單元的性質(zhì)與 data段完全相同。 ?在程序映像中沒有存儲(chǔ) bss段,只有它的空間大小信息;程序運(yùn)行前由操作系統(tǒng)根據(jù)這個(gè)大小信息分配 bss段,且數(shù)據(jù)值全都初始化為 0,布局在與 data段相鄰的區(qū)域。 ?顯然, data段的存儲(chǔ)單元有與程序代碼相同的生命期,它們的初始值實(shí)際在編譯時(shí)就已經(jīng)確定了。 text段通常也是只讀的,使其只讀的原因是防止一個(gè)程序意外地修改了它的指令。 92 程序映像和內(nèi)存布局 ?運(yùn)行程序時(shí),由操作系統(tǒng)將可執(zhí)行文件載入到計(jì)算機(jī)內(nèi)存中,成為一個(gè)進(jìn)程( process)。 } p有效 int p, q。 } 8 4) 若全局變量 p定義點(diǎn)之前的函數(shù) f1想引用 p,一 是將定義點(diǎn)提前,或在函數(shù) f1內(nèi)做 外部變量說 明 ,使 p的有效范圍擴(kuò)展到 f1中; 例: int f1(int a) { extern int p。 return c。 return 0。 aver=(a+b+c)/。 //全局變量引用、賦值 if(bmax) max=b。 printf(Aver=%.2f Max=%d Min=%d\n, aver,max,min)。a,amp。 分析: 1) main輸入數(shù)據(jù)并調(diào)用自定義函數(shù),需將三個(gè)數(shù)傳 遞給函數(shù); 2) 自定函數(shù)需求出三個(gè)值,可用 return返回其一, 其余兩個(gè)存儲(chǔ)在全局變量中,可以在主調(diào)函數(shù) 中引用; include int max,min。 float f2(float x, float y) c1, c2 { int i, j。 意義 : 可使不同函數(shù)對(duì)同一個(gè)變量進(jìn)行引用或賦值, 這相當(dāng)于給函數(shù)間增加了一條數(shù)據(jù)傳遞通路;因而 可利用全局變量使函數(shù)調(diào)用返回一個(gè)以上的值; 全局變量有效范圍圖示: int p, q。 局部變量有效范圍圖示: int f1(int a) { int b, c。n=32767))。 scanf(%d, amp。 if(n!=0) fun(n)。 452 456 460 464 468 472 476 480 484 1 2 6 f: n: 3 保護(hù)現(xiàn)場(chǎng) 1 f: n: 2 保護(hù)現(xiàn)場(chǎng) 2 f: n: 1 保護(hù)現(xiàn)場(chǎng) 3 主調(diào) : fact(3) 分配 釋放 棧底 5 f a c t ( 4 )4 f a c t ( 3 )3 f a c t ( 2 )2 f a c t ( 1 )f = 1 。 r e t u r n ( f ) 。r e t u r n ( f ) 。 } SX048 Play遞歸說明: 1) 函數(shù) fact的執(zhí)行代碼只有一組,遞歸過程就是 重復(fù)執(zhí)行這組代碼段; 2) 每次遞歸調(diào)用,都動(dòng)態(tài)地為形參 n和局部變量 f 分配存儲(chǔ)單元, n接受本次遞歸傳遞的實(shí)參值; 3) 由分支條件控制遞歸的繼續(xù)或終止; 注意:要保證遞歸是有限的 4) 遞歸調(diào)用過程始終未出現(xiàn) f的賦值操作,始終未 執(zhí)行過 return語句; 5) 遞歸調(diào)用結(jié)束的回歸過程,將不斷執(zhí)行 return和 f的賦值。 } long fact(int n) { long f。 if(num0) printf(DATA ERROR!)。 int num。反復(fù)應(yīng)用分治手段,可使子問題與原問題類型一致而其規(guī)模卻不斷縮小,最終使子問題縮小到很容易求出其解。 29 } 71 遞歸調(diào)用 ? 遞歸調(diào)用 ?函數(shù)直接或間接調(diào)用自己稱為遞歸調(diào)用。a,amp。 20 } while (fabs(y)=)。 15 do { 16 x=point(a,b)。 32( ) 5 16 80f x x x x? ? ? ?610? ??68 嵌套調(diào)用 例 1 include 2 include 3 double f(double x) 4 { //所要求解的函數(shù)公式 , 可改為其他公式 5 return x*x*x3*x1。 i=x。 //嵌套調(diào)用 return s。 } ┇ m、 n 組合數(shù) 階乘值 int main( ) { ┅ c=p(m, n)。m, amp。 long c。 公式: 定義函數(shù): main: 實(shí)現(xiàn) I/O、調(diào)用 p函數(shù) 。 ?但如果是數(shù)組參數(shù)、指針參數(shù)就有必要了。 break。 break。 break。 } SX046 for(i=1。 for(i=1。 【 例 】 用隨機(jī)數(shù)函數(shù) rand模擬投擲一個(gè)六面骰子,共投擲 1000次,分別統(tǒng)計(jì)六種點(diǎn)數(shù)出現(xiàn)的次數(shù)。 隨機(jī)數(shù)函數(shù) : 函數(shù)原型: int rand( void)。 //日歷時(shí)間轉(zhuǎn)換為 tm結(jié)構(gòu)時(shí)間 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)。 //typedef long time_t。 //days since January 1 [0,365] int tm_isdst。 //day of the month [1,31] int tm_mon。 tm結(jié)構(gòu)體 : struct tm { int tm_sec。 日歷時(shí)間轉(zhuǎn)為本地時(shí)間: struct tm *localtime(const time_t * timer)。 i++) { t=t*x/i。 } double myexp(double x) { int i。x)。 2)s i nh(xx eex???)...(!...!3!2!1132????????????? xnxxxxenx設(shè)計(jì)分析: 1) 定義函數(shù)計(jì)算 ex,調(diào)用實(shí)參值分別取 x、 x。 j) printf(”*”)。 j0。 printf(”\n”)。 j) printf(” ”)。 for(i=1。 printf(\n)。 return 0; //星號(hào)的個(gè)數(shù)為實(shí)參 } void pstar(int sn) //有參無返回值 { int j。n)。 int main( ) { void pstar(int)。 } int max(int x, int y) //動(dòng)態(tài)分配與釋放 { int z。 d=max(a, b)。 scanf(%d,%d,%d, amp。 如: delay( )。 4. 函數(shù)調(diào)用的位置 1) 對(duì)有返回值函數(shù)的調(diào)用位置,可以是表達(dá)式的運(yùn)算元素、函數(shù)的參數(shù); 如: c=2*max(a,b)+10。 3. 函數(shù)調(diào)用的一般形式 函數(shù)名 (實(shí)參表 ) 當(dāng)被調(diào)函數(shù)形參是變量時(shí),實(shí)參形式: 可是常量、變量、下標(biāo)變量、表達(dá)式、函數(shù)調(diào)用 等;多個(gè)實(shí)參逗號(hào)分隔。 return。 //省略所有被調(diào)函數(shù)聲明 x=f1(…)。 //聲明 ps float f1(…) { …。個(gè)數(shù)不匹配則 編譯出錯(cuò);類型不匹配則以形參類型為準(zhǔn)自 動(dòng)轉(zhuǎn)換 (賦值兼容 )。 //實(shí)、形參類型不一致 7 10 6) 實(shí)參與形參在個(gè)數(shù)、類型、順序上要對(duì)應(yīng)一致; 如: d=max(a, b, 10)。 x=y=0。 形參: x y 第二次調(diào)用 : 實(shí)參: d c d=max(d, c)。 } int max(int x, int y) //動(dòng)態(tài)分配與釋放 { int z。 d=max(a, b)。 scanf(%d,%d,%d, amp。 //max函數(shù)調(diào)用 , 實(shí)參為 max(a,b),c 總結(jié): 函數(shù)參數(shù) 形式參數(shù) ——定義函數(shù)時(shí)的參數(shù),在未發(fā)生函數(shù)調(diào) 用時(shí)并不實(shí)際占用存儲(chǔ)單元,僅是形 式符號(hào)。實(shí)參可以是常量、變量或表達(dá)式,還可以是函數(shù)的返回值。 ?當(dāng)函數(shù)調(diào)用結(jié)束后,形參占用的內(nèi)存單元被自動(dòng)釋放。 如: int average(…… ) { ┇ return(sum/)。 } 2) 若函數(shù)不用 return語句返回值,其類型應(yīng)為空類 型 void;此時(shí)返回語句形式為: return。 4 } 第 1行 a和 b就是形參。 //是素?cái)?shù)返回 1 } 21 函數(shù)參
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1