以下程序的输出是什么?
#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/
这个问题的测验