版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ProgramminginC
c程序設計
ProgramminginC
西安電子科技大學計算機學院張淑平
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China1
.上次課要點__________ProgramminginC
?函數定義
?形式參數doubleCelsToFahr(intc)
?函數調用(
?實際參數doublet;
?參數傳遞t=9.0/5*c+32;
?實際參數向形式參數傳值return(t);
?函數返回值}
voidmain(void)
{intx;doubley;
printf(MCelsiustoFahrenheittable:\nn);
for(x=0;x<=100;x+=5){
y=CelsToFahr(x);printf(H%3d--%3g\tn,x,y);
膏形參和實參ProgramminginC
實參可以是常量、變量、表達式、函數等。無論實參是何
種類型的量,在進行函數調用時,它們都必須具有確定的
值,以便把這些值傳送給形參。
>因此,應預先用賦值、輸入等辦法,使實參獲得確定的
值。
形參變量只有在被調用函數執(zhí)行時,才分配內存單元;調
用結束時,即刻釋放所分配的內存單元。
>因此,形參只有在該被調用函數內有效。調用結束,返
回主調函數后,則不能再使用該形參變量。
?實參對形參的數據傳送是單向的,即只能把實參的值傳送
給形參,而不能把形參的值反向地傳送給實參。
?實參和形參占用不同的內存單元,即使同名也互不影響。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China3
ProgramminginC
這次課的主要內容
參數傳遞
函數調用
嵌套調用
?遞歸調用
全局變量和局部變量
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China4
ProgramminginC
&傳值調用一
?函數調用執(zhí)行時,將實際參數的值傳遞給形
式參數
main()
voidswap(intx,inty)inta,b,c;
{a=3;b=8;c=2;
intt;if(a>b)swap(a,b);
t=x;x=y;y=t;if(a>c)swap(a,c);
if(b>c)swap(b,c);
nf
printf(%d%d%d\a5b,c);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China5
ProsramminsinC
第;傳值調用
?函數調用執(zhí)行時,將實際參數變量的地址傳
遞給形式參數
main()
(
voidswap(int*x,int*y)inta,b,c;
{a=3;b=8;c=2;
intt;if(a>b)swap(&a,&b);
t=*x;*x=*y;*y=t;if(a>c)swap(&a,&c);
if(b>c)swap(&b,&c);
nf
printf(%d%d%d\a9b,c);
西安電子科技大學計算機學院-XidianUniversity,ChinaTC2.0
ProgramminginC
題數組作為函數參數______________
?數組作為參數有兩種形式
?數組元素作為實參使用;
?把數組名作為函數的形參和實參使用
?數組元素是一個變量
intnum[5]={79,11,27,26,43};
num[O]79
num[l]11
num[2]27
num[3]26
num[4]43
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China7
ProgramminginC
;數組名作為函數參數
?數組名可以作為實參和形參,傳遞的是數組
空間的首地址
voidsort(inta[]9intn)/*數組a白main()
{inti,j,temp;
for(i=0;i<n-1;i++){inti;
for(j=0;j<n-1-i;j++)intnum[6]={43,18,9,13,55,7};
if(a[j]>a[j+l]){
temp=a[j];a[j]=a[j-sort(num,6);
}/*endif*/for(i=0;i<6;i++)
}/*endfori*/printf(n%d\tn,num[i]);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0
ProgramminginC
改組名作為函數參數(續(xù))
?多位數組作為實參酒碗一
inti,j,max,num[3][4];
?例如:找出二維數組
for(i=0;i<3;i++){
intmax_value_Matrix(inta[]
for(j=0;j<4;j++){
{inti,j,line,col;
num[i][j]=rand();
max=a[0][0];line=0;co
printf(n%d\tn,num[i][j]);
for(i=0;i<m;i++)
}
for(j=0;j<n;j++)
printf(H\nn);
if(a[i][j]>max){max
}
printf(n%d,%d,line,co
max=max_value_Matrix(num,354);
returnmax;
printf(n%d\tn,max);
TC2.0
ProgramminginC
函數的嵌套調用
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China10
令NProsramminsinC
初函數的嵌套調用____________________
O嵌套調用是指在執(zhí)行被調用函數時,被調用
函數又調用了其他函數
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0
ProgramminginC
殛嵌套調用:排序
voidsort(inta[],intn)main()
{inti,j,temp;(
for(i=0;i<n-1;i++){inti;
for(j=0;j<n-1-i;j++)intnum[6]={43,18,9,13,55,7};
if(a[j]>a[j+l]){
swap(&a[j],&a[j+l]);sort(num,6);
}/*endif*/for(i=0;i<6;i++)
}/*endfori*/printf(M%d\f\num[i]);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0
徵嵌套調用:求組合數ProgramminginC
longfact(intn)
?書架上有10本不同的書,
從中任取2本,有多少(
種取法?longt=1,i=1;
for(i=1;i<=n;i++)
<1010!t=t*i;
2)2!(10-2)!return(t);
longcombinations(intn,intk)
return(fact(n)/(fact(k)*fact(n-k)));
0E。子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,Ctl己事TC2.0
ProgramminginC
繆函數不能嵌套定義
?函數不能嵌套定義,即不能在一個函數內定
義另一個函數
longfact(intn)main()
longt=1,i=1;inti=1;
for(i=1;i<=n;i++){for(i=1;i<=10;i++){
t=t*i;printf(n%d!=%ld\nn,i,fact(i));
)}
return(t);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China14
ProgramminginC
函數的遞歸調用
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China15
ProgramminginC
現函數的遞歸調用
?若函數在執(zhí)行過程中直接或間接地調用自身,
稱為函數的遞歸調用
?函數的遞歸定義)例如:n!=n*(n-1)!(n>l)
1n<=1
fact(n)={
n*fact(n-1)n>1
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,Ct遞歸TC2.0
鷺函數的遞歸調用ProgramminginC
?在遞歸調用中,調用函數又是被調用函數,
執(zhí)行遞歸函數將反復調用其自身。每調用一
次就進入新的一層。
?為了防止遞歸調用無終止地進行,必須在函
數內有終止遞歸調用的手段。常用的辦法是
加條件判斷,滿足某種條件后就不再作遞歸
調用,然后逐層返回。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China17
ProgramminginC
£全局變量和局部變量___________
在函數中定義的變量是局部變量
在所有函數之外定義的變量是全局變量
形式參數是局部變量
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China18
圓全局變量和局部變量ProgramminginC
局部變量只在定義它的函數中有意義
全局變量在所有函數中都有意義
intm9n;
intgcd(intx,inty)
main()
{
{
inti;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班探究活動的有效設計計劃
- 健全公司內控體系的重要性計劃
- 大班體育活動教案《玩呼啦圈》大班呼啦圈體育教
- 化學課時規(guī)范練4 離子反應
- 中小企業(yè)崗位職責及任職資格說明書大全
- 定點救治醫(yī)院婦產科醫(yī)護人員的防護建議
- 學校教室改造工程施工組織設計方案
- 工筆畫技法教案
- 金融行業(yè)壟斷
- 建筑工程質量考核實施方案
- 2024年秋季學期新人教版生物七年級上冊課件 第三章 微生物 2.3.4 病毒
- 統編版(2024)道德與法治七年級上冊:第1-13課全冊教案(共26課時)
- 2024年執(zhí)法資格考試題庫(附答案)
- 2024-2030年中國磚瓦行業(yè)發(fā)展分析及發(fā)展前景與投資研究報告
- 運用PDCA循環(huán)提高全麻患者體溫檢測率
- 人教版五年級英語上冊知識歸納
- 2024年秋季新人教版八年級上冊物理課件 3.5跨學科實踐:探索廚房中的物態(tài)變化問題
- 外研版(2024)七年級上冊英語全冊教案教學設計
- 2024-2030年中國骨生長促進劑行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 從業(yè)人員誠實守信和無犯罪記錄承諾書模板
- YYT 0916.1-2014 醫(yī)用液體和氣體用小孔徑連接件 第1部分:要求
評論
0/150
提交評論