Questão nº 43

Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 43)

FGV2024Técnico Legislativo - Suporte e ManutençãoTecnologia da Informação
Gabarito: Ever comentário ↓

Considere o seguinte trecho de código em linguagem C:

```
#include <stdio.h>
int main() {
int num1, num2, temp;
printf("Digite dois números inteiros: ");
scanf("%d %d", &num1, &num2);
// Implemente a lógica de troca dos valores aqui
printf("Valores trocados: %d %d\n", num1, num2);
return 0;
}
```

Deseja-se implementar a lógica de troca dos valores das variáveis num1 e num2 de modo que, após a execução, os valores exibidos na tela sejam os valores trocados.
Escolha a opção que completa corretamente a lógica de troca.

Resposta comentada

Gabarito Alternativa E

Conceito-chave: Para trocar dois valores, você precisa de uma variável temporária (temp) que guarde um dos valores antes de sobrescrevê-lo. Sem isso, você perde o valor original e a troca falha.

  • (A) Incorreta: num1 = num2; num2 = num1; — Aqui num1 recebe o valor de num2, e depois num2 recebe o valor já sobrescrito de num1 (que agora é igual a num2). Resultado: ambos ficam com o valor original de num2. A armadilha é parecer lógico, mas a segunda atribuição usa o valor já alterado.
  • (B) Incorreta: num2 = num1; num1 = num2; — Mesmo erro da (A), só que invertido: num2 vira cópia de num1, e depois num1 recebe esse mesmo valor. Ambos terminam iguais ao valor original de num1.
  • (C) Incorreta: num1 = num2; num2 = temp;temp não foi inicializada (lixo de memória), então num2 recebe um valor aleatório. Além disso, o valor original de num1 é perdido antes de ser copiado para temp.
  • (D) Incorreta: temp = num1; num1 = temp; num2 = num1; — Aqui temp guarda num1, mas num1 recebe de volta temp (não muda nada). Depois num2 recebe num1 (que ainda é o valor original). Resultado: nenhuma troca, apenas cópia de num1 para num2.
  • (E) Correta: temp = num1; num1 = num2; num2 = temp; — Primeiro guardamos o valor original de num1 em temp. Depois sobrescrevemos num1 com o valor de num2. Por fim, colocamos o valor antigo de num1 (que está em temp) em num2. Assim, os valores são trocados corretamente, sem perda de dados.

Fonte: FGV ALEP 2024 Técnico Legislativo - Suporte e Manutenção (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho