Kiedy program sprawdza warunek, prawdopodobnie zdąży wykonać inkrementację dla x. W momencie sprawdzania x = 0, więc warunek będzie nieprawdziwy, ale zdąży on tego x zwiększyć o 1.
W efekcie wyświetlasz 1 + 0, czyli 1.
Y nie jest inkrementowany, bo przy operatorze and wystarczy, że jeden z argumentów jest równy zero, więc zmienna y nie została nawet tknięta. Tak mi się wydaję. :)