Logo Passei Direto
Buscar

Programação

Colégio Objetivo
Na linguagem de programação C, existem dois métodos principais para passar parâmetros para uma função: por valor e por referência (indireto). A escolha de qual tipo é mais adequado depende do comportamento esperado da função.

```
#include
int calculo(int *a, int b){
static int i = 0;
(*a) = (*a) + 3;
b = b * (*a);
i++;
return(i);
}
int main() {
int x = 10, y = 5;
int retorno = 0;
retorno = calculo(&x, y);
retorno = calculo(&x, y);
printf("\nvalor de x: %d, valor de y: %d e valor de retorno: %d: \n", x, y, retorno);
return(0);
}
```

Avalie o código C a apresentado, assinalando a alternativa que apresenta o resultado correto após a execução bem-sucedida do programa.
A 13, 80, 1
B 16, 5, 0
C 13, 5, 2
D 10, 80, 1
E 16, 5, 2
User badge image
Estudando com Questões

ano passado

Respostas

User badge image

Ed Verified user icon

ano passado

Vamos analisar o código passo a passo para entender o que acontece durante a execução. 1. Declaração das variáveis: - `int x = 10;` - `int y = 5;` - `int retorno = 0;` 2. Primeira chamada da função `calculo(&x, y)`: - `*a` (que é `x`) recebe `(*a) + 3`, ou seja, `10 + 3 = 13`. Portanto, `x` agora é `13`. - `b` (que é `y`) é passado por valor, então `b = b * (*a)` se torna `5 * 13 = 65`, mas isso não altera `y` no `main`. - `i` é incrementado para `1`. - A função retorna `1`. 3. Segunda chamada da função `calculo(&x, y)`: - `*a` (que é `x`) recebe `(*a) + 3`, ou seja, `13 + 3 = 16`. Portanto, `x` agora é `16`. - `b` (que é `y`) é novamente passado por valor, então `b = b * (*a)` se torna `5 * 16 = 80`, mas isso não altera `y` no `main`. - `i` é incrementado para `2`. - A função retorna `2`. 4. Resultado final: - Após as duas chamadas, temos: - `x = 16` - `y = 5` (não foi alterado) - `retorno = 2` Portanto, o resultado final impresso será: `valor de x: 16, valor de y: 5 e valor de retorno: 2`. A alternativa correta é: E 16, 5, 2.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

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

Essa pergunta também está no material:

Mais perguntas desse material

Mais conteúdos dessa disciplina