以下程序的运行结果是【 】。 int k=0; void fun (int m) {m+=k; k+=m; printf("m=%d k=%d",m,k++) } main() {int i=4; fun(i++); printf("i

admin2009-01-15  16

问题 以下程序的运行结果是【  】。
int k=0;
void fun (int m)
{m+=k; k+=m;
   printf("m=%d k=%d",m,k++)
}
main()
{int i=4;
   fun(i++);
   printf("i=%d k=%d\n",i,k);
}

选项

答案m=4 k=4 i=5 k=5

解析 main()函数首先定义了1个变量i,并初始化为4。然后用表达式i++的值为实参调用函数fun(),因为后缀”表达式的值为增1之前的值,故此时传递给函数的参数 m值为4。fun()函数中,首先让形参m自增k,由于此时k还是0,所以m不变,然后让k自增m,执行后k的值和m相同为4。最后fun()函数输出m和k廿的值,两个值都是4,故首先输出了“m=4  k=4 ”,输出完后,k自增1(k变为5)。fun()函数执行完毕,返回main()函数中,此时i会被自增1变为5,故接着又输出的i和k的值都是5。故最终输出结果是“m=4  k=4  i=5  k=5”。
转载请注明原文地址:https://kaotiyun.com/show/gOHp777K
0

最新回复(0)