C语言程序的一个计算问题,不会啊,求大家帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/12 17:04:12
47.以下程序的输出结果是
f(int a )
{int b=0;
static int c=3;
a=c++,b++;
return(a);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++) k=f(a++);
printf(“%d\n”,k);
}
A.3 B.6 C.5 D.4

麻烦大家帮忙写个计算过程 3Q 拉 我算不出啊 谢谢了

我的C也不太好,貌似是D把,说错了不要怪我
因为f(int a )
{int b=0;
static int c=3;
a=c++,b++;
return(a);
}
不管a怎么变, a总是等于C++ 而c又是一个常量,a=c++=4

#include<iostream>
using namespace std;
int f(int a )
{int b=0;
static int c=3;
a=c++,b++;
return(a);
}
int main()
{ int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
cout<<k<<endl;
}
运行结果为4

因为c是一个静态变量,它的取值不会变化~~!!它的值一直都是4!