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

📅  最后修改于: 2021-06-28 19:38:39             🧑  作者: 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);
}

(A) 43 80
(B) 42 74
(C) 33 37
(D) 32 32答案: (A)
说明: 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/
这个问题的测验