SóProvas


ID
928573
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens que se seguem, acerca da programação em
linguagem C.

O seguinte código não tem erros de sintaxe, e sua execução resulta na apresentação dos valores 10, 24 e 18.

#include <stdio.h>
int main(int argc, char *argv[])
{
       int a = 3, b = 2, c;
       c = (a > b) ? a : b;
       while (b < 5) {
           a = 0;
           while (a < 3) {
               a++;
               if (a == 2) continue;
               c++;
       }
       if(b == 4) break;
       b++;
       c++;
}
switch(a) {
       case 1 : b++;
       case 2 : b++;
       case 3 : b++;
case 4 : b++;
}
for (;a < 10; a++) c++;
do {
       b = b + c;
   } while (b < c);
   printf ("%d %d %d\n", a, b, c);
}

Alternativas
Comentários
  • isso não é um erro de sintaxe for (;a < 10; a++) c++; 

    ???Alguém pode comentar?
  • Jovem,

    Não é um erro de sintaxe e te garanto que compila e executa(acabei de testar com a gcc aqui). :)

    A única coisa que o autor desta questão fez foi suprimir o primeiro parametro do FOR, que é o de inicialização. Exemplo for(a=1, a< 10, a++). Se este campo for suprimido, constando apenas o ; no início dos parametros do for ainda sim irá rodar.

    Apenas não há uma atribuição inicial a uma variável. Como elas já vinham sendo alteradas em outras etapas do programa, você precisará calcular o valor de a antes de entrar neste laço.

    Valeu
  • Errei porque vi a ausência do return 0 na função main. Como a declaração é int main, inferi que o retorno era obrigatório, mas o programa compila sem erros.