1. El siguiente programa
#include <stdio.h>
main () {
int a = -2, b = 0;
mientras que (a ++ ++ && b);
printf ( "% d% dn.", a, b);
}
Al ejecutar el programa se emite (D)
A.0.2 B.0.3 D.1.2 C.1.3
Análisis: En primer lugar, tenemos que entender es que mientras que (); la acción es cuando realmente hay un tiempo de ciclo sin parar.
El primer paso, a = -2, b = 0, mientras que después del primer ciclo a = -2 && ++ b = 1 es cierto, entonces después de un ++ a = -1, b = 1;
El segundo paso, a = -1, b = 1, mientras que bucle a través de a = -1 && ++ b = 2 es cierto, entonces después de un ++ a = 0, b = 2;
El tercer paso, a = 0, b = 2 después del bucle while, aquí está la clave, a = 0 && reglas de operador en el momento en que sabemos que mientras la izquierda es 0, entonces la operación no va a terminar en el lado derecho de realizar, por lo que a = 0, después de un ++ convierte a = 1, y b no se incrementa de modo que b = 2.