题目
32.以下程序的输出结果是_main()(intn=1;printf("%d%d%dn",n,n++,n--);)
32.以下程序的输出结果是_main(){intn=1;printf("%d%d%d\n",n,n++,n--);}
题目解答
答案
101
解析
本题考查C语言中函数调用时参数的计算顺序以及自增、自减运算符的运算规则。关键在于理解:
- 自增(
n++
)和自减(n--
)运算符的执行顺序:先取当前值,再改变变量值。 - 函数参数的计算顺序:C语言中,参数的计算顺序是未定义的,但常见编译器采用从右到左的顺序。
参数计算过程分析
假设参数按从右到左的顺序计算:
- 第三个参数
n--
:- 当前
n = 1
,取值1
,然后n
减 1 变为0
。
- 当前
- 第二个参数
n++
:- 此时
n = 0
,取值0
,然后n
加 1 变为1
。
- 此时
- 第一个参数
n
:- 此时
n = 1
,直接取值1
。
- 此时
输出结果
三个参数的值依次为 1
(第一个参数)、0
(第二个参数)、1
(第三个参数),最终输出 101
。