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

正文內(nèi)容

c語言函數(shù)ppt課件-文庫吧資料

2025-01-12 13:57本頁面
  

【正文】 n對變量加以聲明,可以將其作用域擴(kuò)展到整個文件或多個文件。 printf(s=%d\n,s)。 i=100。 /*i由于變化頻繁定義為寄存器變量 */ long s=1。存取速度最快,適用于使用頻繁的變量,但受寄存器數(shù)目的限制。 } 調(diào)用時(shí)的初值 調(diào)用后的初值 b c b c a+b+c 0 3 1 4 7 0 4 1 5 8 0 5 1 6 9 register類型的局部變量也屬于 auto變量。 c=c+1。 static int c=3。i++) printf(%d,f(a))。 for(i=0。 } include void main() { int f(int)。 static y。 ? 對靜態(tài)變量是 在編譯時(shí) 賦初值的,即只賦初值一次 ? 如在定義局部變量時(shí)不賦初值的話,則 對靜態(tài)變量 來說,編譯時(shí)自動賦初值 0或空字符 。 ? 自動變量如定義時(shí)賦初值 (在執(zhí)行階段 ),則每次調(diào)用函數(shù)都賦一次初值。 ? auto類型的局部變量 存儲在動態(tài)存儲區(qū) ,動態(tài)分配存儲空間,可以節(jié)省存儲空間。對以上這些數(shù)據(jù),在函數(shù)調(diào)用開始時(shí)分配動態(tài)存儲空間,函數(shù)結(jié)束時(shí)釋放這些空間。 動態(tài)存儲區(qū) 靜態(tài)存儲區(qū) 程序區(qū) ? 數(shù)據(jù)分別存放在靜態(tài)存儲區(qū)和動態(tài)存儲區(qū) ? 全局變量全部存放在靜態(tài)存儲區(qū) 中,在程序開始執(zhí)行時(shí)給全局變量分配存儲區(qū),程序執(zhí)行完畢就釋放。 ? 限制了函數(shù)的通用性 ? 損害了程序的清晰度 ? 降低了內(nèi)存的利用率 如果在同一個源文件中,外部變量與局部變量同名,則在局部變量的范圍內(nèi), 外部變量被“屏蔽” 動態(tài)存儲方式 : 程序運(yùn)行期間據(jù)需要動態(tài)分配存儲空間的方式。y=5。 y=temp。 temp=x。 printf(x=%d,y=%d\n, x,y)。 swap()。 /*注意此處的局部變量 c1,c2將 屏蔽外層的全局變量,即,在 f2函數(shù)中凡是提到 c1,c2,均是 指的局部變量 c1,c2*/ …… } include int x=2,y=3。 …… } char c1,c2。 int p=1,q=5。它實(shí)際上實(shí)現(xiàn)了函數(shù)之間數(shù)據(jù)溝通的方式,增強(qiáng)了各模塊的聯(lián)系。 全局變量: 函數(shù)之外定義的變量叫全局變量,也稱為外部變量。 ? 不同函數(shù)中變量可以同名,互不干擾。 a,b,c,d在此范圍內(nèi)有效 x,y,c,d在此范圍內(nèi)有效 t在此范圍內(nèi)有效 x,y,a,b在此范圍內(nèi)有效 ? 主函數(shù)定義的變量,也只在主函數(shù)內(nèi)有效。float a,b。 { float t。 將變量分為 int、float等等類型 全局變量 局部變量 指在程序 整個運(yùn)行期間 都起作用 指在程序 局部運(yùn)行期間 都起作用 數(shù)據(jù)類型: 變量所持有的數(shù)據(jù)的性質(zhì)(操作屬性) 生存期: 變量在內(nèi)存中存在的某一時(shí)間范圍(數(shù)據(jù)的存儲類別) 作用域: 變量能夠起作用的程序空間范圍 int f1(int a,int b) { int c,d。 register int i。 ? 遞歸函數(shù)算法清晰,代碼簡練 ? 從理論上講,遞歸函數(shù)似乎很復(fù)雜,其實(shí)它是編程中的一類問題的算法,最為直接 ? C編譯系統(tǒng)對遞歸函數(shù)的自調(diào)用次數(shù)沒有限制,但當(dāng)遞歸層次過多時(shí),可能會引起內(nèi)存不足而造成運(yùn)行出錯,尤其時(shí)函數(shù)內(nèi)部定義較多的變量和較大的數(shù)組時(shí) 采用遞歸方式實(shí)現(xiàn) 二分查找 ? 函數(shù)調(diào)用時(shí),實(shí)參和形參類型不一致 ? 在值傳遞中,企圖用形參值的改變影響實(shí)參值 ? 傳遞數(shù)據(jù)名時(shí)傳遞為數(shù)組元素值 ? 對函數(shù)進(jìn)行嵌套定義 ? 對函數(shù)遞歸調(diào)用時(shí),落掉遞歸結(jié)束條件 ? 在 C語言中,參數(shù)的值傳遞,具有如下特點(diǎn): ① 實(shí)參與形參各自占據(jù)獨(dú)立的存儲單元; ② 調(diào)用時(shí),將實(shí)參的值傳入形參單元 ; ③ 在被調(diào)用的函數(shù)內(nèi),訪問相應(yīng)的形參單元 ;④ 函數(shù)調(diào)用結(jié)束時(shí),釋放形參單元 ? 參數(shù)的地址傳遞有什么特點(diǎn)? ? C語言中,函數(shù)可以嵌套調(diào)用,不可以嵌套定義 ? 函數(shù)遞歸調(diào)用指對函數(shù)自身的調(diào)用,算法描述為: if(遞歸中止條件 ) return (條件終止時(shí)的值 ) else return 遞歸公式 教學(xué)內(nèi)容 變量的作用域與存儲類別、內(nèi)部函數(shù)和外部函數(shù) 教學(xué)目標(biāo) 應(yīng)知 變量的作用域與生存期 變量的存儲類別 宏定義和文件包含 程序中變量的作用范圍 能夠分析程序中靜態(tài)變量的值 會正確使用宏定義 難點(diǎn) 靜態(tài)變量在程序中的作用 ? 變量 ——變量是對程序中數(shù)據(jù)的存儲空間的抽象 靜態(tài)存儲方式 動態(tài)存儲方式 自動型 (auto) 靜態(tài)型 (static) 寄存器型 (registic) 外部型 (extern) 指在程序運(yùn)行期間由系統(tǒng)分配 固定的 存儲空間的方式 指在程序運(yùn)行期間由系統(tǒng) 根據(jù)需要進(jìn)行動態(tài)分配存儲空間的方式 int sum。 } 對遞歸函數(shù)概括如下: ? 有些問題既可以用遞歸的方法解決,也可以用遞推的方法解決。C39。B39。A39。 printf( the step to moving %3d diskes:\n,m)。 scanf(%d,amp。 } } void main() { int m。 move(one,three)。} void hanoi(int n,char one,char two,char three) { if(n==1) move(one,three)。 1 2 3 1 2 3 hanoi(int n,char one,char two,char three) n==1 move(one,three) move(one,three) hanoi(n1,one,three,two) hanoi(n1,two,one,three) T F move(char x,char y) printf(“%c%c\n”,x,y)。有一個老和尚想把這 64個盤子從 A座移到 C座上,但每次只允許移動一個盤子,且在移動過程中在 3個坐上都始終保持大盤在下,小盤在上。 } 例 13 Hanoi(漢諾塔)問題 :這是一個古典的數(shù)學(xué)問題,是一個只有用遞歸方法(而不能用其他方法)解決的問題。a)。 printf(a=)。 } include void main() { long ff(int)。 else f=ff(n1)*n。 if(n0) printf(n0,input error)。 } void main() { printf(%d\n,age(5))。 else c=age(n1)+2。 ? 可以應(yīng)用這個規(guī)律的遞歸結(jié)束條件 ? 要有一個明確的遞歸結(jié)束條件 算法描述為: if(遞歸中止條件 ) return (條件終止時(shí)的值 ) else return 遞歸公式 include int age(int n) { int c。這種函數(shù)稱為遞歸函數(shù)。請問第 5個人多少歲。問第 2個人,說比 第 1個人大 2歲 。問第 4個人多少歲,他說比 第 3個人大 2歲 。 } void line() { printf()。i++) if (i10) line()。 for(i=1。 printf(\n)。 void line()。 printf(\naverage score is %\n,aver)。n)。} printf(Please input n:)。 scanf(%f,amp。i10。 printf(input 10 scores:\n)。 } float score[10],aver。 aver=sum/n。in。 float aver,sum=array[0]。也就是說,在定義函數(shù)時(shí),一個函數(shù)內(nèi)不能包含另一個函數(shù) ——嵌套定義 ? 但是 C語言允許在調(diào)用一個函數(shù)的過程中,又調(diào)用另一個函數(shù)。 return max。j4。i3。 } int max_value(int array[][4]) { int i,j,max=array[0][0]。 int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}。 在函數(shù)定義時(shí)對形參數(shù)組可以指定每一維的長度,也可省去第一維的長度。 return aver。i++) sum+=array[i]。 for(i=1。 float average(float array[]) { int i。 當(dāng)形參數(shù)組的長度與實(shí)參數(shù)組不一致時(shí),雖不至于出現(xiàn)語法錯誤 (編譯能通過 ),但程序執(zhí)行結(jié)果將與實(shí)際不符,這種現(xiàn)象應(yīng)予以避免的。 求 n~ m個學(xué)生的平均成績 ( 1) 形參數(shù)組和實(shí)參數(shù)組的類型須一致, 否則引起錯誤。n)。 } ,int n)。 } aver=average(score)。 scanf(%f,amp。i10。 printf(input 10 scores:\n)。 float score[10],aver。 return aver。i++) sum+=array[i]。 for(i=1。 ,int n) n n float average(float array[10]) { int i。 return sum/10。 output avg。 } 只求 前 n(動態(tài)輸入 )個學(xué)生的平均成績 例 10 有一個一維數(shù)組 score,內(nèi)放 10個學(xué)生成績,求平均成績 float score[10],avg。 } aver=average(score)。 scanf(%f,amp。i10。 printf(input 10 scores:\n)。 float score[10],aver。 return aver。i++) sum+=array[i]。 for(i=1。 average(float array[10]) 函數(shù)類型? float average(float array[10]) { int i。 i=0 to 9 sum+=array[i]。 給數(shù)組 score賦初值 avg=average(score)。 } 實(shí)參數(shù)組單元 函數(shù)調(diào)用時(shí) 形參數(shù)組單元 : : 傳遞地址 函數(shù)運(yùn)行過程中 數(shù)組名作為函數(shù)參數(shù)時(shí)“按址傳送”,這其實(shí)就實(shí)現(xiàn)了值的傳遞,而且這種值的傳遞是一種雙向效果 ,即, 當(dāng)在被調(diào)用函數(shù)中改變了數(shù)組元素的值,那么這種改變就是對實(shí)參數(shù)組的改變,這樣的改變會在被調(diào)用函數(shù)結(jié)束后帶回到調(diào)用函數(shù)中。i10。 void add2(int n[10]) { int i。 } void add2(int[])。 printf(\n)。i10。 printf(加 2以后的數(shù)組為 :\n)。i10。a[i])。i++) { printf(a[%d]=,i)。 for(i=0。 int a[10],i。 給數(shù)組 a賦初值 add2(a[i]) i=0 to 9 output數(shù)組 a add2(a) add2(int n[10]) i=0 to 9 n[i]+=2。 可以用 傳遞地址 解決 數(shù)組首地址 或者是變量地址 例 8 對例 6改進(jìn),定義一個整型數(shù)組 a[10],要求在一個函數(shù)中以 數(shù)組首地址作實(shí)參 將 a數(shù)組中各個元素的值加 2。 因此它作為函數(shù)實(shí)參使用與普通變量是完全相同的,在發(fā)生函數(shù)調(diào)用時(shí),把作為實(shí)參的數(shù)組元素的值傳送給形參,實(shí)現(xiàn) 單向的值傳送 。 y=temp。 temp=x。 printf(交換后 :\na=%d,b=%d\n,a,b)。b)。 scanf(%d%d,amp。 int a,b。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。 ? 形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí)立即釋放所分配的內(nèi)存單元 。 即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。 printf(x=%d,y=%d\n,x,y)。 x=x+2。 } int max(int x,int y) { return(xy?x:y)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1