考虑以下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)的返回值为________。
注–此问题为数值类型。
(A) 55
(B) 45
(C) 50
(D) 52答案: (A)
说明: 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)是正确的。
这个问题的测验