Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Marque a afirmativa que represente uma separação. Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante. Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá, depende da necessidade. Intercalar a ordem dos dados da lista do final para o início, atualizando a lista. Alterar a ordem dos dados da lista do final para o início, atualizando a lista. Organizar os dados da lista em ordem crescente ou decrescente. Gabarito Comentado 2. 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: Estática. Encadeada. Binária. Combinada. Seqüencial. Gabarito Comentado 3. 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. fila encadeada e alocação dinâmica de memória fila dinâmica 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 4. 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 pt){ List *novo ; novo->p = pt; novo->link = i; return novo; } 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; } List insereCliente(List *i, Paciente pac) { List novo[]; novo[0].p = pac; novo[0].link = i; return novo; } List * inserePac(List *i, Paciente pac) { List *novo = new List; novo.p = pac; novo.link = i; return novo; } Gabarito Comentado 5. 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 8 16 10 0 6 16 14 0 6 15 10 6. 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 20 bytes na memória A operação é inválida Atribuição ao ponteiro ¿p¿ de um endereço estático de memória Alocação dinâmica de espaço de memória suficiente para armazenar 20 x 4 valores inteiros Alocação dinâmica de 80 bytes na memória 7. Em uma lista linear simplesmente encadeada. Cada ponteiro possui um só endereço que referencia o primeiro nó da lista. Além do campo relativo ao dado, cada nó possui dois ponteiros, O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista. O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista, formando um ciclo. Cada nó possui um só ponteiro que referencia o próximo nó da lista. Gabarito Comentado 8. 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. pilha dinâmica e alocação dinâmica de memória 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
Compartilhar