下列程序结果是()
int fib(int g) //如参数g得到4,switch结构内并没有匹配任何常量。switch结束继续向下执行,显然是先输出g=4,之后再执行到语句 return fib(3)+fib(2)。转去执行fib(3): 执行情况:显然也没有匹配上常量0-2,switch结束,继续执行输出g=3, 之后执行return fib(2)+fib(1)
// fib(2)的执行过程: 直接return 2 ;fib(1):同样,直接带回2{switch(g){case 0: return 0;case 1:case 2: return 2; // g是0返回0 g是1或2共用语句return 2; 返回2;
}printf("g=%d,"g);return fib(g-1)+fib(g-2) ;}int main(){int k; k=fib(4); // 调用fib传去4 , 返回值送k。
printf("k=%ld\n", k);
return 0; }
}
全部评论
(1) 回帖