Questões de Concurso Sobre algoritmos e estrutura de dados
Foram encontradas 3.124 questões
Considere o algoritmo abaixo, escrito em linguagem estruturada:
A = valor inicial
T = 0
Enquanto A < 10 faça
T = A + T
A = A + 1
Fim Enquanto
Supondo que A tenha como valores iniciais 5 e 2, os valores finais de T serão, respectivamente,
Considere o algoritmo em pseudocódigo abaixo.
Em relação ao algoritmo, é correto afirmar que
Em um algoritmo referente a um programa de computador, há a seguinte estrutura de seleção:
Se a variável a receber o valor 2, a variável b receber o valor
3 e a variável c receber o valor 9:
Considere a série a seguir.
1+1/4+1/9+1/16+1/25....
Assinale a opção que indica o pseudocódigo que calcula e exibe
corretamente o somatório dos dez primeiros termos dessa série.
No que se refere a algoritmos e estruturas de dados, julgue o item a seguir.
É possível eliminar dados em uma fila somente no início
da estrutura.
No que se refere a algoritmos e estruturas de dados, julgue o item a seguir.
Embora o QuickSort e o MergeSort sejam algoritmos de
ordenação do tipo divisão e conquista, somente o MergeSort
utiliza intervalos de comparação denominados gap.
No que se refere a algoritmos e estruturas de dados, julgue o item a seguir.
Em uma lista circular, o ponteiro anterior ao início da lista
aponta para o fim, e o ponteiro próximo à célula do fim da lista
aponta para o início.
Na programação de computadores, considere o seguinte algoritmo:
var a, b, c: inteiro
var x, y, z: lógico início
a ← 2
b ← 4
c ← 0
x ← ((a+b) < (b-c) .E. (a*a) = (b-c))
y ← ((b/a) >= (a-c) .OU. (b>=a))
z ← ((a-1) > (c+1) .E. (b*c) >= (a+1)) fim
As variáveis x, y e z receberão, respectivamente, os
valores:
Analise o seguinte pseudocódigo:
Ao executar esse pseudocódigo, o valor de Z é:
Considere a função em pseudocódigo a seguir:
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:
Dado o seguinte vetor de números inteiros
e o ALGORITMO Troca mostrado a seguir:
ALGORITMO Troca
PARA i de 10 ATÉ 6 PASSO -1 FAÇA
temp ← NUM[i];
NUM[i] ← NUM[10-i+1];
NUM[10-i+1] ← temp;
FIM_PARA
NUM[1] ←NUM[NUM[1]];
NUM[NUM[10]]←NUM[10];
NUM[NUM[5]]←NUM[NUM[2]];
NUM[temp]←NUM[NUM[temp]];
FIM_ALGORITMO
Qual o conteúdo do vetor NUM após a execução do
ALGORITMO Troca.
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. }