黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁考試吧論壇Exam8視線考試商城網絡課程模擬考試考友錄實用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓 自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產評估師
審計師考試
高級會計師
注冊稅務師
國際內審師
理財規劃師
美國注冊會計師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
造價員考試
注冊計量師
環保工程師
化工工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
繽紛校園 實用文檔 英語學習 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項輔導
軟件水平考試交流互動
軟件水平考試交流互動
您現在的位置: 考試吧 > 軟件水平考試 > 復習資料 > 程序員資料 > 正文

C語言初學者入門知識之函數03

  函數的遞歸調用

  一個函數在它的函數體內調用它自身稱為遞歸調用。 這種函數稱為遞歸函數。C語言允許函數的遞歸調用。在遞歸調用中, 主調函數又是被調函數。執行遞歸函數將反復調用其自身。 每調用一次就進入新的一層。例如有函數f如下:

  int f (int x)

  {

  int y;

  z=f(y);

  return z;

  }

  這個函數是一個遞歸函數。 但是運行該函數將無休止地調用其自身,這當然是不正確的。為了防止遞歸調用無終止地進行, 必須在函數內有終止遞歸調用的手段。常用的辦法是加條件判斷, 滿足某種條件后就不再作遞歸調用,然后逐層返回。 下面舉例說明遞歸調用的執行過程。

  [例5.9]用遞歸法計算n!用遞歸法計算n!可用下述公式表示:

  n!=1 (n=0,1)

  n×(n-1)! (n>1)

  按公式可編程如下:

  long ff(int n)

  {

  long f;

  if(n<0) printf("n<0,input error");

  else if(n==0||n==1) f=1;

  else f=ff(n-1)*n;

  return(f);

  }

  main()

  {

  int n;

  long y;

  printf("\ninput a inteager number:\n");

  scanf("%d",&n);

  y=ff(n);

  printf("%d!=%ld",n,y);

  }

  long ff(int n)

  { ……

  else f=ff(n-1)*n;

  ……

  }

  main()

  { ……

  y=ff(n);

  ……

  }

  程序中給出的函數ff是一個遞歸函數。主函數調用ff 后即進入函數ff執行,如果n<0,n==0或n=1時都將結束函數的執行,否則就遞歸調用ff函數自身。由于每次遞歸調用的實參為n-1,即把n-1 的值賦予形參n,最后當n-1的值為1時再作遞歸調用,形參n的值也為1,將使遞歸終止。然后可逐層退回。下面我們再舉例說明該過程。 設執行本程序時輸入為5,即求 5!在主函數中的調用語句即為y=ff(5),進入ff函數后,由于n=5,不等于0或1,故應執行f=ff(n-1)*n,即f=ff(5-1)*5。該語句對ff作遞歸調用即ff(4)。 逐次遞歸展開如圖5.3所示。進行四次遞歸調用后,ff函數形參取得的值變為1,故不再繼續遞歸調用而開始逐層返回主調函數。ff(1)的函數返回值為1,ff(2)的返回值為1*2=2,ff(3)的返回值為2*3=6,ff(4) 的返回值為6*4=24,最后返回值ff(5)為24*5=120。

  例5. 9也可以不用遞歸的方法來完成。如可以用遞推法,即從1開始乘以2,再乘以3…直到n。遞推法比遞歸法更容易理解和實現。但是有些問題則只能用遞歸算法才能實現。典型的問題是Hanoi塔問題。

  [例5.10]Hanoi塔問題

  一塊板上有三根針,A,B,C。A針上套有64個大小不等的圓盤, 大的在下,小的在上。如圖5.4所示。要把這64個圓盤從A針移動C針上,每次只能移動一個圓盤,移動可以借助B針進行。但在任何時候,任何針上的圓盤都必須保持大盤在下,小盤在上。求移動的步驟。

1 2 3 下一頁

  相關推薦:

  2012年軟考系統分析師考試60天完美復習計劃

  2012年軟件水平考試網絡工程師章節筆記講義匯總

  2012年上半年軟件水平考試成績查詢匯總

文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
主站蜘蛛池模板: 中国毛片免费观看 | 日本一区二区三区中文字幕 | 制服女子校生在线调教 | 午夜影院黄 | 中文字幕在线观看第一页 | 日本三级香港三级人妇网站 | 亚洲成人免费在线观看 | 草草影院www色欧美极品 | 国产一级又色又爽又黄大片 | 久久狠狠干| 在线成人免费看大片 | 亚洲欧美日韩国产精品影院 | 黄色福利网址 | 麻豆视频一区二区三区 | 美国一级做a一级视频 | 国产成人精品免费视频网页大全 | 国产精品综合色区在线观看 | 欧美日韩另类在线观看视频 | 视频色www永久免费 视频区小说区图片区激情 视频免费1区二区三区 | 超级碰在线观看 | 免费在线播放毛片 | 国产成人亚洲精品77 | 色偷偷人人澡久久天天 | 亚洲免费福利视频 | 成人在线免费看 | 精品视频手机在线观看免费 | 成在线视频 | 香蕉视频网页 | 日本韩国在线观看 | 一本一道波多野结衣一区二区 | 欧美成人在线免费 | 美女视频黄a视频全免费网站色窝 | 欧美一级夜夜爽 | 动漫美女胸被狂揉扒开吃奶动态图 | 国产一区二区三区免费 | 欧美一二区视频 | 秋霞宅宅236理论片 秋霞在线高清观看伦理片 秋霞影视伦理手机在线观看 | 120秒男女动态视频免费 | 日韩欧美在线视频 | 成年在线观看视频免费看 | 一区二区在线观看视频 |