Does the second line alter the original value of "i"
Obviously it does considering the answer says the value of i is 11 not 10.
You have to break the line down into steps. The right hand side of statement is evaluated first and it is evaluated left to right.
int n = i++ % 5;
1. Retrieve the value stored in variable i
int n = 10 % 5; (i++ still has to happen and since it is postincrement it happens last)
2. Perform mod calculation. 10 divided by 5 equals 2 with 0 left over.
int n = 0; (i++ still has to happen)
3. Increment i
int n = 0;
4. Assign result to n
So we now can see that i has been incremented from 10 to 11 and 0 is assigned to n.