Escolar Documentos
Profissional Documentos
Cultura Documentos
ESTRUTURA DE DADOS
Lupa
8a aula
PPT MP3
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 :
2a Questão
#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:
int main() {
int x, *p, y;
x = 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
return(0);
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
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:
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.
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.
Explicação : Afirmativa correta e não deve ser marcada, visto que pti
aponta para i e dessa forma, *pti é i.
8a Questão
#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