Boas,
1) a pergunta está mal formulada. Esses ciclos não têm variável de controlo
(...assim como um for pode nao ter: for( ; ; ){...} lol )
2)Deverá ser 0, ou seja, se z é 7 (qq coisa !=0 -> significa 'true'), então a sua negação deverá ser 0.
3)Digamos que sim, nesse caso i vai apenas tomar valores impares
4)Acho que não, ie, tens de a declarar (sem a inicializar e depois então podes atribuir-lhe valores): extern int idade; idade = 20; <-- Assim é válido
[[[]]]

