Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS 8a aula Lupa Vídeo PPT MP3 Exercício: CCT0260_EX_A8_201701230852_V1 Matrícula: 201701230852 Aluno(a): JULIANO AZEVEDO DOS SANTOS Data: 31/10/2017 21:09:41 (Finalizada) 1a Questão (Ref.: 201701515060) Fórum de Dúvidas (0) Saiba (0) 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 11 1 6 15 12 0 6 16 14 0 6 15 10 0 8 16 10 2a Questão (Ref.: 201701858486) Fórum de Dúvidas (0) Saiba (0) Assinale a alternativa correta sobre alocação de memória. A declaração de um vetor é um exemplo clássico de alocação dinâmica de memória. É correto afirmar que a alocação dinâmica de memória sempre leva a programas mais rápidos. Alocação estática de memória refere-se ao processo de alocar memória com o uso de ponteiros. Uma das vantagens da alocação dinâmica sobre a alocação estática é que não é necessário fazer a liberação da memória utilizada. Na alocação dinâmica de memória, a memória é alocada sob demanda, apenas quando necessário. 3a Questão (Ref.: 201701851913) Fórum de Dúvidas (0) Saiba (0) A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes, estruturas ou structs, uniões e classes. As estruturas, que passaremos a chamar simplesmente de structs, são tipos de variáveis que agrupam dados geralmente desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido a esta característica as structs são utilizadas para modelar nodos (nós) de estruturas dinâmicas. Portanto podemos afirmar que: As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e entretanto seus tamanhos só são alterados na codificação de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tanto em tempo de execução quanto em tempo de compilação, mas não podem ter seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e terem seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois não podem fazer alocação de memória em tempo de execução, mas mesmo assim conseguem ter seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de execução e terem seus tamanhos alterados de acordo com a demanda. 4a Questão (Ref.: 201701873069) Fórum de Dúvidas (0) Saiba (0) Considere uma lista simplesmente encadeada com placas de carros. Assinale a opção que, corretamente, imprime todas as placas da lista. Considere : struct no { string placa; struct no *link; }; no *p; //p aponta para o início da lista void imprimir(no *p) { while (p != NULL) { cout << p.placa; p = p.link; } } void imprimir(no p) { while (p != NULL) { cout << pno; p = plink; } } void imprimir(no *p) { while (p != NULL) { cout << pplaca; p = plink; } } void imprimir(no *p) { while (p != NULL) { cout << pplaca; } } void imprimir(no *p) { if (p != NULL) { cout << pplaca; p = plink; } } Gabarito Comentado 5a Questão (Ref.: 201701904450) Fórum de Dúvidas (0) Saiba (0) Assumindo que um valor do tipo inteiro ocupa 4 bytes na memória, e se baseando nas linhas de código abaixo, marque a alternativa correta: int *p; p = (int *)malloc(20*sizeof(int)); Alocação dinâmica de 80 bytes na memória A operação é inválida Alocação dinâmica 20 bytes na memória Alocação dinâmica de espaço de memória suficiente para armazenar 20 x 4 valores inteiros Atribuição ao ponteiro ¿p¿ de um endereço estático de memória 6a Questão (Ref.: 201701515059) Fórum de Dúvidas (0) Saiba (0) 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 20 104 22 10 20 100 22 10 24 102 25 10 25 100 30 10 20 100 20 7a Questão (Ref.: 201701823448) Fórum de Dúvidas (0) Saiba (0) Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente: i) um ponteiro para o primeiro nó da lista; ii) encadeamento entre os nós, através de algum campo de ligação; iii) não deve haver uma indicação de final da lista; iv) um ponteiro para o final da lista. Levando em consideração as afirmações apresentadas, qual das alternativas é a correta? somente a afirmação i esta correta. as afirmações i, ii e iii estão corretas. as afirmações ii e iv estão corretas. somente a afirmação iv esta correta. as afirmações i e ii estão corretas. 8a Questão (Ref.: 201701820630) Fórum de Dúvidas (0) Saiba (0) Numa Lista Encadeada, podemos afirmar que: I) Todos os nós são alocados de uma única vez. II) Os nós não são alocados contiguamente na memória obrigatoriamente. III) Os elementos de uma lista encadeada são ligados por dois ponteiros. IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo elemento para possibilitar o encadeamento. I, III e IV estão corretas Só a II está correta I, II, III e IV estão corretas II e IV estão corretas I , II e III estão corretas Gabarito Comentado ESTRUTURA DE DADOS 8a aula Lupa Vídeo PPT MP3 Exercício: CCT0260_EX_A8_201701230852_V2 Matrícula: 201701230852 Aluno(a): JULIANO AZEVEDO DOS SANTOS Data: 20/11/2017 22:32:09 (Finalizada) 1a Questão (Ref.: 201701521064) Fórum de Dúvidas (0) Saiba (0) Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em que registra apenas o nome endereço e o telefone de cada paciente. Como não há limites para o crescimento de sua lista, como se pode implementar a inserção de um novo paciente na lista, sabendo que cada paciente é do tipo Paciente e a lista é do tipo List assim definidos : struct Paciente { long int matricula; string nome, endereco e tel; }; struct List { Paciente p; struct List *link; }; List * inserePac(List *i, Paciente pac) { List *novo = new List; novo.p = pac; novo.link = i; return novo; } List * inserePac(List *i, Paciente pt){ List *novo ; novo->p = pt; novo->link = i; return novo; } List insereCliente(List *i, Paciente pac) { List novo[]; novo[0].p = pac; novo[0].link = i; returnnovo; } List * inserePac(List *i, Paciente pt) { List *novo = new List; novo->p = pt; novo->link =i; return novo; } List * inserePac(List *i) { List *novo = new List; Paciente pat; novo->p = pat; novo->link = i; return novo; } Gabarito Comentado 2a Questão (Ref.: 201701854581) Fórum de Dúvidas (0) Saiba (0) 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. 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 se a estrutura for circular. Deve existir uma estrutura de repetição somente de a lista for duplamente encadeada. Gabarito Comentado 3a Questão (Ref.: 201701904454) Fórum de Dúvidas (0) Saiba (0) Em uma aplicação que usa processos de alocação estática e dinâmica de memória é correto afirmar que Toda a memória utilizada pela aplicação não muda durante toda a sua execução A memória utilizada pela aplicação é inicialmente estática, mas pode mudar A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução Todas as afirmações acima são incorretas Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução da aplicação Gabarito Comentado 4a Questão (Ref.: 201701820624) Fórum de Dúvidas (0) Saiba (0) 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 II e V estão corretas I e III estão corretas I e IV estão corretas I, II, III e V estão corretas III e V estão corretas 5a Questão (Ref.: 201701823448) Fórum de Dúvidas (0) Saiba (0) Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente: i) um ponteiro para o primeiro nó da lista; ii) encadeamento entre os nós, através de algum campo de ligação; iii) não deve haver uma indicação de final da lista; iv) um ponteiro para o final da lista. Levando em consideração as afirmações apresentadas, qual das alternativas é a correta? somente a afirmação i esta correta. as afirmações i, ii e iii estão corretas. as afirmações i e ii estão corretas. somente a afirmação iv esta correta. as afirmações ii e iv estão corretas. 6a Questão (Ref.: 201701820612) Fórum de Dúvidas (0) Saiba (0) O conceito de ponteiros foi estudado em uma de nossas aulas. Sendo assim, leia atentamente as afirmativas abaixo e assinale a opção correta. I A variável ponteiro não precisa ser declarada. II A variável ponteiro armazena endereço. III Quanto se usa &nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável apontada pela variável ponteiro. IV Quando se usa nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável ponteiro. V Quando se usa *nomeDaVariávelPonteiro com o comando cout, é exibido o conteúdo da variável apontada pela variável ponteiro. I, II e IV estão corretas II e V estão corretas IV e V estão corretas Somente a II está correta I IV e V estão corretas Gabarito Comentado 7a Questão (Ref.: 201701945044) Fórum de Dúvidas (0) Saiba (0) As funções abaixo tem objetivos de: A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a segunda insere um novo nó no final da LSE; A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já a segunda insere um novo nó no final da LSE; A primeira faz uma busca retornando a posição do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE; A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE; A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a segunda insere um novo nó no inicio da LSE; 8a Questão (Ref.: 201702021535) Fórum de Dúvidas (0) Saiba (0) Considere int *ptr, *qtr, *r; int a = 10, b = 20; Após executar cada instrução conforme a ordem dada a seguir : ptr = &a; qtr = &b; *ptr = *ptr + *qtr; ++(*qtr); r = qtr; qtr = ptr; assinale a opção que mostra, correta e respectivamente, os valores de *ptr, *qtr , *r , a e b . 30 20 20 10 20 30 30 21 30 21 30 21 21 10 20 30 30 21 10 20 30 20 0 30 21 ESTRUTURA DE DADOS 8a aula Lupa Vídeo PPT MP3 Exercício: CCT0260_EX_A8_201701230852_V3 Matrícula: 201701230852 Aluno(a): JULIANO AZEVEDO DOS SANTOS Data: 20/11/2017 23:00:26 (Finalizada) 1a Questão (Ref.: 201701858480) Fórum de Dúvidas (0) Saiba (0) Qual das inicializações de ponteiros apresentadas abaixo está correta? int *p = create int; int *p = new int*; int *p = new int; int *p = new *int; int *p = new int[]; 2a Questão (Ref.: 201701519928) Fórum de Dúvidas (0) Saiba (0) Sou uma empresária que quer crescer e por isso, tenho que aumentar progressivamente a minha lista de clientes, sem limitar este crescimento. Assim, à medida que novos clientes são cadastrados, posso, se necessário, contratar mais e mais empregados. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema. lista encadeada e alocação dinâmica de memória fila encadeada e alocação dinâmica de memória lista sequencial e alocação dinâmica de memória fila dinâmica e alocação dinâmica de memória pilha dinâmica e alocação dinâmica de memória Gabarito Comentado 3a Questão (Ref.: 201701519929) Fórum de Dúvidas (0) Saiba (0) Montei uma biblioteca popular que aceita doações sem limites. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema. fila dinâmica e alocação dinâmica de memória fila encadeada e alocação dinâmica de memória lista encadeada e alocação dinâmica de memória pilha dinâmica e alocação dinâmica de memória lista sequencial e alocação dinâmica de memória Gabarito Comentado 4a Questão (Ref.: 201701820630) Fórum de Dúvidas (0) Saiba (0) Numa Lista Encadeada, podemos afirmar que: I) Todos os nós são alocados de uma única vez. II) Os nós não são alocados contiguamente na memória obrigatoriamente. III) Os elementos de uma lista encadeada são ligados por dois ponteiros. IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo elemento para possibilitaro encadeamento. I, II, III e IV estão corretas I, III e IV estão corretas I , II e III estão corretas II e IV estão corretas Só a II está correta Gabarito Comentado 5a Questão (Ref.: 201701823489) Fórum de Dúvidas (0) Saiba (0) Podemos dizer que uma lista encadeada tem as seguintes características: i) conhecida como lista ligada. ii) seus nós são responsáveis para manter a sequência da lista. iii) o último nó deve apontar para NULL. Assinale a alternativa que informa as afirmativas corretas. Todas as afirmativas estão corretas. Todas as afirmativas estão incorretas. Somente as afirmativas i e ii estão corretas. Somente a afirmativa i esta correta. Somente a afirmativa iii esta correta. Gabarito Comentado 6a Questão (Ref.: 201701515059) Fórum de Dúvidas (0) Saiba (0) 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 20 100 20 10 24 102 25 10 20 100 22 10 20 104 22 10 25 100 30 7a Questão (Ref.: 201701281556) Fórum de Dúvidas (0) Saiba (0) Em relação as estruturas de dados, aquela que corresponde ao armazenamento em uma lista linear com a posição relativa (não contígua) na memória de dois nós consecutivos da lista é conhecida por alocação: Encadeada. Combinada. Seqüencial. Estática. Binária. Gabarito Comentado 8a Questão (Ref.: 201701851913) Fórum de Dúvidas (0) Saiba (0) A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes, estruturas ou structs, uniões e classes. As estruturas, que passaremos a chamar simplesmente de structs, são tipos de variáveis que agrupam dados geralmente desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido a esta característica as structs são utilizadas para modelar nodos (nós) de estruturas dinâmicas. Portanto podemos afirmar que: As estruturas dinâmicas são assim chamadas, pois não podem fazer alocação de memória em tempo de execução, mas mesmo assim conseguem ter seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e entretanto seus tamanhos só são alterados na codificação de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de execução e terem seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e terem seus tamanhos alterados de acordo com a demanda. As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tanto em tempo de execução quanto em tempo de compilação, mas não podem ter seus tamanhos alterados de acordo com a demanda.
Compartilhar