Buscar

Estruturas de dados - Simulado 2

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

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

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ê viu 3, do total de 5 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

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

Prévia do material em texto

24/05/2015 BDQ Prova
data:text/html;charset=utf­8,%3Ctable%20align%3D%22center%22%20width%3D%2295%25%22%20cellpadding%3D%220%22%20cellspacing%3D%22… 1/5
   ESTRUTURA DE DADOS
Simulado: CCT0260_SM_  V.1   Fechar
Aluno(a):  Matrícula: 
Desempenho: 1,0 de 8,0 Data: 24/05/2015 13:45:50 (Finalizada)
  1a Questão (Ref.: 201407589970)
Listas encadeadas são estruturas cujos nodos são alocados dinamicamente, isto é em tempo de
execução, na medida em que se necessite de mais espaço. Sendo um nodo representado por:
struct elemento{
            string nome;
            int idade;
            elemento *prox;
};
 
Escreva em linguagem C++ uma função de nome criaNodo( ),  que crie um novo nodo para ser inserido
no final da lista, e forneça um ponteiro com o endereço do nodo criado.
Sua Resposta: .
Compare com a sua resposta:
elemento * criaNodo ( )
{
            elemento *p=new elemento;
            p­>prox=null;
            return p;
}
  2a Questão (Ref.: 201407408616)
Defina um tipo de dado (registro) capaz de armazenar as seguintes informações sobre um determinado cliente
de um banco: nome, CPF, RG, número da conta, data de abertura da conta, e saldo.
Com base neste tipo de dado, construa o trecho código em C++ que represente a leitura dos dados do cliente
feita pelo usuário.
Sua Resposta: .
Compare com a sua resposta:
struct ClienteBanco{
    string nome;
    string cpf;
    int rg;
    int numConta;
    double saldo;
};
ClienteBanco cliente;
cin >> cliente.nome;
cin >> cliente.cpf;
24/05/2015 BDQ Prova
data:text/html;charset=utf­8,%3Ctable%20align%3D%22center%22%20width%3D%2295%25%22%20cellpadding%3D%220%22%20cellspacing%3D%22… 2/5
cin >> cliente.rg;
cin >> cliente.saldo;
  3a Questão (Ref.: 201407957535) Pontos: 0,0  / 1,0
A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes, estruturas ou structs, uniões e
classes. As estruturas, que passaremos a chamar simplesmente de structs, são tipos de variáveis que agrupam
dados geralmente desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido a esta
característica as structs são utilizadas para modelar nodos (nós) de estruturas dinâmicas. Portanto podemos
afirmar que:
  As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de
compilação e terem seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tanto em
tempo de execução quanto em tempo de compilação, mas não podem ter seus tamanhos alterados de
acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de
compilação e entretanto seus tamanhos só são alterados na codificação de acordo com a demanda.
  As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de
execução e terem seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois não podem fazer alocação de memória em tempo de
execução, mas mesmo assim conseguem ter seus tamanhos alterados de acordo com a demanda.
  4a Questão (Ref.: 201407627549) Pontos: 0,0  / 1,0
As variáveis são na verdade trecho de memórias que armazenam dados de
diversas  naturezas,  portanto  sempre  que  declara­se  uma  variável,  na
linguagem C++, é necessário informar o tipo de dado que esta irá armazenar.
Um  tipo  especial  de  variáveis  são  os  ponteiros,  isto  é,  variáveis  que
armazenam  apenas  os  endereços  de  outras  variáveis.  Assim  os  ponteiros
são usados para que se possa acessar de forma indireta uma outra variável.
Sabendo­se disto e  supondo que o endereço na memória da variável  "a" é
100 e o endereço da memória da variável ponteiro é 200, analise o trecho de
código abaixo e marque a alternativa que representa  a saída do programa:
 
  200 9 100
100 100 200
  100 9 200
9 9 200
9 100 200
24/05/2015 BDQ Prova
data:text/html;charset=utf­8,%3Ctable%20align%3D%22center%22%20width%3D%2295%25%22%20cellpadding%3D%220%22%20cellspacing%3D%22… 3/5
  5a Questão (Ref.: 201407599625) Pontos: 0,0  / 1,0
Observe o trecho de um código abaixo
struct no
{
  int dado;
  struct no *proximo;
}; 
int main()
{
  no *lista=new no; 
  no *pt= new no;
  lista­>dado=1989;
  lista­>proximo=NULL;
...
    //Nesse  ponto,  assuma  que  cinco  nós  foram  alocados  em  uma  lista  simplesmente  encadeada  e  valores
atribuídos  aos membros dado na  sequência:      1989      2014      2011    1962    2002  e,  que  através  do  comando
abaixo, o ponteiro pt passou a apontar para um nó da lista.
  
  pt­>proximo=lista­>proximo­>proximo;
 Assinale a alternativa que apresenta o comando equivalente a:  
cout << " \nValor do ?o no: " << pt­>proximo­>proximo­>dado;
  cout << " \nValor do ?o no: " << lista­>proximo­>proximo­>proximo­> proximo­
>dado;
cout << " \nValor do ?o no: " << lista­>proximo­>proximo­>dado;
  cout << " \nValor do ?o no: " << lista­>proximo­>proximo­>proximo­>dado;
cout << " \nValor do ?o no: " << lista­>dado;
cout << " \nValor do ?o no: " << lista­>proximo­>dado;
 Gabarito Comentado.
  6a Questão (Ref.: 201407929070) Pontos: 0,0  / 1,0
Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente:
i) um ponteiro para o primeiro nó da lista;
ii) encadeamento entre os nós, através de algum campo de ligação;
iii) não deve haver uma indicação de final da lista;
iv) um ponteiro para o final da lista.
Levando em consideração as afirmações apresentadas, qual das alternativas é a correta?
  as afirmações ii e iv estão corretas.
  as afirmações i e ii estão corretas.
somente a afirmação i esta correta.
as afirmações i, ii e iii estão corretas.
somente a afirmação iv esta correta.
24/05/2015 BDQ Prova
data:text/html;charset=utf­8,%3Ctable%20align%3D%22center%22%20width%3D%2295%25%22%20cellpadding%3D%220%22%20cellspacing%3D%22… 4/5
  7a Questão (Ref.: 201408001239) Pontos: 0,0  / 1,0
Considere dados sendo manipulados em uma pilha sequencial em que as operações possíveis são: inserção ­
push(novo valor) ou remoção ­ pop().
Se realizarmos a seguinte sequencia de operações:
push(A),push(B),push(C),pop(),pop(),push(D),pop(),pop().
Pode­se dizer que o interior da pilha apresenta­se:
  Apenas com o dado D
  Vazio
Com os dados A e D
Apenas com o dado A
Com os dados A e B
  8a Questão (Ref.: 201407926126) Pontos: 0,0  / 1,0
Sabe­se  que  Push()  coloca  um  elemento  na  pilha,  Pop()  remove  um  elemento  da  pilha  e  Top()  exibe  o
elemento que se encontra no topo.
Assinale a opção que indica o número que aparecerá após a execução das funções abaixo.
Sequencia: Push() / Push()/ Pop()/ Push()/Pop()/ Top() 
Números que deverão ser empilhados nessa ordem: 8/ 15/ 23/ 13 / 18
  15
18
  8
13
23
 Gabarito Comentado.
  9a Questão (Ref.: 201407926954) Pontos: 0,0  / 1,0
Abaixo  temos  algumas  afirmativas  sobre  o  uso  da  estrutura  pilha  de  forma  estática  e  sequencial.  Leia  com
muita atenção e assinale a opção correta.
I Não existe movimentação na pilha quando inserimos ou removemos um elemento. Apenas o valor da variável
que controla o topo é alterado. 
II  Não  podemos  usar  estruturas  homogêneas,  ou  heterogêneas  e  uma  variável  para  controlar  o  topo  na
alocação sequencial. 
III  Um  dos  fatores  que  limita  o  crescimento  da  pilha  é  a  quantidade  de  memória  alocada  quando  usamos
matrizes. 
IV Quando formos empilhar um elemento, é preciso verificar se a pilha não está cheia. Isso evita underflow. 
V Quando formos desempilhar um elemento, é preciso verificar se a pilha não está vazia. Isso evita overflow.
  II, IV e V estão corretas
I, IV e V estão corretas
  I e III estão corretas
I, IV e V estão corretas
Somente a I está corretaGabarito Comentado.
24/05/2015 BDQ Prova
data:text/html;charset=utf­8,%3Ctable%20align%3D%22center%22%20width%3D%2295%25%22%20cellpadding%3D%220%22%20cellspacing%3D%22… 5/5
  10a Questão (Ref.: 201407926797) Pontos: 1,0  / 1,0
Analise as afirmativas sobre uma pilha estática e assinale a opção correta.
I Ordenar é uma operação que não se faz com pilha. 
II Inserir dados é uma operação que se faz com a pilha. 
III Remover dados em qualquer posição é uma operação que se faz com a pilha. 
IV Verificar se a Pilha está cheia é necessário quando se deseja inserir nela. 
V Inicializar uma pilha significa zerar todas as variáveis do vetor.
  I, II e IV estão corretas.
I, II e V estão corretas.
II e III estão corretas.
I e IV estão corretas.
I e II estão corretas.
 Gabarito Comentado.

Outros materiais