Você está na página 1de 4

25/05/2020 EPS

ESTRUTURA DE DADOS
Lupa
8a aula
PPT MP3

Exercício: CCT0826_EX_A8_201901306054_V1 24/05/2020

Aluno(a): JONATAS RICIANO SILVEIRA 2020.1 EAD

Disciplina: CCT0826 - ESTRUTURA DE DADOS 201901306054

1a Questão

Considerando a afirmação: "Ponteiro é uma variável que armazena o endereço de outra variável", a forma correta de se atribuir ao
ponteiro p o endereço de uma variável é

p = &matricula;
p.matricula = 20170562;
char *p;
*p = matricula;
p->matricula = 20170562;
Respondido em 24/05/2020 01:31:33

Explicação:

Analisando na sequência :

Falsa. Declara um ponteiro para char.

Falsa. Acessa o campo de uma struct apontada por um ponteiro p.

Falsa. Acessa o campo de uma struct, sem usar ponteiro.

Verdadeira. Faz um ponteiro p receber o endereço de uma variável matricula.

Falsa. ACessa a área apontada por um ponteiro e atribui o valor de matricula.

2a Questão

QUAL A SAÍDA DESTE PROGRAMA?

#include
main()
{
int i=10,*p;
p=&i;

cout << *p << " " << i + *p<< " " << *p**p << " " << i+**&p;
system("pause");
}

10 25 100 30
10 24 102 25
10 20 104 22
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 1/4
25/05/2020 EPS
10 20 100 22
10 20 100 20
Respondido em 24/05/2020 01:33:36

3a Questão

Qual o valor de x no final do programa? int main() { int x, *p, y; x = 2; p = &x; y = *p; y = 5; (*p)++; (*p) = (*p) - y;
return(0); }

-2
5
2
8
Nenhuma das anteriores. O programa possui um erro de sintaxe.
Respondido em 24/05/2020 01:37:15

Explicação:

Analisando passo a passo :

int main() {

int x, *p, y;

x = 2;

p = &x; // p aponta para x, sendo que x recebeu 2

y = *p; //y recebeu o conteúdo da área apontada por p, ou seja, y recebeu *p que é 2

y = 5; //y recebeu 5

(*p)++; //A área apontada por p recebeu 3 Ou seja, x recebeu 3

(*p) = (*p) - y; //*p, que é x recebeu 3 - 5. Ou seja, *p recebeu -2

return(0);

Como p aponta para x e *p recebeu -2, então x recebeu -2

4a Questão

E C++, quando um ponteiro é declarado para uma struct, o acesso aos campos deste registro (struct) se dá pelo operador :

∙ (ponto).
& (e comercial ou eitza).
-> (seta).
, (vírgula).
* (asterisco).
Respondido em 24/05/2020 01:38:42

Explicação:

Por definição, o operador é o seta, pois se tem, no caso, ponteiro para struct.

5a Questão

Seja uma lista encadeada cujo nodo é representado por:

struct nodo{
int valor;
nodo prox;
};

simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 2/4
25/05/2020 EPS
Esta estrutura possui um ponteiro de referência que aponta sempre para o primeiro nodo da lista, sendo este declarado como:
nodo *lista;
Numa lista encadeada seu último nodo possui o campo prox sempre igual a NULL. Marque a opção que representa o trecho de
código onde um ponteiro auxiliar é capaz de percorre a lista até seu último nodo:

nodo *aux=lista;
while(aux->prox)aux=aux->prox;
nodo *lista=aux;
while(aux->prox)aux=aux->prox;
nodo *aux=lista;
while(aux)aux->prox=aux;
nodo *aux=lista;
while(lista->prox)aux=aux->prox;
nodo *aux=lista;
while(aux->prox)aux->prox=aux->prox;
Respondido em 24/05/2020 01:39:26

Explicação:

nodo *aux=lista;
while(aux->prox)aux=aux->prox;

6a Questão

Em uma rotina em que se pretenda inserir o primeiro dado em uma estrutura dinâmica, é correto afirmar que:

Deve existir uma estrutura de repetição somente de a lista for duplamente encadeada.
Existe uma instrução de repetição para percorrer a lista.
Só deve existir estrutura de repetição se ocorrer a inclusão de mais de um dado simultaneamente
Não deve existir uma estrutura de repetição.
Deve existir uma estrutura de repetição somente se a estrutura for circular.
Respondido em 24/05/2020 01:40:06

Gabarito
Coment.

7a Questão

Seja a seguinte seqüência de instruções em um programa C++: int *pti; int i = 10; pti = &i; Qual afirmativa é falsa?

*pti é igual a 10
ao se alterar o valor de i, *pti será modificado
pti é igual a 10
ao se executar *pti = 20; i passará a ter o valor 20
pti armazena o endereço de i
Respondido em 24/05/2020 01:41:22

Explicação:

Analisando cada opção :

pti é igual a 10
Explicação : A afirmativa está incorreta porque *pti é igual 10 e não pti é igual
a 10. Note que pti é o endereço de i. Logo, a afirmativa deve ser marcada.

pti armazena o endereço de i


Explicação : pti é um ponteiro que recebeu o endereço (&) de i. Logo, a
afirmativa está correta e não deve ser marcada.
*pti é igual a 10

Explicação : Afirmativa correta e não deve ser marcada, visto que * é o


simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 3/4
25/05/2020 EPS

operador de indireção. Como pti aponta para i, logo *pti é i, que vale 10.
ao se executar *pti = 20; i passará a ter o valor 20

Explicação : Afirmativa correta e não deve ser marcada, visto que *pti acessa a
área apontada por i. Se *pti recebeu 20 significa que i recebeu 20.

ao se alterar o valor de i, *pti será modificado

Explicação : Afirmativa correta e não deve ser marcada, visto que pti
aponta para i e dessa forma, *pti é i.

8a Questão

QUAL A SAÍDA DO PROGRAMA ABAIXO?

#include

main()
{
int x=5,*p;
p=&x;

cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " " << x+**&p;
system("pause");
}

0 6 15 10
0 6 15 11
0 6 16 14
1 6 15 12
0 8 16 10
Respondido em 24/05/2020 01:42:19

simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 4/4

Você também pode gostar