Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0260_AV_201107095581 » ESTRUTURA DE DADOS Tipo de Avaliação: AV Aluno: 201107095581 MARCO ANTONIO FERREIRA JUNIOR Professor: GELLARS MARIA DA SILVEIRA TAVARES Turma: 9001/AA Nota da Prova: 7,0 Nota de Partic.: 0 Data: 02/09/2015 19:09:46 1a Questão (Ref.: 201107774831) Pontos: 1,5 / 1,5 Considerando a seguinte estrutura: struct cad{ int matricula; float CR; }; Construa uma função com o protótipo: cad Entrada();, de tal forma que atenda a execução da função main(), abaixo: int main() { cad aluno=Entrada(); cout < < "Matricula:" < < aluno.matricula; cout < < endl; cout < < "CR:" < < aluno.CR; system("pause"); return 0; } Resposta: cad Entrada() { cad aluno = new cad; cin << "Digite a Matricula do Aluno: " << aluno.matricula; cin << "Digite o CR do aluno: "<<aluno.CR; return aluno; } Gabarito: Dentre as possíveis implementações para a solução desta questão temos: cad Entrada() { cad temp; cout < < " Cadastre a matricula"; cin > > temp.matricula; cout < < " Cadastre o CR"; cin > > temp.CR; return temp; } 2a Questão (Ref.: 201107154333) Pontos: 1,5 / 1,5 const int TAMMAX = 100; struct TipoLista{ int qtde; // descritor que representa a quantidade de elementos na lista int elemt[TAMMAX]; }; Fundamento no tipo de dado(registro) acima que representa uma implementação de uma lista linear sequencial. Construa um procedimento para adicionar um dado no final da lista. A lista e o dado serão passados por parâmetro. Usar o mecanismo de passagem por referência se for necessário. Resposta: void Adcionar(TipoLista lista, int elemento) { if(lista.qtde == TAMMAX) { cout>>"Limite da lista atingido"; } else { lista.elemt[lista.qtde1]= elemento; lista.qtde= lista.qtde+1; } }//Fim método Gabarito: void addFinalLista ( TipoLista &lista, int dado ){ if(lista.qtde == TAMMAX){cout << "Lista Cheia."; } else{ lista.elemt[lista.qtde] = dado; lista.qtde++; cout << "Dado adicionado com sucesso."; } } 3a Questão (Ref.: 201107810224) Pontos: 0,5 / 0,5 Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para sua execução assinale a alternativa que representa a resposta final. cin >> a; cin >> b; cin >> c; cin >> d; cout << a; cout << b; cout << c; cout << d; cout << d; cout << c; cout << b; cout << a; Após a impressão dos valores pela ordem teremos uma pilha e uma fila. Após a impressão dos valores pela ordem teremos duas filas. Após a impressão dos valores pela ordem teremos uma fila e um grafo. Após a impressão dos valores pela ordem teremos duas pilhas. Após a impressão dos valores pela ordem teremos uma fila e uma pilha. 4a Questão (Ref.: 201107133252) Pontos: 0,5 / 0,5 As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo: Local Constante Real Inteiro Global 5a Questão (Ref.: 201107133254) Pontos: 0,5 / 0,5 A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a um determinado campo de uma estrutura do tipo Struct? Nome da estrutura seta tipo do campo Nome da estrutura ponto tipo do campo Nome da estrutura vírgula tipo do campo Nome da estrutura seta nome do campo Nome da estrutura ponto nome do campo 6a Questão (Ref.: 201107133119) Pontos: 0,5 / 0,5 Suponha uma listagem, contendo número de inscrição e pontuação (ordenada pelo número de inscrição) dos candidatos para o cargo de Analista de Sistemas de uma grande empresa pública. São 1024 candidatos inscritos e o sistema implementado para consulta do resultado, permite busca binária ou busca sequencial pelo número de inscrição. O número máximo de comparações executadas se fosse utilizada a busca binária e se fosse utilizada busca sequencial, respectivamente, seria de: 10 e 10 512 e 1024 1024 e 512 9 e 9 9 e 10 7a Questão (Ref.: 201107132730) Pontos: 0,5 / 0,5 O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)? inclusão remoção ordenação underflow overflow 8a Questão (Ref.: 201107133246) Pontos: 0,5 / 0,5 Tanto a operação TOP (acessa topo), quanto à operação POP (remover), permite acessar o último elemento armazenado em uma Pilha. Quanto à diferença entre ambas as operações em relação ao estado da Pilha é correto afirmar: Nenhuma das operações altera o estado da Pilha Somente a operação TOP altera o estado da Pilha Ambas alteram o estado da Pilha A operação TOP remove um elemento e altera o estado da Pilha Somente a operação POP altera o estado da Pilha 9a Questão (Ref.: 201107705783) Pontos: 0,0 / 1,0 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. 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 Não deve existir uma estrutura de repetição. 10a Questão (Ref.: 201107780792) Pontos: 1,0 / 1,0 Considere uma lista duplamente encadeada não circular em que struct nodupla { int dado; struct nodupla *dlink; // aponta p/ o nó à direita struct nodupla *elink; // aponta p/ o nó à esquerda }; sendo nodupla *p; //ponteiro para o início da lista A opção que corretamente mostra as instruções para inserir um valor no início da lista apontada por p é : n nodupla *novo; novo = new nodupla; novo‐>dado = valor; novo‐>dlink = p; if (p != NULL) p‐>elink = novo; p = novo; nodupla *novo; novo = new nodupla; novo.dado = valor; novo.dlink = p; novo.elink = NULL; if (p != NULL) p.elink = novo; p = novo; nodupla *novo; novo = new nodupla; novo‐>dado = valor; novo‐>dlink = p; novo‐>elink = NULL; p‐>elink = novo; p = novo; n nodupla *novo; novo = new nodupla; novo‐>dado = valor; novo‐>elink = NULL; if (p != NULL) p‐>elink = novo; p = novo; nodupla *novo; novo = new nodupla; novo‐>dado = valor; novo‐>dlink = p; novo‐>elink = NULL; if (p != NULL) p‐>elink = novo; p = novo; Período de não visualização da prova: desde 25/08/2015 até 09/09/2015.
Compartilhar