已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第 7章 函 數 第 7章 函 數 函數定義和函數調用 函數的嵌套調用和遞歸調用 局部變量和全局變量 變量的存儲類別 內部函數和外部函數 函數定義和函數調用 數定義 【 例 已知五邊形各邊及對角線的長度,求面積。 a b c d e f g s1 s2 #x,y,z) s,a; s=(x+y+z)/2; a=s*(; a; 分析: a,b,f) ; c,g,f) ; d,e,g) ; a,b,c,d,e,f,g; s1,s2,s3,s; %f%f%f%f%f,&a,&b,&c,&d,&e); %f%f,&f,&g); a,b,f) ; c,g,f) ; d,e,g) ; s=s1+s2+s=%fn,s); a b c d e f g s1 s2 般形式: 類型 函數名 ( 類型 形參,類型 形參, ) 定義部分 語句序列 x,y,z) s,a; s=(x+y+z)/2; a=s*(; a; 【 例 編寫函數,在一行上輸出 10個 * 字符。 # i; i=0;iy?x:y; a,b,c,m; %f%f%f,&a,&b,&c); m=a,b), c); m=%fn,m); 一般形式: 類型標識符 函數名 (類型 形參 ,類型 形參 , ); 或 類型標識符 函數名 (類型 ,類型 , ) ; 數聲明 例如: x,y); 或 【例 被調函數聲明的例子 # x,y); a,b,c; %f,%f,&a,&b); c=a,b); f,c); x,y) z; z=x+y; z); c=a,b); /* 在 */ x, y) /* 函數定義 */ z; z=xy?x:y; z); 函 數 調 用 開 始 建 立 形 參 變 量 實 參 值 復 制 給 形 參 執(zhí) 行 函 數 體帶 回 函 數 值 、 返 回 調 用 處 、 撤 銷 形 參函 數 調 用 結 束【 例 求末尾數非 0的正整數的逆序數,如 21)的值是: 123 # a, %&a); %ldn, a) ) ; a=%ldn,a); n) k=0; n) k=k*10+n%10; n/=10; k; 21); k=0; 當 n=321時 k=0*10+321%10=1; n=321/10=32; 當 n=32時 k=1*10+32%10=12; n=32/10=3; 當 n=3時 k=12*10+3%10=123; n=3/10=0; 當 n=0時結束循環(huán) 分析: n=321, k=0 k=1; k=k*10+2; k=k*10+3; 數的嵌套調用和遞歸調用 數的嵌套調用 m a i n 函 數調 用 a 函 數結 束a 函 數調 用 b 函 數b 函 數( 1 )( 2 )( 3 )( 4 )( 5 )( 6 )( 7 )( 8 )( 9 )【 例 編寫程序,輸入 n, m,求組合數 )!(! ! mC # n,m; %d%d,&n,&m); ldn, n,m) ); jc(n) i; t=1; i=1;i 3!=3*2! - 2!=2*1! - 1!=1*0! - 0!=1 4!=4*6 jc(n) f; if(n=1|n=0) f=1; f=n* f; y; n; %d”,&n); y=jc(n); %d!=%n,y); y=) f=3*) f=2*) f=1 1 ! 1例 十進制整數按相反的順序將各位數字打 印出來。 如: 23456); 輸出: 654321 #n) if(n=0) %d,n%10); n/10); n; %&n); n); 運行結果如下: 123456 654321 部變量和全局變量 a; a=10; %d”,a); 內存 000 2001 部變量(內部變量) 定義: 在函數內定義的變量。 作用域: 在本函數內有效。 說明: (1) (2) 形參屬于 局部 變量。 (3) 不同函數中 同名 變量,占不同內存單 元。 (4) 在 復合語句 中定義的變量,只在本復合語句中有效。 x ) a; a=x0?x:a; m,n; %f”,&m); n=m); %fn”,n); a, n;a); a); v id a,b,c;a=1;b=2; c=a+b; c; c= %dn”,c); dn”,c); 輸出: 局變量 ( 外部變量 ) 定義: 在函數外部定義的變量 。 作用域: 從定義的位置到本文件結束 。 x, i, j a,b,c,d m, n c2 a2 ,; f1(x) i,j; . . c1, f2(a, b) c,d; . . m,n; . . 【例 寫函數求兩個數的和與積。 # x, y) x+y; x*y; a,b; %f%f, &a,&b); a,b); %n, 注意: (1) 設置全局變量的作用是增加了函數間數據傳遞的通道。 (2) 全局變量定義時未初始化,系統(tǒng)為其賦初值 0。 (3) 若全局變量與局部變量同名,則在局部變量的作用范圍內,同名的全局變量不起作用 。 x+y; x*y; 運行情況如下: 3 8 行情況如下:3 8 例 用 展它在程序文件中的作用域 #x, y) z; z=xy?x:y; z); %d, , B); =8, B=2; (4) 當全局變量定義在后,引用在前時,應在引用它的函數中用 此全局變量進行聲明(說明)。 【 例 】 用 聲明外部變量,擴展它在程序文件中的, B; 【 例 用 展它在程序文件中的作用域 #in in ax(x, y) in z; z=xy?x:y; t r (z); , B; d , , B); , B=2; (5) 當一個程序由多個源文件組成時,如果想在一個文件中引用另一個文件中的已定義的外部變量,要用 【 例 用 文件 a; n) i,y=1; i=1;i a; d,m; a n); %d,%d, &a, &m); d=m); %d*%d=%d,a,m,d); 計算: a的 a*m=行情況如下: 2, 3 2*3=8 變量的屬性: 數據類型:如 。 存儲類型 :是指數據在內存中 的存儲方式。 分兩大類: 動態(tài)存儲類 靜態(tài)存儲類 變量的存儲類 型 用戶內存空間 動態(tài)存儲區(qū) 靜態(tài)存儲區(qū) 程序存儲區(qū) 變量定義的形式: 存儲類型標識符 類型標識符 變量名; 動的 靜態(tài)的 寄存器 外部的 i,j,k; c; . . 等價于 i,j,k; c; . . 動)變量 態(tài))變量 靜態(tài)變量分為: 靜態(tài) 局部 變量 靜態(tài) 全局 變量 靜態(tài)全局變量只能被所定義的文件中所有函數引用。 例如在例 a; 【 例 察靜態(tài)局部變量的值。 #a) b=0; c=1; b=b+1; c=c+1; a+b+c); a=2,i; i=0;i3;i+) %d,a); 分析: i=0時: b: 0 c: 1 b: 1 c: 2 a+b+c=2+1+2=5; 運行結果: 5 6 7 1: 2: 33 62: 3: 44 7 寄存器變量被存放在寄存器中, 比自動變量存取速度快得多。 存器)變量 n) i, f=1; i=1;i=n;i+) f=f*i; f); 注意: (1) 寄存器的數量有限,因此寄存器變量不能定義太多。 (2) 只有局部自動變量和形式參數可作為寄存器變量。 1. 內部函數 內部函數 只能被本文件中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025特許經營權轉讓合同范本
- 洛陽師范學院《中學地理教學論》2023-2024學年第一學期期末試卷
- 2024實驗室設備選購合同3篇
- 2024年城市核心區(qū)域房產交易定金合同范本2篇
- 2024專項工作合作合同
- 2024年度農業(yè)智能化溫室建設與運營管理合同3篇
- 城市廣場綠化養(yǎng)護承包合同
- 商業(yè)易主協議
- 電子產品生產線招投標流程
- 廣告市場應急照明施工協議
- 4D廚房設備設施管理責任卡
- GB/T 5593-2015電子元器件結構陶瓷材料
- GB/T 3871.6-1993農業(yè)輪式和履帶拖拉機試驗方法第6部分制動試驗
- GB/T 22844-2009配套床上用品
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 17646-2013小型風力發(fā)電機組設計要求
- 中醫(yī)拔罐技術試題及答案
- 2023年蘇教版小學數學全套教材內容安排表
- 滅火器驗收表
- 裝修工程竣工驗收報告(7篇)
- 商務溝通-課件
評論
0/150
提交評論