Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.155 questões
Nas expressões lógicas mostradas a seguir, A, B e C são variáveis booleanas. Assinale C para as expressões lógicas corretas e E para as erradas.
( ) (A.or.B).or.C = A.or.(B.or.C)
( ) A.and.1=A
( ) A.or.(B.and.C) = (A.or.B).and.(A.or.C)
( ) A.and.(B.or.C)=(A.or.B).or.(A.or.C)
( ) A.or.0= A
( ) (A.and.B).and.C= A.and.(B.and.C)
( ) A.or.(not(A))=1
( ) A.and.(not(A))=0
( ) (A.or.B).or.C=A.and.(B.and.C)
( ) A.and.(B.or.C)=(A.and.B).or.(A.and.C)
Assinale a alternativa que apresenta a sequência
correta de C e E de cima para baixo:
Analise as afirmativas a seguir, referentes aos tipos básicos de estruturas de dados e assinale V para as afirmativas verdadeiras e F para as falsas:
( ) Pode-se combinar várias listas lineares. A matriz é um caso típico onde cada elemento pertence pelo menos a duas listas (linhas e colunas), podendo ser implementada de forma sequencial ou encadeada.
( ) A fila é uma estrutura de dados baseada no princípio LIFO (last in, first out), na qual os dados que foram inseridos primeiros na pilha serão os últimos a serem removidos.
( ) As pilhas são estruturas baseadas no princípio FIFO (first in, first out), em que os elementos que foram inseridos no início são os primeiros a serem removidos.
( ) Um deque é uma lista linear onde as operações de inserção e remoção podem ser efetuadas tanto no início quanto no final da lista linear.
( ) Uma árvore binária é uma árvore em que cada nó tem no máximo dois filhos e o percurso em uma árvore binária permite a obtenção de uma sequência linear de seus nós.
( ) Na teoria dos grafos, uma árvore é um grafo conexo (existe caminho entre quaisquer dois de seus vértices) e acíclico (não possui ciclos).
Assinale a alternativa que apresenta a sequência
correta de V e F de cima para baixo:
O mergesort é um algoritmo de ordenação do tipo dividir-para-conquistar. Sua ideia básica consiste em dividir o problema em vários subproblemas, e resolver esses subproblemas por meio da recursividade e, em seguida,após todos os subproblemas terem sido resolvidos,ocorre a conquista, que é a união das resoluções dos subproblemas. O algoritmo mergesort, apresentado em seguida, está codificado em C/C++.Esse algoritmo ordena o vetor de inteiros a[p],..., a[r](onde, p<r) usando um vetor auxiliar b[p],..., b[r].O vetor a[ ] é dividido recursivamente ao meio em duas instâncias menores, que são ordenadas e então colocadas
juntas, ordenando todo o vetor. No código estão faltando as linhas que fazem a divisão por recursão (linhas 7 e 8) e as linhas que concretizam a fase de conquista, unindo todas as intercalações no vetor principal (linhas 11 e 12).
1. voidmergesort(int a[], int p, int r)
2. {
3. inti,j,k,m;
4. if (r > p)
5. {
6. m = (r + p)/2;
7. …
8. …
9. for (i = m+1; i> p; i--) b[i-1] = a[i-1];
10. for (j = m; j < r; j++) b[r+m-j] = a[j+1];
11. ...
12. ...
13. }
14. }
Considere o seguinte pseudocódigo:
Função misteriosa(a: inteiro)
Início
Se (a<1) então retorna -1;
Se (a==1) então retorna 2;
Se (a>1) então retorna (misteriosa(a-1)* misteriosa(a-2));
Fim
Para tentar descobrir o que a função misteriosa faz, um aluno experimentou a função com os valores de entrada 1, 3 e 4 e obteve os seguintes resultados, respectivamente:
Com relação às estruturas de controle em programas de computador, julgue o item subsecutivo.
Para cada corrotina, é necessária uma pilha de registros de
ativação que cresça e diminua durante a sua execução,
independentemente das pilhas das outras corrotinas.
Com relação às estruturas de controle em programas de computador, julgue o item subsecutivo.
A chamada de uma função para execução é feita citando-se o
seu identificador no meio de uma expressão. Uma função é dita
recursiva quando chama ela própria.
Acerca de funções e procedimentos em subprogramas, julgue o item que se segue.
A passagem de parâmetro em uma rotina pode ocorrer de duas
maneiras: por valor ou por referência. Em se tratando da
passagem por valor, alteram-se os valores dos parâmetros que
foram passados para a função.
Com relação aos tipos de dados elementares e estruturados, julgue o item subsequente.
Em uma árvore binária balanceada, para todo nó que não seja
considerado um nó-folha, a subárvore da esquerda terá chaves
menores que a chave do nó.
Julgue o item seguinte, relativos a linguagens de programação.
Em se tratando de linguagens procedimentais, os dados são
globais e, portanto, acessíveis a todos os procedimentos.
Julgue o item seguinte, relativos a linguagens de programação.
Utilizando-se linguagens fracamente tipadas, é possível alterar
o tipo de dado contido em uma variável durante a execução do
programa.
Considerando a linguagem utilizada na construção de algoritmos, julgue o item a seguir.
Se o algoritmo para o cálculo da média de determinado aluno
utilizar a fórmula média = (P1 + 2*P2) / 3, em que P1 e P2
referem-se, respectivamente, às notas do aluno na primeira e na
segunda prova, e se a média mínima necessária para o aluno
ser aprovado na disciplina for 4,5, esse aluno será aprovado se
obtiver nota 5,0 na primeira prova e 4,0 na segunda prova.
A respeito de algoritmos e estruturas de dados, julgue o próximo item.
Árvore vermelho-preto é uma árvore de pesquisa binária que possui um bite extra de armazenamento por nó e garante que o comprimento de qualquer caminho da raiz até uma folha seja inferior ao dobro do comprimento dos demais caminhos.A respeito de algoritmos e estruturas de dados, julgue o próximo item.
O algoritmo de ordenamento por inserção tem o menor número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.A respeito de algoritmos e estruturas de dados, julgue o próximo item.
Fila de prioridades é um tipo abstrato de dados que permite
executar algumas operações: por exemplo, a operação INSERT (S,x) insere o elemento x no conjunto S e
a operação MAXIMUM (S) retorna o elemento de S que possui
a maior chave.