大学生c语言的题目,大一新生的,搞不懂为啥,讲解一下

img

因为i++意思是执行完此表达式后i增加1,而printf的参数其实是从右往左运算的。
从右边数第一个i++应该是输出3,再加1,变成4;
第二个是输出4,再加1,变成5;
最后输出5

C.

因为i初始值为3,输出的时候i、i++、i++,i自然是3,i++先赋值再++,所以还是输出3,但i经过i++之后变成了4,最后一个i++,一样先赋值再加,此时i为4,所以为4.因此结果为3,3,4

选D ,i++ ,i++,i ==>3 , 4 ,5

i++的自增运算永远都在其它操作的后面

i++是先取值,后运算,所以i=3,第一个i++先取值为3,输出,自增为4,第二个i++先取值为4输出,自增为5。所以最后得到的结果为3,3,4