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);