考虑以下 C 函数。
int fun1(int n) {
static int i= 0;
if (n > 0) {
++i;
fun1(n-1);
}
return (i);
}
int fun2(int n) {
static int i= 0;
if (n>0) {
i = i+ fun1 (n) ;
fun2(n-1) ;
}
return (i);
}
fun2(5) 的返回值是 ________ 。
注意——这个问题是数字类型。
(一) 55
(乙) 45
(C) 50
(四) 52答案:(一)
解释:由于“静态变量”,fun1() 添加了它之前的值。
因此,它打印 55。
#include
int fun1(int n);
int fun2(int n);
int fun1(int n) {
static int i= 0;
if (n > 0) {
++i;
fun1(n-1);
}
return (i);
}
int fun2(int n) {
static int i= 0;
if (n>0) {
i = i+ fun1 (n) ;
fun2(n-1) ;
}
return (i);
}
int main()
{
printf("%d", fun2(5));
return 0;
}
代码 – https://ide.geeksforgeeks.org/RAcxRv1gaA
选项(A)是正确的。
这个问题的测验