Questões de Concurso Sobre algoritmos em algoritmos e estrutura de dados

Foram encontradas 2.344 questões

Q4205913 Algoritmos e Estrutura de Dados
Atenção! Para responder à questão de Informática, a menos que seja informado o contrário, considerar que os programas mencionados se encontram na versão Português-BR e em sua configuração padrão de instalação, possuem licença de uso, o mouse está configurado para destros, um clique ou duplo clique correspondem ao botão esquerdo do mouse, e teclar corresponde à operação de pressionar uma tecla e, rapidamente, liberá-la, acionando-a apenas uma vez.
Os dados em um computador são organizados em arquivos. É conveniente que em cada registro de um arquivo haja um campo que o individualize. De acordo com as operações básicas sobre os registros de um arquivo, marcar C para as afirmativas Certas, E para as Erradas e, após, assinalar a alternativa que apresenta a sequência CORRETA:

(_) Uma das operações básicas sobre um registro de um arquivo é a inclusão.
(_) O merge corresponde à intercalação dos registros de um arquivo.
(_) Uma vez concluída a operação de inclusão do arquivo, não é possível praticar sua exclusão.
Alternativas
Q4199664 Algoritmos e Estrutura de Dados
Considere o algoritmo a seguir, que deve ser analisado para responder à questão. Este algoritmo está apresentado na forma de uma psedolinguagem (Português Estruturado).

Q53.png (292×440)

Assinale a alternativa que apresenta o valor armazenado em A ao final da execução desse algoritmo, considerando que os valores lidos para r1 e r2 tenham sido, respectivamente, 2 e 3.
Alternativas
Q4197761 Algoritmos e Estrutura de Dados

Analise o programa a seguir escrito em pseudolinguagem (Português Estruturado).

Imagem associada para resolução da questão

A variável K ao final da execução desse programa estará com o valor

Alternativas
Q4197760 Algoritmos e Estrutura de Dados

Considere o seguinte programa, escrito em pseudolinguagem (Português Estruturado).

Imagem associada para resolução da questão


Ao término da execução desse programa, o valor presente da variável Soma será igual a:

Alternativas
Q4197636 Algoritmos e Estrutura de Dados
Considere o código a seguir:
public class HeapSort {  public void heapSort(int arr[]) {  int n = arr.length;  for (int i = n / 2 - 1; i >= 0; i--) {  heapify(arr, n, i);  }  for (int i = n - 1; i > 0; i--) {  int temp = arr[0];  arr[0] = arr[i];  arr[i] = temp;  heapify(arr, i, 0);  }  }  void heapify(int arr[], int n, int i) {  int maior = i;  int esquerda = 2 * i + 1;  int direita = 2 * i + 2;  if (esquerda < n && arr[esquerda] > arr[maior]) {  maior = esquerda;  }  if (direita < n && arr[direita] > arr[maior]) {  maior = direita;  }  if (maior != i) {  int temp = arr[i];  arr[i] = arr[maior];  arr[maior] = temp;  heapify(arr, n, maior);  }  }  public static void main(String args[]) {  int arr[] = {12, 11, 13, 5, 6, 7};  int n = arr.length;  HeapSort heapSort = new HeapSort();  heapSort.heapSort(arr);  System.out.println("Array ordenado: ");  for (int i : arr) {  System.out.print(i + " ");  }  } }
Considerando o algoritmo apresentado, qual é a principal característica deste algoritmo de ordenação?
Alternativas
Q4197635 Algoritmos e Estrutura de Dados
Analise os códigos a seguir:
Código 01 import java.util.Stack; public class Pilha {  public static void main(String[] args) {  Stack<Integer> pilha = new Stack<>();  pilha.push(5);  pilha.push(3);  pilha.push(8);  pilha.push(1);  Stack<Integer> pilhaOrdenada = new Stack<>();  while (!pilha.isEmpty()) {  int temp = pilha.pop();  while (!pilhaOrdenada.isEmpty() && temp > pilhaOrdenada.peek()) {  pilha.push(pilhaOrdenada.pop());  }  pilhaOrdenada.push(temp);  }  System.out.println("Pilha Ordenada: " + pilhaOrdenada);  } }
Código 02
import java.util.Stack; public class Pilha {  public static void main(String[] args) {  Stack<Integer> pilha = new Stack<>();  pilha.push(5);  pilha.push(3);  pilha.push(8);  pilha.push(1);  Stack<Integer> pilhaOrdenada = new Stack<>();  while (!pilha.isEmpty()) {  int temp = pilha.pop();  while (!pilhaOrdenada.isEmpty() && temp < pilhaOrdenada.peek()) {  pilha.push(pilhaOrdenada.pop());  }  pilhaOrdenada.push(temp);  }  System.out.println("Pilha Ordenada: " + pilhaOrdenada);  } }

Ao comparar os dois códigos apresentados, assinale a alternativa correta.
Alternativas
Q4197634 Algoritmos e Estrutura de Dados
O Bubble Sort é um algoritmo simples de ordenação que percorre repetidamente a lista, compara elementos adjacentes e os troca se estiverem na ordem errada. Esse processo é repetido até que a lista esteja ordenada. Considerando essas informações e o uso do algoritmo Bubble Sort, qual das seguintes afirmações é verdadeira? 
Alternativas
Q4197623 Algoritmos e Estrutura de Dados

Considere os dois pseudocódigos recursivos apresentados a seguir:


Código 01

função fibonacci(n: inteiro) -> inteiro:

 se n <= 1 então

 retornar n

 senão

 retornar fibonacci(n-1) + fibonacci(n-2)

 fim se


Código 02

função fatorial(n: inteiro) -> inteiro:

 se n <= 1 então

 retornar 1

 senão

 retornar n * fatorial(n-1)

 fim se


A partir da análise dos códigos apresentados, assinale a alternativa que apresenta a principal diferença entre os pseudocódigos recursivos 1 e 2 em termos de seu propósito e operação.

Alternativas
Q4197622 Algoritmos e Estrutura de Dados

Considere o seguinte pseudocódigo:

// Pseudocódigo para calcular a média de duas notas

// ??? (1)

nota1, nota2, media: real

// ??? (2)

escrever("Digite a primeira nota: ")

ler(nota1)

escrever("Digite a segunda nota: ")

ler(nota2)

// ??? (3)

media <- (nota1 + nota2) / 2

// ??? (4)

escrever("A média das duas notas é: ", media)


Com base no pseudocódigo, assinale a alternativa que apresenta corretamente cada elemento (// ???) a sua respectiva parte no pseudocódigo.

Alternativas
Q4197621 Algoritmos e Estrutura de Dados

Considere a seguinte função recursiva em pseudocódigo:


função fatorial(n: inteiro) -> inteiro:

 se n = 0 ou n = 1 então

       retornar 1

 senão

       retornar n * fatorial(n - 1)

 fim se


Com base na análise da função, assinale a alternativa que apresenta o resultado da chamada da função fatorial(5). 

Alternativas
Q4197620 Algoritmos e Estrutura de Dados
Considere os trechos de código a seguir:
Código 01 contador <- 1 enquanto contador <= 5 faça     escrever("Iteração ", contador)     contador <- contador + 1 fim enquanto
Código 02 para contador de 1 até 5 passo 1 faça  escrever("Iteração ", contador) fim para

A partir da análise dos dois trechos de pseudocódigo apresentados, assinale a alternativa que apresenta a principal diferença entre as estruturas de repetição Enquanto e Para, conforme exemplificado nos pseudocódigos. 
Alternativas
Q4197619 Algoritmos e Estrutura de Dados
Considere o trecho de pseudocódigo a seguir:

// Pseudocódigo para calcular a média de três números escrever("Digite o primeiro número: ") ler(primeiroNumero) escrever("Digite o segundo número: ") ler(segundoNumero) escrever("Digite o terceiro número: ") ler(terceiroNumero) soma <- primeiroNumero + segundoNumero + terceiroNumero media <- soma / 3 escrever("A média dos três números é: ", media)
Com base no trecho código apresentado, assinale a alternativa que apresenta a finalidade da parte do pseudocódigo que contém as linhas a seguir.
escrever("Digite o primeiro número: ") ler(primeiroNumero) escrever("Digite o segundo número: ") ler(segundoNumero) escrever("Digite o terceiro número: ") ler(terceiroNumero)
Alternativas
Q4193145 Algoritmos e Estrutura de Dados
A escolha do algoritmo de ordenação ou busca deve considerar o volume de dados e o estado prévio de organização da lista. Considerando o funcionamento dos algoritmos Bubble Sort, Quick Sort e busca binária, analise as afirmativas a seguir:

I.O algoritmo Bubble Sort percorre a lista múltiplas vezes, trocando elementos adjacentes de posição até que o conjunto esteja ordenado.
II.A busca binária exige que o conjunto de dados esteja previamente ordenado para que possa realizar divisões sucessivas do espaço de busca.
III.O Quick Sort baseia-se na técnica de divisão e conquista, utilizando um elemento pivô para particionar o vetor em subvetores menores.

Está CORRETO o que se afirma em:
Alternativas
Q4193144 Algoritmos e Estrutura de Dados
A construção de expressões aritméticas e lógicas exige a compreensão da ordem de precedência e da tipagem dos dados envolvidos no cálculo. Acerca do assunto, registre V, para as afirmativas verdadeiras, e F, para as falsas:

(__)As expressões que utilizam o operador de módulo resultam no resto da divisão inteira entre dois valores numéricos.
(__)A concatenação de strings em expressões algorítmicas altera o valor numérico dos caracteres de acordo com a tabela Unicode.
(__)O uso de parênteses em expressões complexas permite ao desenvolvedor alterar a ordem natural de execução das operações.
(__)Expressões aritméticas que envolvem números inteiros e reais resultam em um valor real devido à promoção implícita de tipos.

Após análise, assinale a alternativa que apresenta a sequência correta dos itens acima, de cima para baixo:
Alternativas
Q4193143 Algoritmos e Estrutura de Dados
O uso de representações gráficas auxilia na visualização da lógica de um algoritmo antes da codificação em uma linguagem específica. No que diz respeito aos símbolos padronizados utilizados em fluxogramas e diagramas de bloco, assinale a alternativa correta.
Alternativas
Q4193136 Algoritmos e Estrutura de Dados
As estruturas de controle de fluxo determinam o caminho que a execução do programa seguirá com base em condições ou necessidades de iteração. Considerando as características de funcionamento das estruturas condicionais e de repetição, analise as afirmativas a seguir:

I.A estrutura de seleção múltipla (caso-seja) permite testar o valor de uma variável contra diversos valores constantes de forma organizada.
II.O laço de repetição "enquanto" realiza a verificação da condição de parada antes da execução do bloco de comandos interno.
III.A estrutura "para" é indicada para situações onde o número de iterações é desconhecido e depende de um evento externo ao laço.

Está CORRETO o que se afirma em: 
Alternativas
Q4193134 Algoritmos e Estrutura de Dados
A recursividade é um conceito fundamental em ciência da computação, em que uma função chama a si mesma para resolver instâncias menores do mesmo problema. No que se refere à estrutura e aos riscos do uso de funções recursivas, assinale a alternativa CORRETA.
Alternativas
Q4186039 Algoritmos e Estrutura de Dados
Considere as afirmações abaixo referentes a algoritmos de ordenação e, em seguida, assinale a alternativa correta.

I. O tempo de execução no pior caso do algoritmo Merge-Sort é Θ(n log n).

PORQUE

II. O procedimento MERGE executa Θ(n) operações ao combinar as duas metades, gerando a recorrência T(n)=2T(n/2)+Θ(n), cuja solução é Θ(n log n).
Alternativas
Q4186037 Algoritmos e Estrutura de Dados
Preencha as lacunas abaixo, identificando as informações correspondentes às tabelas de espalhamento (hash).

Em hashing com encadeamento (separate chaining), armazenando n chaves em uma tabela de tamanho m, o fator de carga α é definido por α = _______________. Para uma função hash que aproxima hashing uniforme simples, o tempo médio esperado de uma operação de busca bem-sucedida é O(1 + ________________).

A sequência que preenche corretamente as lacunas é:
Alternativas
Q4186036 Algoritmos e Estrutura de Dados
Considere as afirmações abaixo referentes a uma árvore de busca binária T com n nós e, em seguida, assinale a alternativa correta.

I. Um percurso em ordem (INORDER-TREE-WALK) em T imprime (ou produz) as chaves em ordem crescente (não decrescente).

PORQUE

II. O tempo de execução do procedimento INORDER-TREE-WALK é O(n2), pois sua complexidade não depende apenas do número total de nós processados. 
Alternativas
Respostas
21: A
22: D
23: C
24: D
25: B
26: B
27: C
28: A
29: A
30: D
31: C
32: B
33: A
34: B
35: B
36: C
37: D
38: A
39: D
40: C