Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS 8a aula Lupa PPT MP3 Exercício: CCT0826_EX_A8_201903069998_V1 05/05/2020 Aluno(a): DIOGENES DOS SANTOS BANDEIRA 2020.1 EAD Disciplina: CCT0826 - ESTRUTURA DE DADOS 201903069998 1a Questão Seja a seguinte seqüência de instruções em um programa C++: int *pti; int i = 10; pti = &i; Qual afirmativa é falsa? ao se executar *pti = 20; i passará a ter o valor 20 *pti é igual a 10 pti é igual a 10 ao se alterar o valor de i, *pti será modificado pti armazena o endereço de i Respondido em 05/05/2020 08:57:25 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 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. http://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); javascript:diminui(); javascript:aumenta(); javascript:abre_frame('2','8','','',''); javascript:abre_frame('3','8','','',''); 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. 2a Questão O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens. Proteção de memória, transferência de dados, estruturas simples. Acesso, representação, compartilhamento de memória. Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos. Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes. Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. Respondido em 05/05/2020 08:57:32 Explicação: FALSO . Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. FALSO Acesso, representação,compartilhamento de memória. FALSO Proteção de memória, transferência dedados, estruturas simples. FALSO Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos. VERDADEIRO Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes. Gabarito Coment. 3a Questão Na Alocação dinâmica, temos alguma regras a considerar. Leia atentamente as afirmativas abaixo e assinale a correta. I Alocou com new, desaloca com free II Alocou com new[], desaloca com delete III Alocou com new[], desaloca com delete[] IV Alocou com new[], desaloca com free[] V Alocou com new, desaloca com delete I e IV estão corretas III e V estão corretas I, II, III e V estão corretas I e III estão corretas II e V estão corretas Respondido em 05/05/2020 08:57:52 4a Questão Admita a seguinte estrutura de nó de uma lista simplesmente encadeada: struct tno { int chave; tno *proximo; }; Admita, agora, a seguinte declaração de uma variável do tipo nó: tno *no; Qual das alternativas a seguir traz uma operação válida sobre essa variável? no->proximo = -10; no.proximo = no; no.chave = 5; no->proximo = new tno; no->chave = new int; Respondido em 05/05/2020 08:57:43 Explicação: Analisando cada item : no.chave = 5; >> Como no é ponteiro então temos que usar a seta para acessar os campos da área apontada por no. no->proximo = -10; >> O campo proximo é de ponteiro então não pode receber inteiro. no->chave = new int; >> O campo chave é de inteiro então não deve receber endereço de inteiro. O operador new aloca memória e retorna o endereço da área alocada. no->proximo = new tno; >> É correto porque o campo proximo é campo de ponteiro e pode receber outro ponteiro, pode receber NULL ou pode receber endereço da área alocada com new, como foi o caso. no.proximo = no; >> Incorreto porque não pode se pode usar o ponto para acessar campo de struct apontada pelo ponteiro no. 5a Questão Em uma rotina em que se pretenda inserir o primeiro dado em uma estrutura dinâmica, é correto afirmar que: Não deve existir uma estrutura de repetição. Existe uma instrução de repetição para percorrer a lista. Deve existir uma estrutura de repetição somente se a estrutura for circular. Só deve existir estrutura de repetição se ocorrer a inclusão de mais de um dado simultaneamente Deve existir uma estrutura de repetição somente de a lista for duplamente encadeada. Respondido em 05/05/2020 08:58:02 Gabarito Coment. 6a Questão Qual das inicializações de ponteiros apresentadas abaixo está correta? int *p = new int*; int *p = new int[]; int *p = new *int; int *p = create int; int *p = new int; Respondido em 05/05/2020 08:58:07 7a Questão Sobre listas simplesmente encadeadas, é INCORRETO afirmar que : possuem tamanho fixo podem implementar pilha e fila dinâmicas são acessadas através de um ponteiro para o primeiro nó da lista o ponteiro do último nó é NULL os nós da lista são alocados dinamicamente. Respondido em 05/05/2020 08:58:14 Explicação: Por definição, uma lista encadeada não tem tamanho pré-definido, pois os nós da lista são alocados em tempo de execução, de acordo com a demanda. 8a Questão As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação: pt->próximo->valor=5.60; pt->valor=5.60; pt.valor->5.60; pt->próximo.valor=5.60; pt->5.60; Respondido em 05/05/2020 08:58:05 Gabarito Coment. javascript:abre_colabore('38403','190682299','3803880148');
Compartilhar