Baixe o app para aproveitar ainda mais
Prévia do material em texto
18/06/2015 BDQ Prova data:text/html;charset=utf8,%3Cform%20name%3D%22form%22%20method%3D%22post%22%20action%3D%22http%3A%2F%2Fsimulado.estacio.br… 1/5 ESTRUTURA DE DADOS Lupa Fechar Exercício: CCT0260_EX_A8_ Matrícula: Aluno(a): Data: 18/06/2015 20:23:57 (Finalizada) 1a Questão (Ref.: 201407627543) Fórum de Dúvidas (0) Saiba (0) Vetores são elementos considerados longos quando usados como parâmetros de funções, mesmo assim podese passar um vetor como um argumento de uma função. Seja o exemplo a seguir codificado em C++: int main() { int vetor[]={1,2,3,4,5}; saída(vetor,5); return 0; } Neste exemplo a função saída( ) está sendo chamada e recebe como parâmetros o vetor e o inteiro 5. Marque a alternativa que ilustra uma possibilidade correta de protótipo para esta função. void saída(int *vetor, int dim); void saída(vetor [ ], int dim); void saída(int vetor, int dim); void saída(int [ ] vetor, int dim); void saída(int **vetor, int dim); Gabarito Comentado 2a Questão (Ref.: 201407627546) Fórum de Dúvidas (0) Saiba (0) 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; 18/06/2015 BDQ Prova data:text/html;charset=utf8,%3Cform%20name%3D%22form%22%20method%3D%22post%22%20action%3D%22http%3A%2F%2Fsimulado.estacio.br… 2/5 }; 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>próximo>valor=5.60; pt.valor>5.60; pt>5.60; pt>valor=5.60; 3a Questão (Ref.: 201407926244) Fórum de Dúvidas (0) Saiba (0) Vários conceitos foram estudados quando se falou sobre ponteiros e alocação dinâmica. Entre eles, o de Fragmentação Externa. Assinale a opção que explica o que significa. Espaço livre no HD. Espaço de Memória perdido entre os segmentos. Código do programa gravado em partes separadas na memória. Significa alocação não contígua. Espaço de Memória não utilizado dentro do segmento. Gabarito Comentado 4a Questão (Ref.: 201407964108) Fórum de Dúvidas (0) Saiba (0) Assinale a alternativa correta sobre alocação de memória. É correto afirmar que a alocação dinâmica de memória sempre leva a programas mais rápidos. A declaração de um vetor é um exemplo clássico de alocação dinâmica de memória. Alocação estática de memória referese 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. 5a Questão (Ref.: 201407626680) Fórum de Dúvidas (0) Saiba (0) Tenho uma lista não ordenada de clientes em que registro apenas a matrícula, o nome, o endereço e o telefone de cada cliente. Como não tenho limites para o crescimento da minha lista, como posso implementar a inserção de um novo cliente na lista, sabendo que cada cliente é do tipo Cliente e a lista é do tipo Lista assim definidos : struct Cliente { 18/06/2015 BDQ Prova data:text/html;charset=utf8,%3Cform%20name%3D%22form%22%20method%3D%22post%22%20action%3D%22http%3A%2F%2Fsimulado.estacio.br… 3/5 long int matricula; string nome, endereco, tel; }; struct Lista { Cliente c; struct Lista *link; }; Lista insereCliente(Lista *p, Cliente cl) { Lista novo[]; novo[0].c = cl; novo[0].link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo = new Lista; novo‐>c = cl; novo‐>link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo ; novo‐>c = cl; novo‐>link = p; return novo; } Lista * insereCliente(Lista *p) { Lista *novo = new Lista; Cliente cl; novo‐>c = cl; novo‐>link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) 18/06/2015 BDQ Prova data:text/html;charset=utf8,%3Cform%20name%3D%22form%22%20method%3D%22post%22%20action%3D%22http%3A%2F%2Fsimulado.estacio.br… 4/5 { Lista *novo = new Lista; novo.c = cl; novo.link = p; return novo; } Gabarito Comentado 6a Questão (Ref.: 201407978691) 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 << pno; p = plink; } } void imprimir(no *p) { while (p != NULL) { cout << pplaca; } } void imprimir(no *p) { while (p != NULL) { cout << pplaca; p = plink; } 18/06/2015 BDQ Prova data:text/html;charset=utf8,%3Cform%20name%3D%22form%22%20method%3D%22post%22%20action%3D%22http%3A%2F%2Fsimulado.estacio.br… 5/5 } void imprimir(no *p) { if (p != NULL) { cout << pplaca; p = plink; } } void imprimir(no *p) { while (p != NULL) { cout << p.placa; p = p.link; } } Fechar
Compartilhar