Buscar

AV Estr Dados 8.2014



Continue navegando


Prévia do material em texto

1a Questão (Ref.: 201311074053) Pontos: 1,5 / 1,5 
Como é a lógica do FIFO? 
 
 
Resposta: 
 
 
Gabarito: O primeiro que entra na fila é o primeiro que sai. 
 
 
 
 2a Questão (Ref.: 201311064546) Pontos: 1,5 / 1,5 
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. 
 
 
Resposta: 
 
 
Gabarito: 
struct ClienteBanco{ 
 string nome; 
 string cpf; 
 int rg; 
 int numConta; 
 double saldo; 
}; 
ClienteBanco cliente; 
cin >> cliente.nome; 
cin >> cliente.cpf; 
cin >> cliente.rg; 
cin >> cliente.saldo; 
 
 
 
 3a Questão (Ref.: 201311035149) Pontos: 0,5 / 0,5 
Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e 
algumas são altamente especializadas, destinando-se a algumas tarefas específicas. 
Dessa forma a definição de Estrutura de Dados está expressa na alternativa: 
 
 
É um modo de distribuição e organização de dados em uma rede de computador de 
modo que possam ser usados de modo eficiente. 
 É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
É um modo de deleção de dados em um computador. 
 
É um modo de utilização de dados nos programas de computador. 
 
 
 
 4a Questão (Ref.: 201311245867) Pontos: 0,5 / 0,5 
Funções são instrumentos de modularização de programas, que tem como finalidade 
tornar o código mais legível, isto é mais fácil de entender, evita replicação de instruções e 
permite o reuso das funções em outros programas. Então considere o seguinte código: 
#include< iostream > 
using namespace std; 
 
int main( ) 
{ 
 float a=10.0; 
 float b=4.0; 
 cout < < media(a,b); 
 return 0; 
} 
float media(float x, float y) { return (x+y)/2;} 
 
Marque a alternativa CORRETA: 
 
 
O código compila normalmente, pois como a descrição da função float media(float x, 
float y)está posicionada após a função int main ( ), não há necessidade do uso de 
protótipos. 
 
O código não compila, pois os parâmetros usados na chamada da função deveriam 
ser "x" e "y"; porém a chamada se deu com identificadores "a" e "b". 
 
O código compila normalmente e apresenta como resultado o valor 7.0 
 O código não compila, pois há necessidade de se declarar float media(float, float) 
como protótipo da função float media(float x, float y)antes da função principal. 
 
O código não compila, pois a função float media(float x, float y) retorna um valor 
que seria ser armazenado em uma variável do tipo float e só então poderia ser 
usado o comando cout para exibir o resultado. 
 
 
 
 5a Questão (Ref.: 201311043276) Pontos: 0,5 / 0,5 
Marque a afirmativa correta para a "Busca ou pesquisa binária". 
 
 
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de 
busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do 
meio. 
 
É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente 
ou decrescente. 
 
Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o 
total de elementos. 
 Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de 
busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do 
meio. 
 
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando 
o total de elementos. 
 
 
 
 6a Questão (Ref.: 201311046673) Pontos: 0,5 / 0,5 
Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um 
algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre 
os elementos. Marque a alternativa correta que cita o algoritmo cuja descrição é: 
"considera cada elemento uma vez inserindo-o em seu lugar correto entre os elementos 
que já estão em ordem". E o seu passo a passo pode ser descrito como: "o elemento é 
inserido entre os ordenados movendo-se os elementos maiores que ele uma posição para 
a direita e posteriormente inserindo-o na posição vaga". 
 
 
MergeSort 
 
QuickSort 
 Inserção 
 
Seleção 
 
Bolha 
 
 
 
 7a Questão (Ref.: 201311043262) Pontos: 0,5 / 0,5 
 
Ordene a coluna direita de acordo com a da esquerda, associando as características de 
implementação de cada: (Podem existir mais de uma opção à direita para alguma da esquerda) 
 
Indique a alternativa correta: 
 
 
c - a - a - b - c - b 
 
a - a - a - b - c - b 
 
a - c - a - b - c - a 
 
 
a - b - a - c - c - b 
 
b - b - a - c - c - c 
 
 
 
 8a Questão (Ref.: 201311248383) Pontos: 0,5 / 0,5 
 Considere uma pilha sequencial P com capacidade para n elementos. 
 Sabendo que P é do tipo Pilha definido a seguir, marque a opção que 
corretamente implementa a operação de empilhamento, considerando que o 
topo da pilha recebeu -1 na inicialização. 
 
struct Pilha { 
 int v[n], topo; 
 }; 
 
 
 void empilhar(Pilha P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 void empilhar(Pilha P, int valor) { 
 if (P.topo == n) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 void empilhar(Pilha &P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else 
 P.v[P.topo] = valor; 
} 
 
 void empilhar(Pilha &P, int valor) { 
 if (topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 topo++; 
 v[topo] = valor; 
 } 
} 
 void empilhar(Pilha &P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 
 
 
 9a Questão (Ref.: 201311043094) Pontos: 1,0 / 1,0 
Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta as 
respostas corretas: O escalonamento .................... é do tipo.................., em que o 
processo que chegar primeiro na fila de pronto é o escolhido para ser executado. 
 
 
SJF (Shortest-Job-First), preemptivo. 
 
Circular, não-preemptivo. 
 FIFO, não-preemptivo. 
 
LIFO, não-preemptivo. 
 
Por prioridades, preemptivo. 
 
 
 
 10a Questão (Ref.: 201311256158) Pontos: 1,0 / 1,0 
Observe a struct, definida globalmente, e um trecho de uma 
função que manipula uma Lista Duplamente Encadeada. 
struct listaDE 
{ 
 int info; 
 struct listaDE* ant; 
 struct listaDE* prox; 
}; 
... 
listaDE* novo = new listaDE; 
novo->info = valor; 
novo->prox = LISTA; 
novo->ant = NULL; 
Assinale a alternativa que apresenta o protótipo dessa função 
 
 listaDE *busca (listaDE *LISTA, int valor); 
 void exibeIpF(listaDE *LISTA); 
 listaDE *insereInicio(listaDE *LISTA, int valor); 
 listaDE *insereFim(listaDE *LISTA, int valor); 
 listaDE *remove(listaDE *LISTA, int valor);