Buscar

ESTRUTURA DE DADOS Exercicio 5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

21/05/2018 EPS: Alunos
http://simulado.estacio.br/alunos/ 1/4
Ref.: 201703536495
 1a Questão
As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e organizado. A estrutura de dados
considerada mais simples e tem como característica apresentar apenas uma dimensão é:
Registro
 Vetor
Matriz
Função
Variável
 
 
 
Ref.: 201704389894
 2a Questão
Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de professor é modelada pela struct : 
 struct professor { 
 int matricula; 
 char titulo[30]; 
 }; 
 e a lista L é assim declarada : professor L[n]; 
 
Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n professores de L . 
 
 for (int i = 0; i < n; i++)
 cout << L[i].matricula << " " << L[i].titulo << endl;
for (int i = 0; i < n; i++) 
 cout << L[i].matricula << " " << L[i].titulo[30] << endl;
 for (int i = 0; i < n; i++) 
 cout << L.matricula << " " << L.titulo << endl;
 for (int i = 0; i < n; i++) 
 cout << L[i] << endl; 
 for (int i = 0; i < n; i++) 
 cout << L.matricula[i] << " " << L.titulo[i] << endl;
 
 
Explicação:
Como L é um vetor de n elementos do tipo professor. Então, para percorrer o vetor de índice i temos que fazer L[i] seguido do ponto seguido do
campo, que pode ser matricula ou titulo.
Assiim, a opção correta é 
for (int i = 0; i < n; i++)
 cout << L[i].matricula << " " << L[i].titulo << endl;
 
 
 
Ref.: 201703536352
 3a Questão
Com relação as listas lineares sequenciais:
I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array.
II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice.
III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes.
Apenas as afirmações II está corretas.
 Apenas as afirmações I e II estão corretas.
Apenas as afirmações I e III estão corretas.
Apenas a afirmação I está correta.
Apenas as afirmações II e III estão corretas.
 
 
 
Ref.: 201704591679
 4a Questão
Analise a função abaixo, considerando o tipo Livro e marque a opção correta.
int R2D2 (Livro v[ ], int c, int n) {
for (int i = 0; i < n; i++)
21/05/2018 EPS: Alunos
http://simulado.estacio.br/alunos/ 2/4
 if (v[i].codigo == c)
 return i;
 return -1;
}
onde 
struct Livro {
 int codigo;
 char autor[30];
 };
Retorna -1 se o valor de n foi encontrado.
Retorna -1 se o valor de c estiver em v.
Retorna o valor de c se o valor n foi encontrado.
 Retorna a posição do valor c em v , se o valor c for encontrado em v.
Ocorre erro na função R2D2 se o valor de c não estiver sido encontrado em v.
 
 
Explicação:
Questão objetiva. A função realiza uma busca sequencial.
A cada rodada do loop é verificado se o código de v[i] é igual ao valor de c, passado como parâmetro. Se o código estiver em v[i], então a
posição i é retornada. Se o teste do if nunca tiver sucesso, então, sairemos do for sem sucesso e ao final, será retornado -1, que não pode ser
índice ou posição de qualquer valor no vetor.
 
 
 
Ref.: 201704573157
 5a Questão
Em relação às listas sequenciais, considere as seguintes afirmações:
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da lista;
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a quantidade de dados da lista;
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Assinale a opção que contém apenas todas as afirmativas corretas:
I, II, III
I, II
 I, II, IV
I, II, III, IV
II, III, IV
 
 
Explicação:
Analisando cada afirmativa :
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
Verdadeira. O vetor é sequencial e tem tamanho pré-definido.
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da lista;
Verdadeira.
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a quantidade de dados da lista;
Falso, pois é possível inserirmos em qualquer posição da lista.
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Verdadeiro.
Logo, as afirmativas I, II e IV estão corretas
 
 
 
Ref.: 201704573159
 6a Questão
Considere as seguintes afirmações sobre Listas Sequenciais:
21/05/2018 EPS: Alunos
http://simulado.estacio.br/alunos/ 3/4
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados armazenados.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da mesma.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Marque a opção que contém apenas todas as afirmações verdadeiras:
I, II
 I, III, IV
I, II, III
 I, II, IV
I, II, III, IV
 
 
Explicação:
Analisando cada afirmativa :
 
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
Verdadeiro. As inserções vão ocorrendo do início do vetor (índice zero) em direção ao fim.
 
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados
 armazenados.
Verdadeiro. Armazenam-se os dados e controla-se a quantidade de dados na lista.
 
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados 
 da mesma.
Falso. A inserção pode ser no início, no meio ou no final da lista. Na verdade, pode ocorrer inserção e remoção em qualquer posição.
 
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Verdadeiro. Uma lista pode ou não ter dados repetidos.
 
Resposta certa : As afirmativas I, II, IV estão certas
 
 
 
Ref.: 201704099585
 7a Questão
Estude atentamente o código a segir: 
 int deciframe(int v[ ], int tam, int e){ 
 int i = 0, f = tam -1, m; 
 while ( i <= f ){ 
 m = ( i + f ) / 2; 
 if ( v[m] == e ) { return m; } 
 if ( e < v[m] ) { f = m - 1; } 
 else { i = m + 1; } 
 } 
 return -1; 
 } 
 Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria? 
 v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
 tam = 8 
 e = -6
 -1
4
 0
3
6
 
 
Explicação:
Analisando
int deciframe(int v[ ], int tam, int e) { 
 int i = 0, f = tam -1, m; 
 while ( i <= f ){ 
 m = ( i + f ) / 2; 
 if ( v[m] == e ) { return m; } 
 if ( e < v[m] )
 { f = m - 1; } 
 else
21/05/2018 EPS: Alunos
http://simulado.estacio.br/alunos/ 4/4
 { i = m + 1; } 
 } 
 return -1; 
 } 
 
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria? 
 v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
 tam = 8 
 e = -6
Está procurando pelo valor e = -6. Como se sabe pelo estudo da busca binária e olhando o código dado, temos que -6 não existe na lista então a
função irá retornar -1 (vide última linha da função). SE a busca tivesse sucesso, o teste do 1o. if no while seria verdadeiro e então o índice m de
v seria retornado. Mas não é o caso, pois -6 não foi encontrado.
 
 
 
Ref.: 2017046587458a Questão
Considere as seguintes afirmações: I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100]. II. Ao declararmos
um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor. III. Uma string declarada como char B[30] armazena no
máximo 30 caracteres. Escolha a alternativa correta:
Está correta apenas a afirmativa I.
Está correta apenas a afirmativa II.
Estão corretas apenas as afirmativas I e II.
Estão corretas apenas as afirmativas I e III.
 Nenhuma afirmação está correta.
 
 
Explicação:
Analisando cada afirmativa :
 I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100].
 Falso. Podemos ter matrizes unidimensionais, tridimensionais, etc...
 II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor.
Falso. Em C++ o índice inicial é zero. Logo, A[2] é o elemento de índice 2, ou seja, o 3o. elemento do vetor.
III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Falso. B pode armazenar no máximo 29 caracteres que sejam dados, pois existe uma área para o caracter nulo.
Logo, todas as opções são falsas.

Continue navegando

Outros materiais