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

正文內容

c語言程序設計第8章-文庫吧在線文庫

2024-09-01 16:00上一頁面

下一頁面
  

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