Pages

Mostrando postagens com marcador carolina. Mostrar todas as postagens
Mostrando postagens com marcador carolina. Mostrar todas as postagens

Questão EPO - Quicksort

p j r
<=c <=c <=c <=c =c >c >c >c >c >c





Analise a figura acima assinale a alternativa correta:

a) Temos um vetor de n elementos e J é o elemento com conteúdo igual ao numero total de elementos;
b) J é o elemento escolhido como pivô;
c) J é o meio e somente isso, depois de divide tudo, ordena-se os lados e depois os une;
d) J é o pivô e ele troca os elementos ao seu lado primeiro e depois consecutivamente;
e) NDA

Fonte:
http://www.ime.usp.br/~pf/algoritmos/aulas/quick.html

Questão EPO - Merge sort

Quais as “Etapas” do Merge Sort?

a) Dividir em duas sequências iguais e Conquistar em uma única sequência as subsequências divididas anteriormente;

b) Dividir em duas sequências iguais ou não, Classificar e Conquistar ordenando na lista original.

c) Classificar em duas sequências as subsequências divididas anteriormente, Dividir em duas sequências e Conquistar;

d) Conquistar em uma única sequência as subsequências divididas anteriormente, Classificar e Dividir em duas sequências;

e) NDA;

Fonte:
http://cavmelo.files.wordpress.com/2010/11/merge-sort.pdf

Questão EPO - Recursividade

#include <stdio.h>
int fat(int n)
{
    if (n)
        return n*fat(n-1)
    else return 1;
}

int main()
{
    int n;
    printf("\n\nDigite um valor para n: ");
    scanf("%d", &n);
    printf("\nO fatorial de %d e' %d", n, fat(n));
    return 0;
}

Porque se deve usar if com condição (n)?

a) Porque é o número a ser calculado o fatorial.
b) Porque é o número a ser calculado o fatorial e é o critério de parada.
c) Porque é preciso um critério de parada, mas neste programa dá erro porque a condição está incompleta.
d) A condição de parada deveria ser (n!=0) e ter mais uma variável para retornar o calculo fatorial.
e) NDA

Fonte:
http://www.mtm.ufsc.br/~azeredo/cursoC/aulas/c7a0.html

Questão EPO - Heap sort

Com o Heap Sort é possível ordenar o seguinte arranjo [4,1,3,2,16,9,10,14,8,7] formando, primeiramente, uma árvore binária completa ou quase. Após a formação, com quantas trocas teremos o arranjo ordenado com raiz máxima?   

a) 10;
b) 6;
c) 4;
d) 5;
e) NDA;

Fonte:
http://pt.scribd.com/doc/44502669/Handbook-Questoes-Algoritmos

Questão EPO - Bubble sort

Sabemos que no Bubble Sort , o algoritmo faz as trocas dos números consultando em uma única direção do vetor. No código abaixo, o que deve ser atribuído ao declararmos a variável Swapped, quando está dentro do while e dentro do for?   

void bubbleSort(int arr[], int n) {
    bool swapped = _____;
    int j = 0;
    int tmp;
    while (swapped) {
        swapped = _____;
        j++;
        for (int i = 0; i < n - j; i++) {
            if (arr[i] > arr[i + 1]) {
                tmp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = tmp;
                swapped = ______;
            }
        }
    }
}

a) True – False – True;
b) False – True – True;
c) True – False – False;
d) False – True – False;
e) NDA;

Fonte:
http://www.algolist.net/Algorithms/Sorting/Bubble_sort

Questão EPO - Linked List

Sabendo que LinkedList permite inserções ou remoções, mas apenas com acesso sequencial de elementos e você pode andar a lista para a frente ou para trás. Entretanto, pegar um elemento no meio leva tempo proporcional ao seu tamanho, assinale a alternativa correta:

a)    O fim de uma Linked List deve apontar para “NULL” e ela tem tamanho limitado, ou seja, pré-definido;
b)    Para percorrer uma Linked List há somente uma direção, poderíamos compará-la ao Bubble Sort, só que este segundo ordena e a Linked List não;
c)    Se você tem grandes listas, tenha em mente que o uso de memória também é diferente, pois cada elemento de uma Linked List tem desde ponteiros para os elementos seguintes e anteriores como também os que são armazenados.
d)    Linked List pode ser implementada quando se necessita ordenação, pois ao adicionar você escolhe onde são armazenados os dados.  
e)    NDA

Fonte: http://pt.w3support.net/index.php?db=so&id=322715

Questão EPO - Hash Table

Assinale a alternativa correta:

I. Uma tabela Hash consiste em uma estrutura de dados que possui como vantagem o alto desempenho na busca por informações. A operação matemática a ser aplicada para calcular os índices deve ser somente com o cálculo % (resto de uma divisão).
II. Uma Hash Table tem aumento no tempo de processamento de acordo com a quantidade de dados inseridos e na complexidade da Função Hash aplicada para calcular os índices.
III. Teoricamente, o custo computacional é praticamente constante, pois, devido à maneira como uma tabela de hash armazena seus dados. Cada item armazenado na tabela de Hash possui um valor numérico (índice) que o identifica unicamente dentro da estrutura de dados. E este índice é gerado a partir de operações matemáticas.
IV. Para encontrar um item dentro de uma tabela de hash, basta passar o valor do índice para a mesma, que o índice numérico será calculado e, a partir dele, a localização da informação.

a) I e II estão incorretas;
b) III e IV estão erradas;
c) I, II, III estão incorretas;
d) Somente IV está certa;
e) NDA.

Fonte: http://www.guj.com.br/java/53108-hashtable

Questão EPO - Árvore Binária

Com os números abaixo, qual a construção correta da árvore binária?
7 8 2 5 3 10 4

a)


b)


c)


d)


e) n.d.a.

Fonte: http://equipe.nce.ufrj.br/adriano/c/apostila/arvore.htm

Questão EPO - Alocação Dinâmica

Nos casos abaixo, qual(s) afirmação está correta?

CASO 01:
char *ptr;
ptr = malloc (1);
scanf ("%c", ptr);
free(ptr);

CASO 02:
typedef struct {
    int dia, mes, ano;
} data;

data *d;
d = malloc (sizeof (data));
d->dia = 27;
d->mes = 04;
d->ano = 2011;
free(d);

I. CASO 01 dá erro porque o número 1 não aloca memória e CASO 02 está correto porque sizeof aloca a memória de acordo com o tipo.
II. CASO 01 o número 1 representa a quantidade de bytes alocados e CASO 02 o operador sizeof ocupa vários bytes, ou seja, ele diz quantos bytes o tipo especificado tem.
III. CASO 01 o número de bytes é especificado no argumento da função e CASO 02 sizeof funciona como uma função, assim sendo, chamando a struct data.
IV. Enquanto a função malloc aloca um bloco de bytes consecutivos na memória do computador e devolve o endereço desse bloco, a função free libera o conteúdo de malloc.
V. Enquanto a função malloc aloca um bloco consecutivo de memória do computador e devolve o endereço desse bloco, a função free libera a porção de memória alocada por malloc.

a) I, III e IV estão corretas;
b) III e V estão corretas;
c) II e V estão corretas;
d) I, II e V estão corretas;
e) NDA.

Fonte: http://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html

Questão EPO - Fila

Como deve ser marcado o inicio e o fim da fila abaixo?

0
 
ini
 
 
 
 
fim
 
 
N-1
 
 
 
 
 
 
 
 
 
 
 

a) fila[ini..fim-1];
b) fila[ini..N-1];
c) fila[ini+2..fim-4];
d) fila[ini++.. fim- -];
e) NDA;

Fonte: http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html

Questão EPO - Estrutura de Dados

Qual afirmação está incorreta?

I. Tipos de dados são valores que a variável pode assumir e nem todo TAD pode ser implementado.
II. São exemplos de Tipos de Dados inteiro e booleana e de TAD são: Pilha e Fila.
III. Tipos de Dados são métodos para interpretar o conteúdo da memória do computador e Tipo Abstrato de Dado é a separação entre conceito e implementação.
IV. Tipos de Dados são predefinidos pela linguagem de programação e a implementação de um TAD escolhe uma ED para representá-lo.

a) I;
b) I e III;
c) II;
d) IV;
e) NDA;

Fonte: http://www.icmc.usp.br/~sce182/introd.html

Questão EPO - Árvore Binária

Qual percurso na árvore binária abaixo se refere a Pós-Ordem?



a) I, E, F, J, C, K, L, H, G, D, B, A – Esquerda, Raiz E Direita;
b) E, I, C, F, J, B, H, K, L, D, G, A – Raiz, Esquerda E Direita;
c) E, I, J, F, C, B, K, H, L, G, D, A – Esquerda, Raiz E Direita;
d) I, E, J, F, C, G, K, L, H, D, B, A – Esquerda, Direita E Raiz;
e) NDA.

Fonte: Slide dado em aula

Questão EPO - Pilha

O que o usuário deve fazer para corrigir a senha digitada no programa abaixo sem reiniciar? Considerado que as funções de criação, empilhamento e desempilhamento estão corretas e o usuário errou no 4º dígito.

int main()
Senha *x;
int num, resp=0, i=0, ii=0;

x = senha_cria();
printf(" Digite sua Senha com 5 Dígitos: \n ");
for (i=0; i<5;i++)
{
scanf ("%d",&num);
senha_push(x, num);
printf(" Proximo: \n ");
}

printf("      CAIXA ELETRONICO \n ");  
printf(" ------------------------------ \n ");
printf(" 1 - IMPRIMIR SENHA  \n ");
printf(" 2 - CORRIGIR \n ");
printf(" 3 - DIGITAR  \n ");
printf(" 4 - SAIR \n ");
printf(" ------------------------------ \n ");

do {
  printf(" Opcao: \n ");
scanf ("%d", &resp);

a) Escolher a 4ª opção e começar tudo de novo.
b) Escolher a 2ª opção duas vezes e depois a 3ª duas vezes e digitar os últimos dígitos corretos.
c) Escolher a 2ª opção três vezes e depois a 3ª opção duas vezes e digitar os últimos dígitos corretos.
d) Escolher a 1ª opção, depois a 2ª duas vezes e a 3ª três vezes digitando corretamente a senha.
e) NDA;

Fonte: Slide e Exercício dado em aula

Questão EPO - Ponteiro

Dado o código abaixo:

void trocapreco(float *p1, float *p2);

float main (void) {
float *p1, *p2, nv, ve;

printf(" Etiquetando - Preco Anterior:   \n");
scanf("%5f", &ve);
printf(" Etiquetando - Desconto:   \n");
scanf("%5f", &nv);

trocapreco(________);
printf(" Mostra Preco Velho e Novo:   %f  ->  %f \n", ve, nv);

system("Pause");
}

void trocapreco(float ____, float ____) {
int aux=____;
____ = ____ - ((____ * aux)/100);
}

Responda qual opção preenche respectivamente as lacunas ____ de forma que os ponteiros sejam passados por parâmetro na função e ela exiba corretamente o PrintF destacado:

a) &ve, &nv , *p1 , *p2 , *p2 , *p2 , *p1 , *p1
b) ve,  nv, *p1 , *p2 , *p2 , *p2 , *p1 , *p1
c) &ve, &nv ,  p1 , p2 , p2 , p2 , p1 , p1
d) &ve, &nv , *p1, *p2 , p2, p2, p1, p1 
e) NDA


Fonte: http://www.inf.puc-rio.br/~inf1007/material/slides/tema01-Ponteiros.pdf

Questão EPO - Struct

Dado o código abaixo:

struct aluno {
int mat;
char nome[20];
float mens;
};

main () {
struct aluno a;

printf(" Matrícula: \n");
scanf("%d", &_____);
printf(" Nome: \n");
scanf("%s", &_____);
printf(" Mensalidade: \n");
scanf("%f", &_____);

system ("Pause");
}

Qual a forma correta a seguir de se acessar o valor da struct?

a) a.mat ou (a.mat)
b) somente a.mat
c) a->mat ou a.mat
d) a.mat ou (a).mat
e) NDA

Fonte: http://www.inf.puc-rio.br/~inf1620/material/slides/capitulo08.PDF
 
Copyright (c) 2010. Blogger templates by Bloggermint