Informática, perguntado por emerson71a, 4 meses atrás

QUESTÃO 10
Observe o código-fonte abaixo:

01 - int main(){
02 -
03 - int *ptr;
04 - int x = 12345678;
05 - int y = x
06 -
07 - ptr = &y;
08 -
09 - printf("%d", *ptr);
10 -
11 - }

Com base no programa acima, avalie as afirmações:

I - Analisando a linha de código 7, dizemos que nesta linha ptr recebe o endereço de y.
II - Ao final do programa, o endereço de y é 12345678.
III - Quando o programa executar a linha de código 9, o programa irá imprimir "12345678" na tela.

Assim sendo, pode se dizer que é correto o que se afirma em:

Alternativa 1: I, apenas.
Alternativa 2: I e II, apenas.
Alternativa 3: I e III, apenas.
Alternativa 4: II e III, apenas.
Alternativa 5: I, II e III.


emerson71a: ... creio que seja a Alternativa 5
leoneribsilva: Alternativa 3: I e III, apenas.

Soluções para a tarefa

Respondido por leoneribsilva
11

Resposta:

Alternativa 3: I e III, apenas.

Explicação:

I - CORRETA: na linha de código 7 temos ptr = &y;

A notação &y retorna o endereço na memória da variável y, logo, ptr recebe o endereço de y.

II - INCORRETA: o valor 12345678 é recebido pela variável x (linha 4) e y recebe o valor de x (linha 5), logo, 12345678 é o valor da variável y e não o endereço de y.

III - CORRETA: A linha 9 printf("%d", *ptr); temos a notação *ptr que representa o valor da variável para a qual o ponteiro ptr aponta. Logo, ptr aponta para o valor da variável y (linha 7), que é 12345678.


btotta: Cara, na linha 05 "05 - int y = x" falta um ";" no final, ou seja, o programa em si não executa .. Isso faria com que somente a 1 estivesse correta, agora se é uma pagadinha ou se foi erro de digitação deles ..
leoneribsilva: Foi erro de digitação informado pela professora mediadora.
leoneribsilva: Temos que considerar que existe o fechamento da linha
btotta: Ah show, então I e III. Obrigado.
Perguntas interessantes