📜  门| GATE-IT-2004 |第 60 题

📅  最后修改于: 2021-09-24 05:45:51             🧑  作者: Mango

以下程序的输出是什么?

#include 
int funcf (int x);
int funcg (int y);
  
main()
{
    int x = 5, y = 10, count;
    for (count = 1; count <= 2; ++count)
    {
        y += funcf(x) + funcg(x);
        printf ("%d ", y);
    }
}
  
funcf(int x)
{
    int y;
    y = funcg(x);
    return (y);
}
  
funcg(int x)
{
    static int y = 10;
    y += 1;
    return (y+x);
}

(一) 43 80
(乙) 42 74
(C) 33 37
(四) 32 32答案:(一)
说明: count=1,一直到2,所以下面的语句会被执行两次。

y += funcf(x) + funcg(x); 

第一次调用-funcg(x); // y = 11 y+x= 16。

第二次调用 funcg(x); // y= 12 y+x= 17。

第一次迭代-> main()->y = 16+17 +10 = 43

第二次迭代-> main() y= 18+19 +43 = 80

所以答案是A

有关静态变量的更多信息,请访问:https://www.geeksforgeeks.org/g-fact-80/
这个问题的测验