Baixe o app para aproveitar ainda mais
Prévia do material em texto
10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 1 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Avaliação Online 1 Entrega 7 jun em 23:59 Pontos 15 Perguntas 10 Disponível 1 jun em 0:00 - 7 jun em 23:59 7 dias Limite de tempo 120 Minutos Tentativas permitidas 2 Instruções Este teste foi travado 7 jun em 23:59. Histórico de tentativas Tentativa Tempo Pontuação MANTIDO Tentativa 2 55 minutos 12 de 15 MAIS RECENTE Tentativa 2 55 minutos 12 de 15 Tentativa 1 31 minutos 12 de 15 Pontuação desta tentativa: 12 de 15 Enviado 7 jun em 22:50 Esta tentativa levou 55 minutos. Leia com atenção as orientações abaixo antes de iniciar esta prova: Serão permitidas duas tentativas para realizar esta avaliação, prevalecendo a maior nota. Programe-se para realizar suas avaliações com tranquilidade, pois você terá 120 minutos cronometrados (por tentativa) para conclusão e envio das respostas. Ao iniciar a avaliação o cronômetro não para, independentemente da plataforma estar aberta ou não; Durante a realização da prova: Será exibido uma questão por vez, podendo “Avançar” ou “Voltar” quando necessário dentro do período da tentativa; A tentativa somente será contabilizada após clicar no botão “Enviar”. 1,5 / 1,5 ptsPergunta 1 https://newtonpaiva.instructure.com/courses/11612/quizzes/26093/history?version=2 https://newtonpaiva.instructure.com/courses/11612/quizzes/26093/history?version=2 https://newtonpaiva.instructure.com/courses/11612/quizzes/26093/history?version=1 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 2 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Em uma estrutura de dados, a organização dos elementos na memória, embora importantíssima na implementação do conceito, é só uma parte da estrutura, sendo tão importante quanto a forma de armazenamento, é o modo como será feito o acesso aos dados ou o algoritmo desenvolvido para isso. Na representação a seguir, é mostrada uma matriz e, logo depois, o código de declaração e impressão de uma célula da mesma. Observe com atenção o que é apresentado para responder a essa questão: Considerando a matriz preenchida, conforme demonstrado acima, e o código de declaração e impressão apresentado (printf), utilize seus conhecimentos acerca de matrizes e vetores para marcar qual das afirmativas é a correta: 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 3 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Será impresso o valor 8, pois está na primeira linha e na terceira coluna. Não será impresso nenhum valor da matriz pois o índice de coluna 0 não existe. Não será impresso nenhum valor da matriz pois o índice de linha 3 não existe. Correto!Correto! Serão impressos todos os valores da matriz. Será impresso o valor 2 na tela. A alternativa "Não será impresso nenhum valor da matriz pois o índice de linha 3 não existe." está correta, pois o índice 3 para linhas dessa matriz não existe, para uma matriz de 3 linhas os valores vão de 0 a 2 conforme explicação sobre como percorrer matrizes, item 3.2 do livro-texto. 1,5 / 1,5 ptsPergunta 2 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 4 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória. Neste contexto, julgue as seguintes afirmações. I – Para percorrer toda uma Matriz de duas dimensões são necessárias duas estruturas de repetição, uma dentro da outra. A mais externa salta as linhas e a mais interna preenche as colunas de forma sequencial. II – Na matriz, cada célula é acessada por dois índices numéricos, um referente a linhas e outro referente a colunas. III – Uma matriz pode ser definida apenas com duas dimensões. Está(ão) correta(s) a(s) afirmativa(s): I, somente. II e III, somente. I e II, somente. Correto!Correto! III, somente. I e III, somente. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 5 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 As duas afirmações iniciais estão corretas. A primeira delas versa sobre a necessidade de duas estruturas de repetição para percorrer uma matriz, e a segunda versa sobre a necessidade de dois índices para referenciar um elemento da matriz. A terceira afirmação está incorreta, pois uma matriz pode ter mais do que duas dimensões, por exemplo, a sintaxe a seguir define uma matriz de três dimensões. float matriz[10][10][10]; Esse assunto pode ser visto na unidade 1 no tópico 1.3 Estrutura de Dados. 1,5 / 1,5 ptsPergunta 3 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 6 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Vetores são estruturas de dados muito interessantes pois permitem a ligação entre várias variáveis do mesmo tipo que podem ser referenciadas por um mesmo identificador, seguido por um índice que, em linguagem C, sempre se inicia com 0. O código apresentado a seguir mostra o preenchimento de um vetor feito em uma estrutura de repetição, índice por índice, até o que vetor esteja completamente preenchido, observe-o com atenção para responder à questão que vem a seguir: for(i=0;i<=30;i++) { vetor1[i]=i; } Sabendo que todas as variáveis em C devem ser declaradas, inclusive os vetores, utilize o conhecimento que tem sobre essas estruturas para marcar a alternativa que mostra a declaração correta do vetor que é utilizado no código. float vetor1[30]. char vetor1[31]. int vetor1[30]. int vetor1[31]. Correto!Correto! float vetor1[31]. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 7 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 A resposta correta é a alternativa "int vetor1[31].", através dos valores de i na repetição (de 0 a 30) pode-se perceber que o vetor tem 31 posições, o tipo é definido pelo valor que ele recebe (i) que sendo também o índice do vetor é sempre inteiro. A explicação sobre isso pode ser vista no capítulo 2 do livro-texto da unidade I, sobre vetores. 1,5 / 1,5 ptsPergunta 4 Vetores e matrizes são estruturas de dados muito utilizadas na computação, sabe-se que as estruturas de dados têm, dentre suas principais utilidades, o fato de agruparem dados que têm alguma relação entre si. Nesse contexto, são colocadas para sua análise as 3 afirmativas abaixo sobre vetores e matrizes, faça uma leitura com atenção e responda à pergunta que vem a seguir: I – O vetor comporta mais de um tipo de valor, desde que estes valores sejam declarados dentro dos colchetes. II – Uma matriz pode ser definida como um conjunto de variáveis do mesmo tipo organizadas em mais de uma dimensão. III – Matrizes e vetores são estruturas completamente diferentes sendo que a única relação entre as duas estruturas é que elas são homogêneas, ou seja, só aceitam um tipo de dados. Agora marque abaixo qual alternativa tem somente as afirmativas que estão corretas sobre as estruturas de dados: Apenas a I é correta. Apenas a II é correta. Correto!Correto! As afirmativas I e II são corretas. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 8 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 As afirmativas I e III são corretas. Todas as afirmativas são corretas. Apenas a afirmação II está correta, ao analisar o conceito de vetores no livro-texto dessa unidade (capítulo 2) e associá-la à definição de matrizes (capítulo 3), percebe-se que matrizes e vetores só diferem quanto ao número de dimensões e que são definidos, conforme a afirmação. Essa mesma associação nos leva a perceber que a afirmativa III é falsa; já a análise da afirmativa I como falsa pode ser feita analisando somente a definição de vetor, que é uma estrutura de dados homogênea (umsó tipo de dado). 1,5 / 1,5 ptsPergunta 5 Analise o case a seguir: Luiz estava desenvolvendo o código de uma aplicação a fim de alocar diretamente a memória. Passando um endereço para o ponteiro (sem utilizar o operador new), indicou uma posição de memória aleatória, sem conferir se ela já estava sendo utilizada por outra variável. O código funcionou sem erros de compilação. Contudo, Luiz pode ter um problema com isso. Qual o possível problema no código desse programador? Alguma variável comum apontar para a variável “ponteiro”, gerando erro. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 9 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Se houver outra variável utilizando aquela área de memória, ela deixará de existir no programa. Um ponteiro que não aponta corretamente para um banco de dados relacional. Um ponteiro que não armazena um endereço de memória e sim um valor float. Existir outra variável utilizando aquela parte da memória, causando inconsistência de dados. Correto!Correto! Alternativa “Existir outra variável utilizando aquela parte da memória, causando inconsistência de dados.” correta, pois o uso de ponteiros de forma desordenada pode levar à inconsistência de dados, uma vez que eles podem utilizar uma área de memória que já esteja ocupada sem ter sido pensado para isso pelo programador. 1,5 / 1,5 ptsPergunta 6 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 10 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Analise o código de programação abaixo: int *ptrX x=1; ptrX=&x; printf("%p", ptrX); O que será impresso na saída do programa analisado? O valor da variável x de forma direta. O valor da variável x, de forma indireta pelo ponteiro. O identificador da variável x. O endereço da variável ptrX. O endereço da variável x. Correto!Correto! 1,5 / 1,5 ptsPergunta 7 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 11 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Analise o case a seguir: Um programa funcionava de forma correta há algum tempo e, ao utilizar uma variável declarada como float, para receber o resultado do cálculo de uma média, começou a não apresentar o resultado corretamente. O programador, ao analisar o código, verificou que todos os cálculos foram realizados de forma correta e que as variáveis comuns estavam declaradas corretamente. Considerando que foram utilizados, sem muito cuidado, ponteiros na implementação, o que pode ter acontecido para gerar o erro? A variável não foi declarada de forma correta. Ter sido utilizado de forma incorreta algum ponteiro, que acessou indevidamente a área de memória ocupada pela variável de média. Correto!Correto! Ter gerado um erro em tempo de projeto causado pelo ponteiro, que não pode receber endereços para valores reais. Ter sido feita a atribuição com tipos incompatíveis. Ter utilizado a variável da média apontando para alguma variável “ponteiro”. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 12 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 O uso de ponteiros sem muito cuidado pode acarretar no acesso indevido à memória. Considerando a situação apresentada, há uma grande chance de ser um problema com algum ponteiro. 0 / 1,5 ptsPergunta 8 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 13 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 No código abaixo, responsável por esvaziar a lista, primeiro o ponteiro início assume o endereço do próximo nodo na memória; depois, é liberada a memória para o ponteiro aux e, em seguida, o aux assume o endereço de início na memória. aux=inicio; while(aux!=NULL) { inicio=inicio->proximo; delete(aux); aux=inicio; } Caso o código seja modificado, conforme abaixo, o que acontecerá em sua execução? aux=inicio; while(aux!=NULL) { inicio=inicio->proximo; aux=inicio; delete(aux); } Marque a alternativa correta: 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 14 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 O vetor que comporta a lista será apagado. Você respondeuVocê respondeu O ponteiro para o próximo nodo será apagado ao invés do nodo. A lista será apagada fora da ordem de acesso. O encadeamento será perdido, pois o próximo nodo será apagado antes que se saiba para quem ele está apontando. Resposta corretaResposta correta O código funcionará normalmente, pois os comandos só foram trocados de lugar. 0 / 1,5 ptsPergunta 9 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 15 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 É conhecido que as listas podem ter variações entre estática, dinâmica, homogênea, heterogênea, ordenada ou não ordenada. Sabe-se também que as características relativas aos tipos de dados e à forma de alocação de memória podem ser identificadas por meio da forma de declaração da lista, enquanto as características de ordenação de uma lista só poderão ser identificadas com uma análise das funções implementadas pelo algoritmo. Observando a declaração do nodo a seguir, é possível identificar a qual tipo de lista ele pertence. struct nodo { int idade; float altura; char sexo; nodo *proximo; }; Marque a alternativa que tenha as características corretas para a lista declarada. Lista encadeada dinâmica heterogênea. Resposta corretaResposta correta Lista encadeada dinâmica homogênea. Lista estática homogênea. Você respondeuVocê respondeu Lista duplamente encadeada dinâmica heterogênea. 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 16 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 Lista estática heterogênea. 1,5 / 1,5 ptsPergunta 10 As listas são estruturas de dados que podem ser implementadas com diversas variações referentes às suas características. Quanto às alocações de memória, uma lista pode ser estática ou dinâmica; já quanto ao tipo de dados, ela pode ser homogênea ou heterogênea e, quanto à forma de utilizar seus campos, a lista pode ser ordenada ou não ordenada. Cada forma de imlpementação tem suas características quanto ao código e às aplicações. Com base no texto e nos conhecimentos que você tem sobre essa estrutura, avalie as afirmativas abaixo sobre listas encadeadas: I. Na lista simplesmente encadeada não ordenada, os itens podem ser inseridos em qualquer lugar da lista. II. Na lista simplemente encadeada ordenada, os itens podem ser inseridos em qualquer lugar da lista, mas existe a opção de inseri-lo na ordem correta. III. Na lista encadeada, é necessário, entre outras coisas, a declaração de uma struct e de ponteiros para a lista. É correto o que se afirma em: I, II e III. I e III, apenas. Correto!Correto! 10/06/21 09(25Avaliação Online 1: MAI.TADS.2 - Estrutura de Dados Page 17 of 17https://newtonpaiva.instructure.com/courses/11612/quizzes/26093 II, apenas. I, apenas. II e III, apenas. A alternativa D é a correta, pois, na afirmativa 2, é dito que podem se inserir itens em qualquer ordem em uma lista ordenada quando, na verdade, nesse tipo de lista, a inserção é obrigatoriamente na ordem correta. Para mais informações, consulte oscapítulos 7 e 8 da apostila da unidade 3. Pontuação do teste: 12 de 15
Compartilhar