D'apres le C90 :
a) while(x & i<n)
reviens a faire while((x & i) < n)
b) while(x | i>=n)
reviens a faire while((x | i) >= n)
c) while (!x && i<n)
reviens a faire while((!x) && (i < n))
Bref je pense que a b et sont valide, mais on obtiens pas ce qu'on pourrais croire