Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão (Ref.: 201409931145) Desenvolva uma função em C++ para construir uma fila Q com valores inteiros positivos, inseridos a partir do teclado. Sua Resposta: Compare com a sua resposta: PNodo ConstruirFila () { int X; PNodo Q; Q = Criar(); cout<<"Inserir um inteiro positivo (negativo para terminar): \n"; cin>>X; while (X > 0) { Q = Juntar(X, Q); cout<<"Inserir um inteiro positivo (negativo para terminar): \n"; cin>>X; } return Q; } 2a Questão (Ref.: 201409931092) Suponha que o nó tenha como membro um número inteiro fora o ponteiro. Defina uma estrutura (struct) em C++ struct para uma lista com um nó. Sua Resposta: Compare com a sua resposta: struct nodo { int num; struct nodo* prox; }; 3a Questão (Ref.: 201409496365) Pontos: 0,0 / 1,0 Sabemos que podemos representar uma expressão de três formas, sendo que uma delas é chamada de notação polonesa reversa ( pósfixa). Suponha que um professor de Estrutura de Dados desejasse compor a nota do bimestre com uma prova e um trabalho oral, usando pesos diferenciados para as notas. Sendo assim, usaria a média ponderada como a expressão abaixo. A única calculadora que encontrou disponível foi uma com representação pós fixa. Assinale a alternativa que apresenta a sequência que deveria ser digitada pelo professor para conseguir calcular a média de um aluno. / + * nota1 peso1 * nota2 peso2 + peso1 peso2 / * nota1 peso1 + * nota2 peso2 + peso1 peso2 nota1 peso1 * nota2 peso2 * peso1 peso2 + + / nota1 peso1 nota2 peso2 peso1 peso2 * * + + / nota1 peso1 * nota2 peso2 * + peso1 peso2 + / Gabarito Comentado. 4a Questão (Ref.: 201409490420) Pontos: 0,0 / 1,0 As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas duas funções devem implentar o algoritmo LIFO (Last In First Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia: PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ). Quais valores restarão na pilha? 10 e 2 Apenas o 10 Apenas o 2 Nenhum, a pilha estará vazia. 7 e 2 Gabarito Comentado. 5a Questão (Ref.: 201409528017) Pontos: 0,0 / 1,0 As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação: pt>próximo.valor=5.60; pt>próximo>valor=5.60; pt>valor=5.60; pt>5.60; pt.valor>5.60; 6a Questão (Ref.: 201409492924) Pontos: 0,0 / 1,0 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 (topo == n 1) cout << "Pilha cheia."; else { topo++; v[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.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 (P.topo == n 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } Gabarito Comentado. 7a Questão (Ref.: 201409288134) Pontos: 0,0 / 1,0 Para a criação de uma Fila seqüencial basta iniciar as variáveis de início e final, ou seja, apontálas para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse inicializada com o valor 1 (menos um): Após a inserção devese fazer o decremento da variável final Após a inserção devese fazer o incremento da variável inicio Antes da inserção devese fazer o decremento da variável final Após a inserção devese fazer o incremento da variável final Antes da inserção devese fazer o incremento da variável final Gabarito Comentado. 8a Questão (Ref.: 201409527151) Pontos: 0,0 / 1,0 Tenho uma lista não ordenada de clientes em que registro apenas a matrícula, o nome, o endereço e o telefone de cada cliente. Como não tenho limites para o crescimento da minha lista, como posso implementar a inserção de um novo cliente na lista, sabendo que cada cliente é do tipo Cliente e a lista é do tipo Lista assim definidos : struct Cliente { long int matricula; string nome, endereco, tel; }; struct Lista { Cliente c; struct Lista *link; }; Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo = new Lista; novo.c = cl; novo.link = p; return novo; } Lista insereCliente(Lista *p, Cliente cl) { Lista novo[]; novo[0].c = cl; novo[0].link = p; return novo; } Lista * insereCliente(Lista *p) { Lista *novo = new Lista; Cliente cl; novo‐>c = cl; novo‐>link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo ; novo‐>c = cl; novo‐>link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo = new Lista; novo‐>c = cl; novo‐>link = p; return novo; } Gabarito Comentado. 9a Questão (Ref.: 201409288119) Pontos: 1,0 / 1,0 Qual das alternativas a seguir pode definir uma estrutura de fila? Entrada de dados pelo final e saída pelo início. Entrada e saída de dados em qualquer local. Entrada e saída de dados pelo final. Entrada de dados pelo início e saída pelo final. Entrada e saída de dados pelo início. Gabarito Comentado. 10a Questão (Ref.: 201409287650) Pontos: 0,0 / 1,0 Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que DEQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações: ENQUEUE(1) ENQUEUE(2) DEQUEUE() ENQUEUE(3) ENQUEUE(4) DEQUEUE() DEQUEUE() ENQUEUE(5) Ao final da sequencia, a soma dos elementos de que (Q) será? 5 6 9 0 15
Compartilhar