1.如下代码输出结果是 16
#define sum(a,b,c) a+b+c
int main()
{
int i= 3;
int j = 2;
printf("%d\n", i*sum(i,(i+j),j)); //i*i+(i+j)+j=16
system("pause");
return 0;
}
2.下面程序运行结果是 7
int f(int n)
{
static int i = 1;
if (n>=5)
{
return n;
}
n = n + i;
i++;
return f(n);
}
int main()
{
printf("%d\n", f(1)); //7
system("pause");
return 0;
}
因为 i 是static变量,它的值不随函数退出而消失,而要保留到下一次被访问。
3.下面程序运行结果是 0
int func()
{
int i, j, k = 0;
for (i = 0, j = -1; j = 0; i++, j++) // k=0条件为假不执行!!
{
k++;
}
return k;
}
int main()
{
printf("%d\n", (func()));
system("pause");
return 0;
}