Questões de Concurso sobre Algoritmos e estrutura de dados - Página 33 | Gran Questões

Questões de Concurso sobre Algoritmos e estrutura de dados

 
 
Disciplina 1
Assunto 10
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
2.152 questões encontradas
Questões por página
20
Mais recentes
 

Há uma diferença entre o código fonte que você escreve e as instruções que a máquina compreende. Para tanto o código fonte deve ser traduzido para linguagem de máquina e, em alguns casos ainda passa por um programa que cria as ligações entre os módulos e acrescenta as sub-rotinas fornecidas pelo sistema operacional. Esse programa é chamado de:


A

interpretador.


B

compilador.


C

compactador.


D

linkeditor.


E

tradutor.

Analise o algoritmo a seguir.


public static void ordenar(int[] vetor) {

int chave;

int i;

int x;


for (x = 1; x < vetor.length; x++)

{

chave = vetor[x];


for (i = x - 1; (i >= 0) && (vetor[i] > chave); i--)

{

vetor[i + 1] = vetor[i];

}

vetor[i + 1] = chave;

}

}


É correto afirmar que o algoritmo acima representa ordenação:


A

pelo método bolha (bubble sort).


B

rápida (quicksort).


C

em Heap (heapsort).


D

pelo método de intercalação (Mergesort).


E

por inserção.

Assinale a alternativa que contenha o algoritmo que irá armazenar oito números em um vetor, imprimir todos os números digitados e quantidade de números múltiplos de seis que foram inseridos:


A
Imagem associada para resolução da questão

B
Imagem associada para resolução da questão

C
Imagem associada para resolução da questão

D
Imagem associada para resolução da questão

E
Imagem associada para resolução da questão

Um código reentrante tem a seguinte característica:


A

é gerado a partir da compilação de um código escrito em uma linguagem de programação.


B

é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica utiliza.


C

é um trecho de código escrito de forma que possa ser compartilhado por diversos programas ao mesmo tempo.


D

é o conjunto de palavras ou símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica.


E

é uma sequência de código entre a linguagem de alto nível e a linguagem assembly representando, de forma independente do processador para o qual o programa será gerado, todas as expressões do programa original.

O algoritmo a seguir ilustra o emprego de uma função recursiva.


algoritimo "BV"

var

N : inteiro

funcao RR (X:inteiro;Y:inteiro):inteiro

inicio

se ( X = Y ) OU ( X = 0 ) entao

retorne 1

senao

retorne RR (X-1,Y) + RR (X-1,Y-1)

fimse

fimfucao

inicio

N < - 4

escreval(RR(N,N-1))

fimalgoritmo


Após a chamada RR(N,N-1), a função retornará um valor igual a:


A

6


B

5


C

1


D

0

A notação “O” que determina ordem de complexidade e eficiência de um algoritmo pode ser formalizada como se segue:

Se existirem m inteiro e c constante tais que

Para uma entrada n e um tempo T, melhorias substanciais podem ser obtidas ao utilizarmos diferentes algoritmos. Assinale a alternativa correta com relação ao tempo de execução, para uma mesma entrada (n), porém utilizando algoritmos diferentes.

Considere as seguintes ordens de complexidade no tempo:

T1(n) = n, T2(n) = nlogn, T3(n) = n² , T4(n) = 2n


A

T2< T3


B

T3< T1


C

T4< T3


D

T1> T4


E

T1> T2

algoritmo

anterior, seguinte, auxiliar, valor, contador

: inteiro;

início

anterior 1;

seguinte 1;

escreva (anterior, seguinte)

para contador de 1 até valor passo 1 faça

auxiliar anterior + seguinte;

escreva ( auxiliar );

anterior seguinte;

seguinte auxiliar;

fim-para

fim


Considerando o algoritmo apresentado, assinale a opção que indica o conteúdo da variável valor para que seja apresentado o seguinte resultado.

1 1 2 3 5 8 13 21 34 55 89 144 233


A

4


B

10


C

11


D

13


E

233

Analise as imagens abaixo de representação de um algoritmo:



Imagem associada para resolução da questão


Essas imagens representam, respectivamente:


A

Fluxograma e Pseudocódigo.


B

Pseudocódigo e Fluxograma.


C

Fluxograma e Diagrama de Chapin.


D

Diagrama de Chapin e Pseudocódigo.


E

Algoritmo BPM e Fluxograma.

Abaixo tem-se uma tabela que ilustra o conjunto de nós de uma lista duplamente encadeada, contendo o total de 5 nós.


elemento

anterior

próximo

conteúdo

1

3

4

?

2


5

?

3

5

1

?

4

1


?

5

2

3

?


Ao imprimir a estrutura na ordem correta, o conteúdo apresentado será I – F – S – P – 2019, dessa forma, assinale a alternativa que contém os dados que preenchem, corretamente, a coluna “conteúdo”, de cima para baixo.


A

P – I – S – 2019 – F


B

2019 – P – S – F – I


C

S – P – I – F – 2019


D

S – I – F – 2019 – P

Um dispositivo de lógica programável tipo FPGA possui uma memória não volátil externa (dataflash) que pode ser gravada por uma interface especial. Essa memória também é conectada aos terminais da FPGA destinados a inicialização (boot) da mesma. A respeito dessa memória, é correto afirmar que ela desempenha, para a FPGA, o papel fundamental de uma


A

RAM, para armazenamento de variáveis e parâmetros usados durante a partida do algoritmo programado na FPGA.


B

ROM, para armazenamento de variáveis e parâmetros usados durante o funcionamento do algoritmo programado na FPGA.


C

RAM, para depuração e debugging step-by-step da lógica implementada na FPGA.


D

ROM, usada durante a inicialização da FPGA para programar e estabelecer as ligações entre as unidades funcionais da mesma, para implementar a lógica combinatória e sequencial sintetizada.


E

ROM, usada durante o funcionamento da FPGA para que a mesma possa inicializar outros dispositivos externos do circuito, conforme a lógica combinatória e sequencial sintetizada na mesma.

A respeito de algoritmos e estruturas de dados, assinale a alternativa correta.


A

O algoritmo de Dijkstra, usado para encontrar o menor caminho em redes de computadores, utiliza listas circulares como principal estrutura de dados.


B

O MapReduce é um algoritmo de compactação de arquivos que utiliza hash maps como principal artifício para otimização.


C

O Mark-and-Sweep é um algoritmo de gerenciamento de memória que utiliza um grafo como sua principal estrutura de dados.


D

Árvore B é um algoritmo utilizado para indexação em bancos de dados e utiliza árvores binárias como sua estrutura de dados básica.


E

O Round-Robin é um algoritmo de escalonamento que utiliza uma pilha como principal estrutura de dados.

Na programação de um software, deseja-se calcular a média aritmética entre os dois valores maiores em um universo de três números armazenados nas variáveis que suportam números reais a, b e c. A média será armazenada na variável r, que também suporta números reais. Para isso, se propôs o seguinte trecho de algoritmo.

Imagem associada para resolução da questão

O trecho mostrado está


A
correto para o problema proposto.

B
incorreto, pois no lugar de senão se (b<c) deve ser colocado senão se (b<a E b<c).

C
incorreto, pois deve ser usado se (a<b o u a<c) no lugar de se (a<b E a<c).

D
incorreto, pois está faltando uma comparação para verificar se c é menor do que b e a.

E
incorreto, pois não pode haver uma comparação se dentro da outra.

Observe a expressão aritmética: X={20x[100÷(25+25)]}.

Reescreva essa expressão na forma computacional correta.


A

X = (20.(100 / (25+25)))


B

X<- [20*(100:(25+25))]


C

X<- (20*(100 / (25+25)))


D

X = (20.(100 div (25+25)))

Analise as sentenças relacionadas abaixo, retiradas da obra Projeto de algoritmos com implementações em Pascal e C, de Ziviani (1999), acerca de métodos de pesquisa em memória primária.

I - Método de pesquisa para registros ordenados que consiste em comparar a chave com o registro que está no meio da tabela, se a chave é menor, então o registro procurado está na primeira metade da tabela; se a chave é maior, então o registro procurado está na segunda metade da tabela. O processo é repetido até que a chave seja encontrada ou retorne pesquisa sem sucesso.

II - Neste método de pesquisa, podemos implementá-lo de duas maneiras: não-balanceada e balanceada. Ambas possuem nodos, todo nodo interno contém um registro e, para cada nodo, a seguinte propriedade é verdadeira: todos os registro com chaves menores estão à esquerda, e todos os registros com chaves maiores estão à direita.

III - O método de pesquisa mais simples que existe e funciona da seguinte forma: a partir do primeiro registro, pesquise sequencialmente até encontrar a chave procurada ou o fim do registro e, então, pare.

Tais sentenças se referem, respectivamente, aos métodos de pesquisa:


A
Quicksort, em Árvore e Bubblesort.

B
Binário, em Árvore e Sequencial.

C
Árvore, Quicksort e Bubblesort.

D
Bubblesort, Quicksort e Binário.

E
Quicksort, Bubblesort e em Árvore.

Considere o código junto a um interpretador Python:


s = "uma flauta, duas flautas, três flautas"

s.rfind("flauta")

s.find("flauta")

s.find("flautas",1)

s.find("flautas",17)


O retorno em tela será:


A

31, 4, 17, 17.


B

31, 4, 31, 31.


C

31, 4, 17, 31.


D

17, 4, 17, 31.


E

31, 17, 17, 31.

Herança de classes em orientação a objetos necessita de alguns cuidados por parte dos programadores, pois pode gerar ambiguidade quando uma classe herda métodos e atributos de mais de uma classe. Python resolve essa ambiguidade aplicando o algoritmo “MRO” (“Method Resolution Order” – Ordem de Resolução de Método, em tradução livre). A chamada do método “my-func” através da instância “d” da classe “D”, utilizando o algoritmo MRO, resultará no acesso desse método (nas diversas classes) na seguinte ordem:


class A(object):

def my_func(self):

print("Calling this from A")


class B(A):

pass


class C(A):

def my_func(self):

print("Calling this from C")


class D(B, C):

pass


d = D()

d.my_func()

Fonte: https://arvimal.blog/2016/05/30/method-resolution-order-object-oriented-programming/

A

Class D → Class B → Class C, imprimindo “Calling this from C” no terminal.


B

Class D → Class B → Class A, imprimindo “Calling this from A” no terminal.


C

Class D → Class C, imprimindo “Calling this from C” no terminal.


D

Class B → Class A, imprimindo “Calling this from A” no terminal.


E

Class A, imprimindo “Calling this from A” no terminal.

Interfaces funcionais em Java são disponibilizadas através do pacote “java.util.function”. A interface BinaryOperator descreve as operações realizadas entre duas variáveis do tipo T. Ciente disso e do código abaixo, qual será o valor da String s?


BinaryOperator<String> b = (s1, s2) -> {

s1 = s1.substring(0, s1.length()/2) + " " + s2;

return s1;

};

String s = b.apply("Hello", "World");


A

“Hello World”


B

“World”


C

“Hel World”


D

“Hello”


E

“He World”

 
Ir para a página:
OK
 
Gerar simulado