问题 填空题

以下程序的运行结果是 【8】
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”。

单项选择题
单项选择题