Considere o programa na linguagem C: #include <stdio.h&g...
#include <stdio.h> int main(){ int a, b, c; printf("Digite dois números\n"); scanf("%d%d", &a, &b); c = a; a = b; b = a; printf("%d %d\n", a, b); return 0; }
Executando e digitando como entrada os números 12 e 14, a saída será:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - 14 14
Vamos analisar o que o programa em linguagem C está fazendo para entender por que a alternativa C é correta. O programa começa incluindo a biblioteca stdio.h, que é necessária para realizar operações de entrada e saída, como printf e scanf. Após isso, ele declara três variáveis inteiras, a, b e c.
O programa pede ao usuário que digite dois números e os armazena nas variáveis a e b respectivamente. Em seguida, o valor de a é armazenado na variável c. Logo após, a variável a recebe o valor de b. Perceba que, nesse momento, tanto a quanto b contêm o mesmo número que foi originalmente armazenado em b.
O próximo passo é onde a confusão geralmente acontece: a variável b é igualada a a. No entanto, como a já foi modificada para ter o valor que b tinha, essa operação apenas faz com que b continue com o mesmo valor, não ocorrendo uma troca de valores entre as variáveis a e b.
Assim, quando os números 12 e 14 são digitados pelo usuário, a recebe 12 e b recebe 14. Depois da operação a = b, ambas a e b têm o valor 14. Isso é confirmado na linha do printf, que imprime os valores de a e b, resultando na saída 14 14, que é a resposta correta.
Para resolver essa questão, é necessário compreender a atribuição de valores entre variáveis e a ordem de execução das instruções na linguagem C. Além disso, é fundamental ter atenção ao fato de que uma variável pode receber o valor de outra, e se não houver um armazenamento intermediário (como seria o caso se tivéssemos utilizado a variável c corretamente para armazenar o valor original de a), o valor original será perdido.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo