Logo Passei Direto
Buscar
Questão 1: Desenvolva o teste de mesa para o programa a seguir e assinale a alternativa que apresenta a saída correta. 1 #include 2 void func(int *x, int y) 3 { 4 *x+=y; 5 x=x+3; 6 7 main () 8 { 9 int num; 10 num=100; 11 func(&num, 50); 12 printf("%d", num); 13 A) 150 B) 53 C) 153 D) 3 E) 50
User badge image
flavia amorim da silva

há 2 anos

Respostas

User badge image

Ed Verified user icon

há 2 anos

Para resolver essa questão, vamos fazer um teste de mesa do código apresentado. 1. O programa começa com a variável `num` inicializada com o valor 100. 2. A função `func` é chamada com `&num` (endereço de `num`) e 50 como argumentos. Dentro da função `func`: - A linha 4 (`*x += y;`) incrementa o valor apontado por `x` (que é `num`) em `y` (50). Portanto, `num` passa a ser 100 + 50 = 150. - A linha 5 (`x = x + 3;`) apenas altera o ponteiro `x` localmente, não afetando o valor de `num` fora da função, pois `x` é uma cópia do ponteiro passado. Após a execução da função, o valor de `num` continua sendo 150. Por fim, a linha 12 imprime o valor de `num`, que é 150. Portanto, a alternativa correta é: A) 150.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina