Matemática Múltipla Escolha

Considere o seguinte programa escrito em C: #include void main(){ char ch1, ch2; printf("Entre com duas letras: \n"); scanf("%c %c", &ch1, &ch2); ch1 = ch2; ch2 = ch1; printf("ch1 = %c e ch2 = %c\n", ch1, ch2); } Após a execução desse trecho, suponha que o usuário tenha entrado com as letras 'p' e 'q'. Assinale a alternativa que contém, corretamente, o que será exibido na tela.

Considere o seguinte programa escrito em C:
#include

void main(){
char ch1, ch2;
printf("Entre com duas letras: \n");
scanf("%c %c", &ch1, &ch2);
ch1 = ch2;
ch2 = ch1;
printf("ch1 = %c e ch2 = %c\n", ch1, ch2);
}

Após a execução desse trecho, suponha que o usuário tenha entrado com as letras 'p' e 'q'. Assinale a alternativa que contém, corretamente, o que será exibido na tela.

  1. ch1 = p e ch2 = q
  2. ch1 = q e ch2 = p
  3. ch1 = p e ch2 = p
  4. ch1 = q e ch2 = q
  5. ch1 = &ch1 e ch2 = &ch2

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D

O código apresentado simula um processo de troca de variáveis, mas contém um erro lógico comum que impede a inversão dos valores originais. Para identificar a saída correta, é necessário rastrear o valor de cada variável passo a passo durante a execução do programa.

Análise do Código

A lógica de execução ocorre da seguinte maneira:

  1. Entrada de Dados (scanf):
  • O usuário digita as letras 'p' e 'q'.
  • A variável ch1 recebe o valor inicial 'p'.
  • A variável ch2 recebe o valor inicial 'q'.
  1. Primeira Atribuição (ch1 = ch2;):
  • O valor atual de ch2 ('q') é copiado para ch1.
  • Estado atual: ch1 agora vale 'q' (o antigo valor 'p' foi perdido). ch2 continua valendo 'q'.
  1. Segunda Atribuição (ch2 = ch1;):
  • O valor atual de ch1 ('q') é copiado para ch2.
  • Como ambas já valiam 'q', não há mudança efetiva no conteúdo.
  • Estado final: ch1 = 'q' e ch2 = 'q'.

Para realizar uma troca real entre duas variáveis sem perder dados, seria necessário usar uma terceira variável temporária. Como o código apenas sobrescreve os valores sequencialmente, ambos terminam com o último valor lido.

Conclusão

Após a execução, a função printf exibirá o conteúdo atual das variáveis. Como ambas foram sobrescritas pelo valor de ch2, a saída na tela será:

ch1 = q e ch2 = q

Portanto, a alternativa correta é a D.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.