Logo Passei Direto
Buscar

Avaliação de Vetores em C

Ferramentas de estudo

Questões resolvidas

Um vetor é uma variável composta homogênea unidimensional, ou seja, uma sequência finita de variáveis todas do mesmo tipo, com o mesmo identificador (mesmo nome) e alocadas sequencialmente na memória.
Neste contexto, julgue as seguintes afirmacoes.
I – Os índices utilizados na linguagem C/C++ para identificar as posições de um vetor começam sempre em 0 (zero).
II – A declaração de vetores é feita de forma similar à declaração de variáveis simples, com uma diferença: por ser uma estrutura estática, o vetor tem um tamanho que deve ser definido entre colchetes quando ele é declarado.
III – Um vetor é um conjunto de variáveis do mesmo tipo que podem ser referenciadas por um único identificador.
II, somente.
I, somente.
I e II, somente.
III, somente.
I, II e III.

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?
Ter sido utilizado de forma incorreta algum ponteiro, que acessou indevidamente a área de memória ocupada pela variável de média.
A variável não foi declarada de forma correta.
Ter sido feita a atribuição com tipos incompatíveis.
Ter gerado um erro em tempo de projeto causado pelo ponteiro, que não pode receber endereços para valores reais.
Ter utilizado a variável da média apontando para alguma variável 'ponteiro'.

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?
Um ponteiro que não armazena um endereço de memória e sim um valor float.
Alguma variável comum apontar para a variável 'ponteiro', gerando erro.
Se houver outra variável utilizando aquela área de memória, ela deixará de existir no programa.
Existir outra variável utilizando aquela parte da memória, causando inconsistência de dados.
Um ponteiro que não aponta corretamente para um banco de dados relacional.

As listas estáticas, baseadas em vetores e dinâmicas, criadas com base em structs com ponteiros para a ligação entre os nodos, embora implementem as mesmas funções, têm algumas diferenças quanto ao uso de memória e às possibilidades de acesso. Com base nesse contexto e em seus conhecimentos sobre listas, analise as afirmativas abaixo:
É correto o que se afirma em:
I. Na aplicação de lista encadeada dinâmica, a função de esvaziar lista não libera os espaços correspondentes na memória, só os retira da lista.
II. Listas simplesmente encadeadas só podem ser acessadas em um sentido.
III. Quando um nodo é apontado para a primeira posição da lista encadeada, ele se torna o primeiro elemento da lista.
I e III, apenas.
II e III, apenas.
I, II e III.
I, apenas.
II, apenas.

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.
Caso o código seja modificado, conforme abaixo, o que acontecerá em sua execução?
O encadeamento será perdido, pois o próximo nodo será apagado antes que se saiba para quem ele está apontando.
O código funcionará normalmente, pois os comandos só foram trocados de lugar.
A lista será apagada fora da ordem de acesso.
O ponteiro para o próximo nodo será apagado ao invés do nodo.
O vetor que comporta a lista será apagado.

Listas são estruturas que armazenam vários valores, podendo ser limitado o número de valores ou não limitado. Os valores também podem ser de um ou de vários tipos, enquanto a navegação entre os elementos pode ser só em um sentido ou nos dois sentidos. A inserção de nodos pode ser feita em ordem ou fora de ordem. Essas características que identificam o tipo de lista que se está utilizando.
É correto o que se afirma em:
I – Uma lista duplamente encadeada ordenada pode ser acessada nos dois sentidos.
II – A lista que tem mais de um tipo em cada nodo é considerada heterogênea.
III – Uma lista simplesmente encadeada pode ser homogênea ou heterogênea.
I, II e III.
II, apenas.
I e II, apenas.
I, apenas.
II e III, apenas.

Em uma pilha, as características de acesso aos dados são fundamentais para sua caracterização como uma estrutura de dados com disciplina de acesso.
Com base na informação apresentada, avalie as afirmações a seguir a respeito das características relativas às pilhas.
I. Em uma pilha, o único elemento que pode ser retirado é o que está no topo.
II. As pilhas implementam a estratégia de acesso FILO.
III. Qualquer vetor é uma pilha.
I, apenas.
I e III, apenas.
II, apenas.
I, II e III.
I e II, apenas.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Um vetor é uma variável composta homogênea unidimensional, ou seja, uma sequência finita de variáveis todas do mesmo tipo, com o mesmo identificador (mesmo nome) e alocadas sequencialmente na memória.
Neste contexto, julgue as seguintes afirmacoes.
I – Os índices utilizados na linguagem C/C++ para identificar as posições de um vetor começam sempre em 0 (zero).
II – A declaração de vetores é feita de forma similar à declaração de variáveis simples, com uma diferença: por ser uma estrutura estática, o vetor tem um tamanho que deve ser definido entre colchetes quando ele é declarado.
III – Um vetor é um conjunto de variáveis do mesmo tipo que podem ser referenciadas por um único identificador.
II, somente.
I, somente.
I e II, somente.
III, somente.
I, II e III.

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?
Ter sido utilizado de forma incorreta algum ponteiro, que acessou indevidamente a área de memória ocupada pela variável de média.
A variável não foi declarada de forma correta.
Ter sido feita a atribuição com tipos incompatíveis.
Ter gerado um erro em tempo de projeto causado pelo ponteiro, que não pode receber endereços para valores reais.
Ter utilizado a variável da média apontando para alguma variável 'ponteiro'.

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?
Um ponteiro que não armazena um endereço de memória e sim um valor float.
Alguma variável comum apontar para a variável 'ponteiro', gerando erro.
Se houver outra variável utilizando aquela área de memória, ela deixará de existir no programa.
Existir outra variável utilizando aquela parte da memória, causando inconsistência de dados.
Um ponteiro que não aponta corretamente para um banco de dados relacional.

As listas estáticas, baseadas em vetores e dinâmicas, criadas com base em structs com ponteiros para a ligação entre os nodos, embora implementem as mesmas funções, têm algumas diferenças quanto ao uso de memória e às possibilidades de acesso. Com base nesse contexto e em seus conhecimentos sobre listas, analise as afirmativas abaixo:
É correto o que se afirma em:
I. Na aplicação de lista encadeada dinâmica, a função de esvaziar lista não libera os espaços correspondentes na memória, só os retira da lista.
II. Listas simplesmente encadeadas só podem ser acessadas em um sentido.
III. Quando um nodo é apontado para a primeira posição da lista encadeada, ele se torna o primeiro elemento da lista.
I e III, apenas.
II e III, apenas.
I, II e III.
I, apenas.
II, apenas.

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.
Caso o código seja modificado, conforme abaixo, o que acontecerá em sua execução?
O encadeamento será perdido, pois o próximo nodo será apagado antes que se saiba para quem ele está apontando.
O código funcionará normalmente, pois os comandos só foram trocados de lugar.
A lista será apagada fora da ordem de acesso.
O ponteiro para o próximo nodo será apagado ao invés do nodo.
O vetor que comporta a lista será apagado.

Listas são estruturas que armazenam vários valores, podendo ser limitado o número de valores ou não limitado. Os valores também podem ser de um ou de vários tipos, enquanto a navegação entre os elementos pode ser só em um sentido ou nos dois sentidos. A inserção de nodos pode ser feita em ordem ou fora de ordem. Essas características que identificam o tipo de lista que se está utilizando.
É correto o que se afirma em:
I – Uma lista duplamente encadeada ordenada pode ser acessada nos dois sentidos.
II – A lista que tem mais de um tipo em cada nodo é considerada heterogênea.
III – Uma lista simplesmente encadeada pode ser homogênea ou heterogênea.
I, II e III.
II, apenas.
I e II, apenas.
I, apenas.
II e III, apenas.

Em uma pilha, as características de acesso aos dados são fundamentais para sua caracterização como uma estrutura de dados com disciplina de acesso.
Com base na informação apresentada, avalie as afirmações a seguir a respeito das características relativas às pilhas.
I. Em uma pilha, o único elemento que pode ser retirado é o que está no topo.
II. As pilhas implementam a estratégia de acesso FILO.
III. Qualquer vetor é uma pilha.
I, apenas.
I e III, apenas.
II, apenas.
I, II e III.
I e II, apenas.

Prévia do material em texto

* Algumas perguntas ainda não avaliadas
AV1
Entrega 29 out em 23:59 Pontos 40 Perguntas 10
Disponível 23 out em 0:00 - 29 out em 23:59 Limite de tempo 120 Minutos
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 10 minutos 27 de 40 *
 As respostas corretas estarão disponíveis em 29 out em 0:00.
Pontuação deste teste: 27 de 40 *
Enviado 28 out em 15:49
Esta tentativa levou 10 minutos.
Leia com atenção as orientações abaixo antes de iniciar esta avaliação:
Será permitida uma tentativa para realizar esta prova.
Programe-se para realizar sua avaliação com tranquilidade, pois você terá 120 minutos
cronometrados para conclusão e envio das respostas.
Ao iniciar a avaliação o cronômetro não para, independentemente de a plataforma estar aberta
ou não;
Após este prazo, a avaliação sera automaticamente finalizada.
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”, mas finalizados os 120
minutos do cronômetro, a prova será finalizada automaticamente pelo sistema.
 
Boa prova!
3 / 3 ptsPergunta 1
https://newtonpaiva.instructure.com/courses/18574/quizzes/40321/history?version=1
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;iproximo;
 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:
 
O encadeamento será perdido, pois o próximo nodo será apagado
antes que se saiba para quem ele está apontando.
 
O código funcionará normalmente, pois os comandos só foram
trocados de lugar.
 A lista será apagadafora da ordem de acesso. 
 O ponteiro para o próximo nodo será apagado ao invés do nodo. 
 O vetor que comporta a lista será apagado. 
3 / 3 ptsPergunta 7
Listas são estruturas que armazenam vários valores, podendo ser
limitado o número de valores ou não limitado. Os valores também
podem ser de um ou de vários tipos, enquanto a navegação entre os
elementos pode ser só em um sentido ou nos dois sentidos. A inserção
de nodos pode ser feita em ordem ou fora de ordem. Essas
características que identificam o tipo de lista que se está utilizando.
As afirmativas a seguir apresentam algumas características de listas
com suas explicações. Avalie o que é exposto e responda à questão a
seguir:
I – Uma lista duplamente encadeada ordenada pode ser acessada nos
dois sentidos.
II – A lista que tem mais de um tipo em cada nodo é considerada
heterogênea.
III – Uma lista simplesmente encadeada pode ser homogênea ou
heterogênea.
É correto o que se afirma em:
 I, II e III. 
 II, apenas. 
 I e II, apenas. 
 I, apenas. 
 II e III, apenas. 
Feedback:
A característica principal da lista duplamente encadeada é o
fato de poder ser acessada nos dois sentidos. Qualquer
estrutura de dados que tenha mais de um tipo de dados
diferente é heterogênea, e as listas simplesmente encadeadas
também podem ser homogêneas ou heterogêneas.
3 / 3 ptsPergunta 8
As funções para manipulação e navegação em uma lista possuem
características específicas que possibilitam a distinção entre elas e
mesmo a identificação de características da lista. Avalie o código
abaixo e responda a questão a seguir:
 
 
 nodo *novo=new nodo();
 novo->num=val;
 if(inicio==NULL)
 {
 inicio=novo;
 fim=novo;
 novo->proximo=NULL;
 novo->anterior=NULL;
 }else
 {
 novo->proximo=inicio;
 inicio->anterior=novo;
 novo->anterior=NULL;
 inicio=novo;
 }
 
O código é a lógica completa de uma das funções de uma lista.
Marque abaixo qual função é e de qual tipo de lista.
 
Função inserir elemento no fim da lista duplamente encadeada
ordenada.
 
Função inserir elemento no início da lista duplamente encadeada não
ordenada.
 Função retirar elemento da lista duplamente encadeada ordenada. 
 
Função inserir elemento no início da lista duplamente encadeada
ordenada.
 
Função retirar elemento da lista duplamente encadeada não ordenada. 
Feedback:
O código é de inserção, pois cria o novo nodo e insere o valor. A
inserção é feita no início devido à movimentação dos ponteiros.
Como a inserção não é feita na ordem, trata-se de uma lista
não ordenada.
3 / 3 ptsPergunta 9
Em uma pilha, as características de acesso aos dados são
fundamentais para sua caracterização como uma estrutura de dados
com disciplina de acesso. Com base na informação apresentada,
avalie as afirmações a seguir a respeito das características relativas às
pilhas.
I. Em uma pilha, o único elemento que pode ser retirado é o que está
no topo.
II. As pilhas implementam a estratégia de acesso FILO.
III. Qualquer vetor é uma pilha.
É correto o que se afirma em:
 I, apenas. 
 I e III, apenas. 
 II, apenas. 
 I, II e III. 
 I e II, apenas. 
Feedback:
A pilha utiliza a estratégia FILO (first in last out), onde o primeiro
a entrar é o último a sair, e o primeiro que sai é o último que
entrou (o que está no topo). 
O vetor só é considerado uma pilha quando implementa a
disciplina de acesso FILO.
Não avaliado ainda / 13 ptsPergunta 10
Sua Resposta:
Discuta as vantagens e desvantagens do uso de estruturas de
dados.
Vantagens das estruturas de dados:
1. Organização eficiente de informações.
2. Melhoria na eficiência do programa.
3. Reutilização de código.
4. Legibilidade e facilidade de manutenção.
5. Flexibilidade para atender a diferentes requisitos.
Desvantagens das estruturas de dados:
1. Adição de complexidade ao código.
2. Consumo de memória variável.
3. Possível overhead de desempenho.
4. Complexidade na implementação.
5. Necessidade de escolher a estrutura apropriada para evitar
ineficiência.
Em resumo, as estruturas de dados são ferramentas poderosas, mas é
importante escolher sabiamente e considerar as necessidades do
projeto e as limitações de recursos.
Esta pergunta é abrangente e permite que os voces
demonstrem seu conhecimento sobre os principais conceitos de
estrutura de dados. Voces alunos devem abordar os seguintes
tópicos vistos em cada unidade de estudo.
Pontuação do teste: 27 de 40

Mais conteúdos dessa disciplina