Questão nº 24

Questão de Tecnologia da Informação · FCC TRT23 2022 (nº 24)

FCC2022Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Considere o programa em C abaixo.

#include <stdio.h>
int main() {
    int y, *p, x;
    y = 0;
    p = &y;
    x = *p;
    x += 10;
    ++(*p);
    --x;
    (*p) += x;
    printf ("y = %i\n", y);
    return 0;
}

Ao ser compilado e executado em condições ideais, a saída do programa é:

Resposta comentada

Gabarito Alternativa C

Ponteiros em C são variáveis especiais que guardam o endereço de memória de outras variáveis, permitindo que você acesse e altere o valor dessas variáveis de forma indireta. O operador & (endereço de) é usado para obter o endereço de uma variável, e o operador * (desreferência) é usado para acessar o valor que está no endereço apontado pelo ponteiro.

  • (A) Incorreta: Esta alternativa seria a resposta se o aluno esquecesse que a operação ++(*p) incrementa o valor de y. Se y não fosse incrementado para 1 nessa etapa, ele permaneceria 0, e a última operação (*p) += x (ou y += x) resultaria em y = 0 + 9 = 9. Armadilha: O distrator mais tentador é ignorar ou subestimar o efeito de operações que usam o ponteiro desreferenciado (*p) para modificar a variável original (y).
  • (B) Incorreta: Esta alternativa seria a resposta se y nunca fosse modificado após sua inicialização. No entanto, y é modificado por ++(*p) e (*p) += x.
  • (C) Correta: O programa executa as seguintes etapas:
    1. y = 0; // y é 0.
    2. p = &y; // p aponta para y.
    3. x = *p; // x recebe o valor de y, então x é 0.
    4. x += 10; // x se torna 10.
    5. ++(*p); // O valor apontado por p (que é y) é incrementado. y se torna 1.
    6. --x; // x é decrementado. x se torna 9.
    7. (*p) += x; // O valor apontado por p (que é y) recebe y + x. Então, y = 1 + 9 = 10.
      A saída final é y = 10.
  • (D) Incorreta: Esta alternativa seria a resposta se apenas a operação ++(*p) afetasse y e a última operação (*p) += x fosse ignorada ou mal interpretada.
  • (E) Incorreta: Não há um caminho lógico para y atingir o valor 11 com as operações dadas.

Fonte: FCC TRT23 2022 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informaçã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