Buscar

Estrutura de Dados: Ponteiros e Listas Encadeadas

Prévia do material em texto

25/05/2020 EPS
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 1/4
 
 
 
 ESTRUTURA DE DADOS 8a aula
 Lupa 
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
http://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
javascript:diminui();
javascript:aumenta();
javascript:abre_frame('2','8','','','');
javascript:abre_frame('3','8','','','');
25/05/2020 EPS
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 2/4
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;
};
 
25/05/2020 EPS
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 3/4
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
25/05/2020 EPS
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 4/4
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
 
 
 
javascript:abre_colabore('38403','195398796','3906569072');

Continue navegando

Outros materiais