Logo Passei Direto
Buscar
#include int calculo (int *a, int b) [ static int 1 = 0; (*a) = (*a) + 3; b = b * (*a); 1++; return (i) : } int main() { int X - 10, y - 5; int retorno - 0; retorno - calculo (EX, y); retorno - calculo (&X, y); printf ("\nvalor de X: 4d, valor de y: 4d e valor de retorno: 4d: \n", x, Y, retorno) ; return (0) ; ) Avalie 0 código C a apresentado, assinalando a alternativa que apresenta 0 resultado correto após a execução bem-sucedida do programa. A 4) 13,80,1 B 4) 16, 5, 0 C 4) 13, 5, 2 D 10.80.1
User badge image
Felipe Guido

há 3 semanas

Respostas

User badge image

Ed Verified user icon

há 3 semanas

Vamos analisar o código C apresentado e entender o que ele faz, passo a passo. 1. Função `calculo`: - Recebe um ponteiro para um inteiro `a` e um inteiro `b`. - Tem uma variável estática `i` (mas o código está com erro, deveria ser `static int i = 0;`). - A função incrementa o valor apontado por `a` em 3. - Multiplica `b` pelo novo valor de `*a`. - Incrementa `i` e retorna `i`. 2. Função `main`: - Declara `X` como 10 e `y` como 5. - Chama `calculo` duas vezes, passando `&X` e `y`. - O resultado da primeira chamada é armazenado em `retorno`. Agora, vamos ver o que acontece nas chamadas da função: - Primeira chamada: `retorno = calculo(&X, y);` - `X` é 10, então `*a` (que é `X`) se torna 10 + 3 = 13. - `b` (que é `y`, ou seja, 5) se torna 5 * 13 = 65. - `i` é incrementado para 1 e retornado. - Segunda chamada: `retorno = calculo(&X, y);` - Agora `X` é 13 (resultado da primeira chamada), então `*a` se torna 13 + 3 = 16. - `b` (que é 5) se torna 5 * 16 = 80. - `i` é incrementado para 2 e retornado. Portanto, após as duas chamadas, temos: - `X` = 16 - `y` = 5 - `retorno` = 2 Agora, vamos analisar as alternativas: A) 13, 80, 1 B) 16, 5, 0 C) 13, 5, 2 D) 10, 80, 1 A alternativa correta, considerando os valores finais de `X`, `y` e `retorno`, é: B) 16, 5, 0.

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