You have probably misunderstood the post-increment operator which is very common among the beginners, so don't worry. Over time you'll get it right.
Take a look at the word post-increment. There is a post word in it which generally signifies after. It means that the increment will happen after everything else has been executed. This is how I used to remember it.
So, if you take a look at your program now - 
int main()
{
    int  w=3, z=7; 
    printf("%d\n", w++|z++);
}
then it will become clear that after the printf function itself has been executed, the increment will happen. So you will get the value of w and z as 3 and 7, respectively in the evaluation of the second argument expression of printf.
The official C++11 standard, (§5.2.6, final version) says - 
The value of a postfix ++ expression is the value of its operand. [Note:the value obtained is a copy of the original value — end note] 
So that means the value of the postfix w++ expression, is the value of the operand itself, that is, the value of the w, which is 3 and the value of the second expression z++ will be 7. These values will then be used in the calculation of 3|7 and after that, the variables will be incremented.