Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2025

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

int xpto (int a, int b)
{
b = b + a;
a = b - a;
return b;
}

void main()
int v [ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 2;
int x = xpto(v[i], i);
printf("%d", x + i);
}

Com base no programa apresentado, avalie as assertivas a seguir:

  1. Caso os parâmetros sejam passados por valor, o valor impresso será 4.
  2. Caso os parâmetros sejam passados por referência, o valor impresso será 10.
  3. Caso os parâmetros sejam passados por nome, o valor impresso será 10.
  4. Caso os parâmetros sejam passados por valor-resultado, o valor impresso será 7.

A análise permite concluir que:

a. apenas as assertivas I e II estão corretas.

b. apenas as assertivas I e III estão corretas.

c. apenas as assertivas II e III estão corretas.

d. apenas as assertivas II e IV estão corretas.

e. apenas as assertivas III e IV estão corretas.

I. Caso os parâmetros sejam passados por valor, o valor impresso será 4.

Parâmetros são passados por valor
VariávelValor
v[0]1
v[1]2
v[2]3
v[3]4
v[4]5
v[5]6
v[6]7
v[7]8
v[8]9
i2
x5
a3 2
b2 5
  printf("%d", x + i); // 5 + 2 = 7

II. Caso os parâmetros sejam passados por referência, o valor impresso será 10.

Parâmetros são passados por referência
VariávelValor
v[0]1
v[1]2
v[2]3 2
v[3]4
v[4]5
v[5]6
v[6]7
v[7]8
v[8]9
i2 5
x5
av[2]
bi
  printf("%d", x + i); // 5 + 5 = 10

III. Caso os parâmetros sejam passados por nome, o valor impresso será 10.

Parâmetros são passados por nome
VariávelValor
v[0]1
v[1]2
v[2]2
v[3]4
v[4]5
v[5]6 -1
v[6]7
v[7]8
v[8]9
i2 5
x5
av[i]
bi
  printf("%d", x + i); // 5 + 5 = 10

IV. Caso os parâmetros sejam passados por valor-resultado, o valor impresso será 7.

Parâmetros são passados por valor-resultado
VariávelValor
v[0]1
v[1]2
v[2]3 2
v[3]4
v[4]5
v[5]6
v[6]7
v[7]8
v[8]9
i2 5
x5
a3 2 (v[2])
b2 5 (i)
  printf("%d", x + i); // 5 + 5 = 10

a. apenas as assertivas I e II estão corretas.

b. apenas as assertivas I e III estão corretas.

c. apenas as assertivas II e III estão corretas.

d. apenas as assertivas II e IV estão corretas.

e. apenas as assertivas III e IV estão corretas.