📜  门| GATE CS 2020 |第 56 题

📅  最后修改于: 2021-09-26 04:39:42             🧑  作者: Mango

考虑以下 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)是正确的。
这个问题的测验