题目
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。