版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ProgramminginC
c程序設計
ProgramminginC
西安電子科技大學計算機學院張淑平
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China1
.上次課要點__________ProgramminginC
?函數(shù)定義
?形式參數(shù)doubleCelsToFahr(intc)
?函數(shù)調(diào)用(
?實際參數(shù)doublet;
?參數(shù)傳遞t=9.0/5*c+32;
?實際參數(shù)向形式參數(shù)傳值return(t);
?函數(shù)返回值}
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
實參可以是常量、變量、表達式、函數(shù)等。無論實參是何
種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的
值,以便把這些值傳送給形參。
>因此,應預先用賦值、輸入等辦法,使實參獲得確定的
值。
形參變量只有在被調(diào)用函數(shù)執(zhí)行時,才分配內(nèi)存單元;調(diào)
用結(jié)束時,即刻釋放所分配的內(nèi)存單元。
>因此,形參只有在該被調(diào)用函數(shù)內(nèi)有效。調(diào)用結(jié)束,返
回主調(diào)函數(shù)后,則不能再使用該形參變量。
?實參對形參的數(shù)據(jù)傳送是單向的,即只能把實參的值傳送
給形參,而不能把形參的值反向地傳送給實參。
?實參和形參占用不同的內(nèi)存單元,即使同名也互不影響。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China3
ProgramminginC
這次課的主要內(nèi)容
參數(shù)傳遞
函數(shù)調(diào)用
嵌套調(diào)用
?遞歸調(diào)用
全局變量和局部變量
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China4
ProgramminginC
&傳值調(diào)用一
?函數(shù)調(diào)用執(zhí)行時,將實際參數(shù)的值傳遞給形
式參數(shù)
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
第;傳值調(diào)用
?函數(shù)調(diào)用執(zhí)行時,將實際參數(shù)變量的地址傳
遞給形式參數(shù)
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
題數(shù)組作為函數(shù)參數(shù)______________
?數(shù)組作為參數(shù)有兩種形式
?數(shù)組元素作為實參使用;
?把數(shù)組名作為函數(shù)的形參和實參使用
?數(shù)組元素是一個變量
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
;數(shù)組名作為函數(shù)參數(shù)
?數(shù)組名可以作為實參和形參,傳遞的是數(shù)組
空間的首地址
voidsort(inta[]9intn)/*數(shù)組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
改組名作為函數(shù)參數(shù)(續(xù))
?多位數(shù)組作為實參酒碗一
inti,j,max,num[3][4];
?例如:找出二維數(shù)組
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
函數(shù)的嵌套調(diào)用
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China10
令NProsramminsinC
初函數(shù)的嵌套調(diào)用____________________
O嵌套調(diào)用是指在執(zhí)行被調(diào)用函數(shù)時,被調(diào)用
函數(shù)又調(diào)用了其他函數(shù)
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0
ProgramminginC
殛嵌套調(diào)用:排序
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
徵嵌套調(diào)用:求組合數(shù)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
繆函數(shù)不能嵌套定義
?函數(shù)不能嵌套定義,即不能在一個函數(shù)內(nèi)定
義另一個函數(shù)
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
函數(shù)的遞歸調(diào)用
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China15
ProgramminginC
現(xiàn)函數(shù)的遞歸調(diào)用
?若函數(shù)在執(zhí)行過程中直接或間接地調(diào)用自身,
稱為函數(shù)的遞歸調(diào)用
?函數(shù)的遞歸定義)例如:n!=n*(n-1)!(n>l)
1n<=1
fact(n)={
n*fact(n-1)n>1
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,Ct遞歸TC2.0
鷺函數(shù)的遞歸調(diào)用ProgramminginC
?在遞歸調(diào)用中,調(diào)用函數(shù)又是被調(diào)用函數(shù),
執(zhí)行遞歸函數(shù)將反復調(diào)用其自身。每調(diào)用一
次就進入新的一層。
?為了防止遞歸調(diào)用無終止地進行,必須在函
數(shù)內(nèi)有終止遞歸調(diào)用的手段。常用的辦法是
加條件判斷,滿足某種條件后就不再作遞歸
調(diào)用,然后逐層返回。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China17
ProgramminginC
£全局變量和局部變量___________
在函數(shù)中定義的變量是局部變量
在所有函數(shù)之外定義的變量是全局變量
形式參數(shù)是局部變量
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China18
圓全局變量和局部變量ProgramminginC
局部變量只在定義它的函數(shù)中有意義
全局變量在所有函數(shù)中都有意義
intm9n;
intgcd(intx,inty)
main()
{
{
inti;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開學典禮演講稿范文匯編六篇
- 2021年鄉(xiāng)鎮(zhèn)新農(nóng)村建設工作總結(jié)
- 二年級下冊數(shù)學教學計劃范文匯編8篇
- 理智愛國演講100字10篇
- 活動計劃模板合集8篇
- 幼兒園教師演講稿模板集錦六篇
- 成都的房屋租賃合同
- 設計專業(yè)實習工作總結(jié)
- 學習部年度工作總結(jié)
- 六一兒童節(jié)學生代表演講稿3篇
- 行政案例分析-終結(jié)性考核-國開(SC)-參考資料
- 操作系統(tǒng)-001-國開機考復習資料
- 快樂讀書吧:中國民間故事(專項訓練)-2023-2024學年五年級語文上冊(統(tǒng)編版)
- 出車前的安全檢查
- 山東省煙臺市2023-2024學年高一上學期期末考試 化學 含解析
- 2024落實意識形態(tài)責任清單及風險點臺賬
- 2024年度護士長工作總結(jié)
- 《籃球:原地持球交叉步突破》教案(三篇)
- 稀土新材料在新能源技術領域的應用
- 2024年無人駕駛航空植保技能大賽理論考試題庫(含答案)
- 2024山東高速集團社會招聘189人高頻難、易錯點500題模擬試題附帶答案詳解
評論
0/150
提交評論