填空题 以下程序的运行结果是{{U}} 【8】 {{/U}}。 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); }
  • 1、
【正确答案】 1、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”。