[考题] 计算机概论 程式输出问题

楼主: 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