Ybadoo - Soluções em Software Livre
Turmas
1º Semestre de 2026

Considere o seguinte programa escrito na sintaxe da linguagem de programação C:

int a, b;

void xpto (int x, int y)
{
int z = x + a;
x = y + 2;
y = y + z;
}

void main()
{
int a = 3;
int b = 2;
xpto(a, b);
printf("%d %d", a, b);
}

Considerando o programa apresentado, avalie as assertivas a seguir:

  1. Caso os parâmetros sejam passados por valor, os valores impressos serão 3 e 2.
  2. Caso os parâmetros sejam passados por valor, os valores impressos serão 4 e 2.
  3. Caso os parâmetros sejam passados por referência, os valores impressos serão 4 e 8.
  4. Caso os parâmetros sejam passados por referência, os valores impressos serão 3 e 8.

Quais das assertivas apresentadas estão corretas?

A apenas as assertivas I e II.

B apenas as assertivas I e III.

C apenas as assertivas II e III.

D apenas as assertivas II e IV.

E apenas as assertivas III e IV.

I Caso os parâmetros sejam passados por valor, os valores impressos serão 3 e 2.

Na passagem de parâmetros por valor, os parâmetros x e y recebem cópias dos valores de a e b.

Parâmetros são passados por referência
Instruçãoabxyz
int a = 3;3    
int b = 2;32   
xpto(a, b);3232 
int z = x + a;32326
x = y + 2;32426
y = y + z;32486
printf("%d %d", a, b);32   

Ao retornar para main, as variáveis globais a e b não foram alteradas, com o comando printf imprimindo 3 e 2.

II Caso os parâmetros sejam passados por valor, os valores impressos serão 4 e 2.

Para que os valores impressos sejam 4 e 2, o parâmetro x precisa ser passado por referência e o parâmetro y precisa ser passado por valor.

III Caso os parâmetros sejam passados por referência, os valores impressos serão 4 e 8.

Na passagem de parâmetros por referência, os parâmetros x e y tornam-se aliases (referências diretas) para as variáveis a e b.

Parâmetros são passados por referência
Instruçãoabxyz
int a = 3;3    
int b = 2;32   
xpto(a, b);32ab 
int z = x + a;32ab6
x = y + 2;42ab6
y = y + z;48ab6
printf("%d %d", a, b);48   

Ao retornar para main, as variáveis globais a e b foram modificadas diretamente, com o comando printf imprimindo 4 e 8.

IV Caso os parâmetros sejam passados por referência, os valores impressos serão 3 e 8.

Para que os valores impressos sejam 3 e 8, o parâmetro x precisa ser passado por valor e o parâmetro y precisa ser passado por referência.

Conforme exposto, a resposta correta é:

B apenas as assertivas I e III.