Hola María,
Si hacés la asignación res=1, la expresión lógica del while da falso,
porque i<lx es verdadero, pero ~res es falso (dado que res==1==verdadero)
entonces, i<lx && ~res es equivalente a verdadero && falso, o sea falso.
Si la expresión lógica es falsa, entonces no se ejecuta el while.
Espero haber aclarado la duda.
saludos,
Eduardo