Seja o seguinte programa:
int main ( )
{
int i = 2, i = 4;
int *p, *q;
p = &i;
q = &j;
printf ( " %d %d %d %d \n" , p == &i, *p -*q, 3* - *p, *q/(*p)+2 )
}
Qual será a saída deste programa na tela?
A - 0, -2, -6, -4
B - 0, 8, 6, 2
C - 1, 2, 6, 4
D - 1, -2, -6, 4
E - nenhuma das alternativas anteriores
Respostas
Resposta:
Olá, tem alguns erros no código:
Primeiro ==> uso de identificador não declarado 'j' q = & j;
Segundo ==> é preciso colocar ponto e virgula no final da função printf
Terceiro ==> redefinição de 'i'
Por esse motivo acredito que a resposta correta seja a alternativa, (E) nenhuma das anteriores, porque o código irá retornar um erro.
Para que o programa funcione podemos fazer o seguinte:
int main ( )
{
int i = 2;/*==> comentar a variável porque já foi atribuido um valor a ela , i = 4;*/
int *p, *q;
p = &i;
/*==> colocar em comentário //q = &j;
==> adicionar o ponto e vírgula no final do printf: */
printf ( " %d %d %d %d \n" , p == &i, *p -*q, 3* - *p, *q/(*p)+2 );
}
Agora que o programa funciona pois fizemos algumas alterações, temos o seguinte output: 1 1991643857 -6 -995821925