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

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)第8章-文庫(kù)吧在線文庫(kù)

  

【正文】 的程序 分析: 重復(fù)三次求階乘運(yùn)運(yùn)算, 只是每次的值不同。m,amp。 scanf(“%d%d”,amp。 } C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的。如果 f(x1)與 f(x2)同符號(hào) ,則應(yīng)改變 x1,x2,直到f(x1)、 f(x2)異號(hào)為止。 C語(yǔ)言的特點(diǎn)之一就在于允許函數(shù)的遞歸調(diào)用。 開(kāi)始 調(diào)用 f2函數(shù) 開(kāi)始 調(diào)用 f1函數(shù) f1 函數(shù) f2 函數(shù) 例 有 5個(gè)人坐在一起,問(wèn)第 5個(gè)人多少歲?他說(shuō)比第 4個(gè)人大 2歲。 ???????? 112)1(10)(nnna g ena g e執(zhí)行過(guò)程如下: age函數(shù) n=5 main age(5) 輸出 age(5) c=age(4)+2 age函數(shù) n=4 c=age(3)+2 age函數(shù) n=3 c=age(2)+2 age函數(shù) n=2 c=age(1)+2 age函數(shù) n=1 c=10 age(2)=12 age(3)=14 age(4)=16 age(5)=18 int age(int n) /*遞歸函數(shù) */ { int c。 } main ( ) /*主函數(shù) */ { printf(“%d”,age(5)) } 遞歸結(jié)束條件 遞歸公式 遞歸函數(shù)編寫(xiě)總結(jié): 1) 采用 if語(yǔ)句格式; 2)兩要素: 遞歸結(jié)束條件 遞歸公式 3)一般形式 if(遞歸結(jié)束條件 ) else 遞歸公式 4)遞歸公式中包含遞歸函數(shù)名,但參數(shù)不同 5)if語(yǔ)言前的語(yǔ)句在遞歸進(jìn)入時(shí)執(zhí)行, if語(yǔ)句后的語(yǔ)句在遞歸返回時(shí)執(zhí)行 例 n! 遞推法: 從 1開(kāi)始,乘 2,乘 3, …… 一直乘到 n。 } main ( ) { int n。 例 有兩個(gè)數(shù)組 a, b,各有 10個(gè)元素,將它們對(duì)應(yīng)地逐個(gè)相比。i++) scanf(“%d”,amp。 printf(“\n”)。 else printf(“array a is equal to array b\n)”。 5) 數(shù)組名作函數(shù)實(shí)參,不是值傳遞而是 地址傳遞 ,實(shí)參和形參數(shù)組將共占用同一段內(nèi)存單元 .如果形參數(shù)組中各元素發(fā)生變化會(huì)使實(shí)參數(shù)組元素的值同時(shí)發(fā)生變化。 for (i=0。i10。 printf(“Max is %d”,max(a))。 return(aver)。 printf(“\n”)。jn。a[i])。 long fun( int n) {long s。 2) 數(shù)組名作函數(shù)實(shí)參,不是值傳遞而是 地址傳遞 ,實(shí)參和形參數(shù)組將共占用同一段內(nèi)存單元 .如果形參數(shù)組中各元素發(fā)生變化會(huì)使實(shí)參數(shù)組元素的值同時(shí)發(fā)生變化。 } } main( ) {char str[100]。 for(i=0。 } 實(shí)參與形參的小結(jié) 實(shí)參 形參 傳遞方式 常量、變量、表達(dá)式 數(shù)組元素 變量 傳值(單向) 數(shù)組名 數(shù)組名 傳數(shù)組首地址 局部變量和全局變量 局部變量 在一個(gè)函數(shù)內(nèi)部定義的變量是內(nèi)部變量,只在本函數(shù)范圍內(nèi)有效,在此函數(shù)之外是不能使用這些變量,成為 局部變量 。其他函數(shù)不能調(diào)用。 …… } …… } 局部?jī)?yōu)先 c有效 全局變量 程序的編譯單位是源程序文件,一個(gè)源文件可以包含一個(gè)或若干個(gè)函數(shù)。 …… } main( ) { int m,n。 void main() { float average (float array [ ],int n)。 } float average(float array[ ],int n) { int i 。 } aver= sum/ 10。 printf(“%d”,max(a,b))。 d+=a++。 程序區(qū) 靜態(tài)存儲(chǔ)區(qū) 動(dòng)態(tài)存儲(chǔ)區(qū) 用戶區(qū) 數(shù)據(jù)存放區(qū) 全局變量 全部 存放在 靜態(tài)存儲(chǔ)區(qū): 非動(dòng)態(tài)地進(jìn)行分配和釋放,在 程序開(kāi)始 執(zhí)行時(shí)給全局變量分配存儲(chǔ)區(qū), 程序執(zhí)行完畢 就釋放。 寄存器( register) 外部( extern) auto變量 函數(shù)中的局部變量,如不專門(mén)聲明為 static存儲(chǔ)類別,都是動(dòng)態(tài)地分配存儲(chǔ)空間的, 數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中在函數(shù)調(diào)用結(jié)束時(shí)就自動(dòng)釋放這些存儲(chǔ)空間,因此 這類局部變量稱為 自動(dòng)變量 。 static int c=3。 } 運(yùn)行結(jié)果為: 7 8 9 說(shuō)明: 1) 靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放; 2) 對(duì) 靜態(tài)局部變量 是在 編譯時(shí)賦初值 的,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。 例 :輸出1到5的階乘值 include void main() { int fac( int n) 。 } 1!=1 2!=2 3!=6 4!=24 5!=120 例:以下程序的輸出結(jié)果是( )。} A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15 C 例:編寫(xiě)一個(gè)函數(shù) swap用于交換兩個(gè)整數(shù)的值 方法 1: include void swap(int x,int y) { int t。 printf(“%d %d”,a,b)。y) swap( )。a[0],amp。這種變量叫做” 寄存器變量 ”,用關(guān)鍵字register作聲明 , 內(nèi)存 CPU 總 線 運(yùn)算器 控制器 寄存器 例 使用寄存器變量 int fac(int n) { register int i,f=1。i++) printf(“%d!=%d\n”,i,fac(i))。如果在定義點(diǎn)之前的函數(shù)恩引用該外部變量,則應(yīng)該在引用之前用關(guān)鍵字 exturn對(duì)該變量作“ 外部變量聲明 ”。 文件 : int A。 printf(“%d*%d=%d\n”,A,b,c)。i++) y=y*A。這為程序的模塊化、通用性提供方便。在定義內(nèi)部函數(shù)時(shí),在函數(shù)名和函數(shù)類型的前面加 static。 內(nèi)部函數(shù)和外部函數(shù) 函數(shù)本質(zhì)上是全局的,因?yàn)橐粋€(gè)函數(shù)要被另外函數(shù)調(diào)用。如果找不到,按出錯(cuò)處理。 /*聲明 A為一個(gè)已定義的外部變量 */ power(int n)。 scanf(“%d,%d”,amp。如果程序只由一個(gè)源文件組成,使用外部變量的方法如前面介紹。 用 extern聲明外部變量 外部變量(即全局變量) 是在函數(shù)的外部定義的,它的作用域?yàn)閺?變量的定義處開(kāi)始,到本程序文件的未尾。 return(f)。經(jīng)過(guò)運(yùn)算器進(jìn)行運(yùn)算,如果需要存數(shù),再?gòu)倪\(yùn)算器將數(shù)據(jù)送到內(nèi)存存放。x[0]=x[1]。x=y。 } void main( ) { int a,b。 printf(%d , d)。i++) printf( ″%d! =%d\n ″,i ,fac(i)) 。一般在以下情況下使用局部靜態(tài)變量: ( 1) 需要保留函數(shù)上一次調(diào)用結(jié)束時(shí)的值。 } main ( ) { int a=2,i。 用 static聲明局部變量 有時(shí)希望函數(shù)中的局部變量的值在 函數(shù)調(diào)用結(jié)束后不消失而保留原值 ,即其占用的存儲(chǔ)單元不釋放,在下一次該函數(shù)調(diào)用時(shí),該變量已有值,就是上一次函數(shù)調(diào)用結(jié)束時(shí)的值。 護(hù)和返回地址 等。 靜態(tài)存儲(chǔ)方式: 在程序編譯時(shí)分配固定的存儲(chǔ)空間的方式 動(dòng)態(tài)存儲(chǔ)方式: 在函數(shù)調(diào)用的時(shí)候動(dòng)態(tài)分配存儲(chǔ)空間的方式 。 d+=p++。 max (int a,int b) { int c。i<n 。i<10 。 ② 它使函數(shù)的 通用性降低 了 ③ 使用全局變量過(guò)多,會(huì) 降低程序的清晰性 3. 如果在同一個(gè)源文件中, 外部變量與局部變量同名 ,則在局部變量的作用范圍內(nèi), 外部變量被“屏蔽” ,即它不起作用。 int p=1,q=5。 …… } …… } 變量 c只在復(fù)合語(yǔ)句內(nèi) 有效,離開(kāi)后就無(wú)效, 釋放內(nèi)存單元 。 …… } 變量 a,b,c有效 變量 x,y,i,j有效 變量 m,n有效 下列變量是局部變量: 在一個(gè)函數(shù)內(nèi)部定義的變量 函數(shù)的形式參數(shù) 在某個(gè)復(fù)合語(yǔ)句中定義的變量 說(shuō)明: ( 1) 主函數(shù) main中定義的變量(如 m,n)也只在主函數(shù)中有效, 而不因?yàn)樵谥骱瘮?shù)中定 義而在整個(gè)文件成程序中有效,這是和 Pascal不同的。j++) if(mx[i][j]) m=x[i][j]。 } 如果輸入 an anple,該程序的輸出結(jié)果是( )。 istrlen(str)/2。 } main() {printf(%ld\n, fun(3))。i10。} } } void main( ) { int a[10],i。 選擇法介紹: 1)將 10個(gè)數(shù)進(jìn)行相互比較,找出最小數(shù),將之與 a[0]對(duì)換; 2)再將 a[1]到 a[9]的數(shù)進(jìn)行比較,找出最小數(shù),將之與 a[1]對(duì)換; 3) …… ,共比較 9輪,最后得到排序后的結(jié)果; 以 5個(gè)數(shù)為例說(shuō)明: a[0] a[1] a[2] a[3] a[4] 3 6 1 9 4 未排序時(shí)的情況 1 6 3 9 4 將 5個(gè)數(shù)中最小數(shù) 1與 a[0]對(duì)換 1 3 6 9 4 將余下的 4個(gè)數(shù)中最小數(shù) 3與 a[1]對(duì)換 1 3 4 9 6 將余下的 3個(gè)數(shù)中最小數(shù) 4與 a[2]對(duì)換 1 3 4 6 9 將余下的 2個(gè)數(shù)中最小數(shù) 6與 a[3]對(duì)換 至此完成排序 include void sort(int array [ ],int n) { int i,j,t。 for(i=0。 for(i=1。 for (i=0。 printf(“Max is %d”,max(a,10))。in。 else flag=0。 else k=k+1。 for(i=0。 int a[10],b[10],i,n=0,m=0,k=0。n)。 if(n0) printf(“n0,dataerror!”)。} main ( ) /*主函數(shù) */ { printf(“%d”,age(5))} age(5) 輸出 age(5) main( ) c=age(4)+2 age函數(shù) n=5 age(5)=18 c=age(1)+2 age函數(shù) n=2 age(2)=12 c=10 age函數(shù) n=1 age(1)=10 …… int age(int n) /*遞歸函數(shù) */ { int c。最后問(wèn)第 1個(gè)人,他說(shuō)是 10歲。 } 在調(diào)用函數(shù) f 的過(guò)程中,又要調(diào)用 f 函數(shù),這是直接調(diào)用本函數(shù) .見(jiàn)圖。 } float myfunc(float r) { return 2*myfabs(r)+1。 printstar( )。 } float fac(int k) { float t=1。 將求階乘的過(guò)程編成一個(gè) 函數(shù) fac,以不同的參數(shù)值 k 來(lái)調(diào)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1