Informática, perguntado por celsooliveirajr, 5 meses atrás

Questão 4

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:
Alternativas

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.


Coring4BR: Se você incluir as seguintes bibliotecas conseguirá executar no Dev C++

#include
#include

O retorno da execução será: 12345678

II - Correta
III - Correta

Resposta:

Alternativa 4:
II e III, apenas.
Coring4BR: Corrigindo..

Alternativa 5.

I, II, III = Estão corretas.

Desculpe o erro anterior.
celsooliveirajr: Obrigado Coring4BR!
celsooliveirajr: O thayrone9502375 está aqui para bagunçar e tentar atrapalhar as nossas vidas.

Soluções para a tarefa

Respondido por aluno2099
1

Resposta:

Acredito que a resposta seja apenas a alternativa 01.

Explicação:

Quando executamos o programa, falta um ';' na linha 06. logo ele dá erro.

O problema é: o seu professor considera ou não a ausência desse sinal? se ele não considerar será a alternativa 5.


celsooliveirajr: Obrigado
regianekapp: resposta: I e III, apenas.

#include
#include
#include
#include

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(){

int *ptr;

int x = 12345678;
int y = x; // y recebe x, (x esta contido em y mas NÃO é o mesmo endereço

ptr = &y; // ptr recebe y que neste momento vale 12345678

printf("%d", *ptr); // a impressão será 12345678

}
YamiMU: A resposta é que todas estão corretas!!!
jonascastrophb: Concordo I e III, o endereço do Y é 6487564 na minha makina
marleirds: é verdade, acho que apenas 1 e 3 estão corretas, pois o numero 1,2,3,4... não representa o endereço de Y, esse é apenas o dado armazenado na variável. O endereço da variável é outra coisa.
vanessauab: Essa linha 09 está imprimindo o conteúdo e não o endereço do ponteiro, portando voce estao certos, 1 e 3 estão corretas
vanessauab: O endereço no meu computador deu algo como 0x7ffc828148b8. Não faz sentido algum o endereço ser o mesmo que o conteúdo da variável. Se x é 12345678 e y recebe o conteúdo de x, que é 12345678, é lógico que o endereço não vai ser 12345678. Acho que o pessoal que começou responder aqui no começo deveria ler mais sobre endereços de ponteiros. E outra coisa, a cada rodada do programa o endereço vai mudar, porque o programa nao vai ficar reservando o mesmo endereço a cada rodada do programa.
Respondido por DaiaraDyba
0

No código é impresso na tela o número 12345678. As afirmações I e III estão corretas e a afirmação II é falsa.

Portanto, a resposta é a alternativa 3.

Como analisar o código?

  • Linha 3: iniciamos a variável ptr indicando que ela será do tipo ponteiro e irá apontar para uma variável do tipo inteiro (int).
  • Linha 4: iniciamos a variável x e atribuímos a ela o valor 12345678.
  • Linha 5: iniciamos a variável y e atribuímos a ela o valor de x. Portanto y recebe o valor 12345678.
  • Linha 7: fazemos com que o ponteiro ptr aponte para o endereço da memória que contém y. Em outras palavras, ptr aponta para a variável y.
  • Linha 9: imprimimos o valor contido no endereço apontado por ptr. Em outras palavras, imprimimos o valor de y (12345678).

Analisando as afirmações:

Se considerarmos que o código do enunciado foi escrito em python, podemos afirmar que:

  • Afirmação I é verdadeira: na linha 7 fazemos com que ptr aponte para a variável y.
  • Afirmação II é falsa: o valor de y é 12345678 e não o seu endereço.
  • Afirmação III é verdadeira: na linha 9 imprimimos o valor de y, que é 12345678.

Portanto, a alternativa 3 (afirmação I e III corretas) é a resposta.

Aprenda mais sobre Python em:

https://brainly.com.br/tarefa/30070431

#SPJ2

Anexos:
Perguntas interessantes