[考題] 計算機概論 程式輸出問題

作者: jolinboyfrie (宇)   2014-07-19 12:07:51
下列以 C 程式語言撰寫之程式執行後產生之輸出為何?
#include <stdio.h>
int g=0;
int fibo(int n) {
g++;
if (n == 1 || n == 2)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
int main() {
printf("%d %d", fibo(5), g);
return 0;
}
答案為59
想請問各位,printf("%d %d",fibo(5),g); 把5帶進去運算,但是我就不懂g了,他沒有
任何的宣告,如果帶進去會怎麼處理啊?好像有一點亂,可以幫我解惑嗎?謝謝
作者: whk183920 (oooooooooooorz)   2014-07-19 12:12:00
g前面有宣告阿 g表這個function被執行過幾次的意思是全域變數,不會因為function的開始結束而有所影響
作者: godpam (波波)   2014-07-19 12:17:00
g在一開始就宣告為全域變數了,fibo執行一次就加1,總共執行9次,所以最後g=9
作者: kaocoming (藍藍的天~白白的雲~)   2014-07-19 12:48:00
我發現你最近po很多類似的問題 你要不要找本c語言的入門書來看一下 對你會比較有幫助些
作者: happyegg1 (快樂蛋1)   2014-07-19 12:51:00
也還好吧...有些東西用看的 用理解的老半天 還是不知道在說 ...如果有人點一下 反而快多了
作者: APE36 (PT鄉民)   2014-07-19 12:51:00
推樓上,上來發問,不如拿相關專業書籍來看還比較實際
作者: jolinboyfrie (宇)   2014-07-19 12:52:00
謝謝,最近在寫歷屆考題,我會的C有一點基礎..我會再
作者: happyegg1 (快樂蛋1)   2014-07-19 12:53:00
像資訊概論 法學類的東西 別人講個兩三句 點一下..遠勝看好幾個的書好幾個小時的書尤其很多書 只會教你理論 但是不會給你整個解題過程會解題後 在看理論就快多了...看完理論再來解題要花太時間...且理論真的不是2 3次就懂了 說不定人家也看過理論了
作者: kaocoming (藍藍的天~白白的雲~)   2014-07-19 13:03:00
以前我在學習指標時 也是向原po一樣case by case的學習後來發現這樣常常出問題 即便是類似的問題業不一定能理解,後來自己翻了10分鐘左右的書 才有種全部豁然開朗的感覺我想表達的是 原PO的問題還算是基礎的問題 稍微翻一下書是不會太浪費時間的 有時候反而更能節省時間在這種情況下 翻專業的書籍反而比一題一提問有效
作者: APE36 (PT鄉民)   2014-07-19 13:09:00
發問問題解答是暫時性得到答案,讀書是自己的理解後的答案
作者: kaocoming (藍藍的天~白白的雲~)   2014-07-19 13:09:00
當然在題目太特殊的情況 提問是會比看書迅速就是了
作者: APE36 (PT鄉民)   2014-07-19 13:10:00
反而自己吸收過後再來看自己問題有一種豁然開朗的想法
作者: okstephen1 (ㄌㄩㄝ)   2014-07-19 13:28:00
沒錯 你一題一題問 每題得到別人解答 但換個方式考試的時候的考題不見得出過 你就等考完再問別人吧寫200題程式題不如看過一本程式書
作者: APE36 (PT鄉民)   2014-07-19 13:46:00
個人是這麼覺得,如果你是考資處的,程式這東西未來也是進去各單位要會的東西,如果寫程式有問題的話,建議該思考一下自己的選擇是不是正確的。所以先打好基礎後,以後遇到挑戰自己就能夠克服。

Links booklink

Contact Us: admin [ a t ] ucptt.com