问题 单项选择题

下面程序段执行结果是( )。
int i=5,k;
k=(++i)+(++i)+(i++);
printf("%d,%d",k,i);

A.24,8

B.21,8

C.21,7

D.24,7

答案

参考答案:B

解析: k=(++i)+(++i)+(i++)表达式中,“++”号在i前面的有两个,所以在计算k之前,i要先增两次,即i变为7,然后再将3个7相加,使k得21;表达式中“++”号在i后面的有1个,所以得出k的值以后i又增1次变为8。

单项选择题
单项选择题