Ed
ano passado
Vamos analisar o código fornecido: ```c #include void x(int *a, int b) { *a = *a + b; b = *a + b; } int main() { int i, j; i = 1000; j = 1; x(&i, j); printf("%d", i + j); return 0; } ``` Neste código, a função `x` recebe um ponteiro para `a` e um inteiro `b`. Ela atualiza o valor apontado por `a` somando `b` a ele e atualiza o valor de `b` somando o novo valor de `a` com `b`. No `main`, são declaradas as variáveis `i` e `j`, com valores iniciais de 1000 e 1, respectivamente. Em seguida, a função `x` é chamada passando o endereço de `i` e o valor de `j`. Por fim, é impressa a soma de `i` e `j`. Vamos analisar as alternativas: A) 2002 - Após a execução da função `x`, o valor de `i` será 1001 e o valor de `j` será 2002. Portanto, a soma de `i` e `j` será 1001 + 2002 = 3003. B) 1002 - Após a execução da função `x`, o valor de `i` será 1001 e o valor de `j` será 2002. Portanto, a soma de `i` e `j` será 1001 + 2002 = 3003. C) Impossível determinar, pois o endereço da variável `i` é desconhecido - O endereço de `i` é passado como argumento para a função `x`, então é possível determinar o valor final de `i`. D) 2003 - Após a execução da função `x`, o valor de `i` será 1001 e o valor de `j` será 2002. Portanto, a soma de `i` e `j` será 1001 + 2002 = 3003. E) 1001 - Após a execução da função `x`, o valor de `i` será 1001 e o valor de `j` será 2002. Portanto, a soma de `i` e `j` será 1001 + 2002 = 3003. Portanto, a alternativa correta é: A) 2002.
Já tem uma conta?
Ao continuar, você aceita os Termos de Uso e Política de Privacidade
Mais perguntas desse material