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.151 questões encontradas
Questões por página
20
Mais recentes
 

A lógica matemática é uma área de estudo que utiliza sistemas formais para representar, analisar e inferir informações sobre o mundo real. As funções de avaliação são uma parte importante da lógica matemática, pois permitem avaliar se uma fórmula lógica resulta em um retorno verdadeiro ou falso. Considere a seguinte fórmula lógica e seu respectivo conjunto de atribuições de variáveis:


Fórmula lógica:

∀x (P(x) Q(x))


Conjunto de atribuições de variáveis:

P(x)={a, b, c}, Q(x)={b, c, d}


Analise o pseudocódigo abaixo, que tenta retornar a verdadeiro ou falso para a fórmula lógica usando as atribuições de variáveis fornecidas:


função avaliar_fórmula(P, Q)

para cada elemento x em P

se x está em P e x não está em Q

retornar falso

retornar verdadeiro


Qual é o resultado da execução do algoritmo, considerando o contexto descrito na questão?


A

Não é possível avaliar a fórmula lógica usando o pseudocódigo fornecido.


B

Verdadeiro.


C

Falso.


D

Indeterminado.


E

O pseudocódigo é inválido.

Considere em um algoritmo o tempo de execução T(n) do pior caso da ordenação por intercalação para n números. Sabe-se que há a demora de um tempo constante para a ordenação por intercalação de um único elemento. Nas situações em que n > 1, o tempo de execução deve ser detalhado. Em uma das etapas, calcula-se o ponto médio do arranjo, o que demora um tempo constante, ou seja:


A

D(n) < Θ(1).


B

D(n) = Θ(1).


C

D(n) = Θ(0).


D

D(n) > Θ(0..n).


E

D(n) = Θ(n).

O algoritmo abaixo mostra o uso de passagem de parâmetros por referência de CRT para PCRT e por valor de NUM para PNUM e de VLG para PVLG.


algoritmo "UFU"

var

CRT : caractere

VLG : logico

NUM : inteiro

procedimento PROC23 (PNUM: inteiro;var PCRT caractere; PVLG: logico)

inicio

PVLG <- FALSO

PCRT <- "BELA VISTA"

PNUM <- 69

fimprocedimento

inicio

VLG <- VERDADEIRO

CRT <- "SANTO ANTÔNIO”

NUM <- 57

PROC23 (NUM, CRT, VLG)

se NUM MOD 2 = 1 entao

CRT <- "ESTRELA DALVA"

fimse

escreval (VLG," ",CRT," ",NUM)

fimalgoritmo


Após a execução desse algoritmo, os valores finais das variáveis VLG, CRT e NUM serão, respectivamente,


A

VERDADEIRO, SANTO ANTÔNIO e 69.


B

FALSO, ESTRELA DALVA e 69.


C

VERDADEIRO, ESTRELA DALVA e 57.


D

FALSO, BELA VISTA e 57.


E

VERDADEIRO, BELA VISTA e 57.

É uma definição abstrata, autônoma e lógica de objetos, operadores e outros elementos que, juntos, constituem a máquina abstrata com a qual os usuários (desenvolvedores) interagem e onde pode-se modelar a estrutura e o comportamento dos dados com os objetos e operadores. A definição apresentada refere-se ao(a):


A

Implementação.


B

Estrutura dos dados.


C

Modelo relacional.


D

Representação física.


E

Modelo de dados.

O pseudocódigo apresentado a seguir representa a pesquisa de um elemento em um vetor ordenado, de forma recursiva, segundo o processo conhecido como pesquisa binária.


global var

valores: vetor [1..10] de inteiro

função bin (

pos_ini, pos_fim, x: inteiro

)

var

p, v: inteiro

início

se pos_ini > pos_fim então

retorne -1

senão

p <- (pos_ini + pos_fim) / 2

v <- valores[p]

se v = x então

retorne p

senão

se v < x então

retorne bin (p+1, pos_fim, x)

senão

retorne bin (pos_ini, p-1, x)

fim se

fim se

fim se

fim função


Considere o conjunto {4, 5, 8, 9, 14, 16, 17, 20, 23, 25} no vetor global valores, índice inicial 1 e final 10, e divisão entre inteiros truncando a parte decimal.


Com a chamada bin (1, 10, 20), o retorno da posição do número 20 ocorre após a função bin ser executada, incluindo a chamada inicial:


A

2 vezes;


B

4 vezes;


C

6 vezes;


D

8 vezes;


E

10 vezes.

Marcos é um estudante de programação de computadores e encontrou o algoritmo apresentado a seguir em seus estudos.


algoritmo Marcos

var

i, a: inteiro

v: vetor [1..5] de inteiro

início

a <- 0

para i de 1 até 5 faça:

leia(v[i]);

fim para

para i de 1 até 5 faça:

v[i] <- v[i] + v[6-i]

a <- a + v[i]

fim para

escreva(a)

fim algoritmo


Considerando o vetor com índice inicial 1 e final 5, e utilizando os valores {2, 1, 2, 1, 2}, Marcos obterá a impressão do valor:


A

3


B

8


C

9


D

16


E

19

Algoritmos são o grande coadjuvante da computação. Na computação um programa codifica um algoritmo de modo a ser executado, resolvendo assim, um determinado problema. Sobre este tópico, analise as afirmativas abaixo e de valores Verdadeiro (V) ou Falso (F).


( ) A complexidade de um algoritmo não reflete o esforço computacional requerido para executá- lo. À quantidade de trabalho exercida pelo algoritmo, pode ser dada em termos do tempo de execução ou da quantidade de memória requerida.

( ) Uma das medidas de desempenho de um algoritmo muito importante é o tempo de execução, ou complexidade em tempo.

( ) Tem-se também a complexidade em espaço a qual usa como medida de desempenho a quantidade de memória necessária para a execução de algoritmo.


Assinale a alternativa que apresenta a sequência correta de cima para baixo.


A

F - V - F


B

V - F - V


C

F - V - V


D

V - V - V

Observe a imagem a seguir.


1 lista_numeros = [1, 2, 3, 4, 5]

2 nova_lista_numeros = [x * 2 for x in lista_numeros if x % 2 == 0]

3 print(nova_lista_numeros)


A saída esperada para o código apresentado é:


A

[2, 4, 6, 8, 10]


B

[2, 4]


C

[1, 2, 3, 4, 5]


D

[4, 8]

O algoritmo da figura mostra o uso da estrutura de controle “enquanto ... fimenquanto” que gera um resultado único.

algoritmo "UFFS"

var

R : caracter

K : inteiro

inicio

R <- "FRONTEIRA"

K <- -2

enquanto K < 2 faca

K <- K+1

escreval(R:19,K:4)

fimenquanto

fimalgoritmo

O código equivalente que gera o mesmo resultado, mas que usa a estrutura de controle “repita ... fimrepita”, está indicado na opção:


A

K < - -2

repita

K <- K+1

escreval (R : 19,K:4)

ate K > 2

fimrepita


B

K < - -2

repita

K < - K+1

escreval (R:19,K : 4)

ate K < 2

fimrepita


C

K <- -2

repita

K <- K+1

escreval (R : 19 , K : 4)

ate K = 2

fimrepita


D

K <- -2

repita

K < - K+1

escreval (R : 19 , K : 4)

ate K = 1

fimrepita


E

K <- -1

repita

K <- K + 1

escreval (R : 19 , K : 4)

ate K = 2

fimrepita

Algoritmos de ordenação são técnicas fundamentais na área da computação e são utilizados para organizar e ordenar coleções de dados, como listas ou arrays, de acordo com critérios específicos. Esses algoritmos têm uma ampla gama de aplicações em sistemas computacionais e são essenciais para a eficiência e eficácia de processos, nas mais diversas áreas do mundo do trabalho. Considere o algoritmo de ordenação ilustrado no pseudocódigo abaixo:


função sort(lista, esquerda, direita)

se esquerda < direita

pivo_index = particionar(lista, esquerda, direita)

sort(lista, esquerda, pivo _index - 1)

sort(lista, pivo_index + 1, direita)


função particionar(lista, esquerda, direita)

pivo = lista[direita] # escolhendo o pivo como último

elemento

i = esquerda - 1

para j de esquerda até direita -1

se lista[j] <= pivo

i=i+ 1

trocar(lista[i], lista[j])

trocar(lista[i + 1 ], lista[direita]) # colocando o pivo em sua

posição correta

retornar i + 1


# Inicializando o algoritmo com os índices apropriados

lista= [valores a serem ordenados]

sort(lista, 0, comprimento(lista)-1)


Qual das alternativas abaixo corresponde ao algoritmo em questão?


A

Heap Sort.


B

Bubble Sort.


C

Merge Sort.


D

Counting Sort.


E

Quick Sort.

function sum_elements(list) {

let total = 0;

for (let i=1; I<list.length; i++){

total+=list[i];

}

console.log(total)



No bloco de código acima, qual será o valor mostrado no console, após o término da estrutura de repetição, caso a função recebesse o parâmetro [ 1, 2, 3, 4, 5 ]?


A

10


B

14


C

15


D

9


E

o console mostraria um erro

let result = 1000

while (true) {

console.log(result);

result -= 1;

if (result == 0) {

console.log(result);

break;

}

}

Analisando o bloco de código acima, qual a explicação correta sobre seu funcionamento?


A

O bloco de código roda apenas 1x, pois a condição do bloco if é true


B

O bloco de código vai diminuindo o valor de result até que seu valor seja 0 e imprimindo na tela o valor atual do mesmo


C

O bloco de código não roda, pois há um erro estrutural


D

O bloco de código roda aumentando o valor da variável result enquanto seu valor for diferente de 0


E

O bloco de código multiplica o valor de result por ele mesmo enquanto seu valor for diferente de 0

Os parâmetros que são passados para uma função de um programa são denominados parâmetros reais, enquanto que os parâmetros recebidos por uma função são denominados parâmetros formais. Neste contexto, em uma chamada de função por valor, os valores dos parâmetros reais


A

são copiados para os parâmetros formais da função, e as alterações nestes efetuadas dentro da função refletem-se em alterações nos parâmetros reais.


B

são copiados para os parâmetros formais da função, e as alterações nestes efetuadas dentro da função não implicam em alterações nos parâmetros reais.


C

não são copiados para os parâmetros formais da função, e as alterações efetuadas nestes dentro da função, refletem-se em alterações nos parâmetros reais.


D

não são copiados para os parâmetros formais da função, e as alterações efetuadas nestes dentro da função, não implicam em alterações nos parâmetros reais.


E

não são copiados para os parâmetros formais da função, e esta não pode realizar alterações em seus parâmetros formais.

Analise o programa a seguir, apresentado na forma de uma pseudolinguagem (português estruturado).

Início

Inteiro: c, d, e, k, Z;

c ← 5;

d ← 5;

e ← 10;

Para k de 1 até 4 faça

[

Se ( (c+d) > e )

Então

[

c ← c-1;

d ← d-2;

]

Senão

[

e ← e-2;

]

]

Z ← c - d + e;

Fim.

O valor da variável Z impresso ao final da execução desse programa será:


A

6


B

7


C

8


D

9


E

10

Considere o seguinte programa, na forma de uma pseudolinguagem (português estruturado).

Início

Inteiro: p, q, S, cont;

p ← 5;

q ← 3;

Para cont de 1 até 5 faça

[

Se (p+q) > 2*p

Então

p ← p-1;

Senão

q ← q+2;

]

S ← p + q;

Fim.

Ao final da execução desse programa, o conteúdo da variável S será:


A

8.


B

9.


C

10.


D

11.


E

12.

Assinalar a alternativa que preenche as lacunas abaixo CORRETAMENTE:


Sobre as estruturas de repetição utilizadas em algoritmos de programação, quando o número de repetições não é fixo, pode-se utilizar a estrutura _________, nela, sempre se testa a condição no início e, sempre que ela resultar em __________, o comando ou bloco dentro da estrutura é executado.


A

for | verdadeiro


B

for | falso


C

while | falso


D

while | verdadeiro

A maior parte das pessoas não ligadas à área de informática ignoram o potencial dos computadores e imagina que eles são capazes de tratar apenas com dados numéricos. As informações tratadas em um algoritmo podem ser classificadas em dois tipos: Variáreis e Constantes. Acerca das variáveis, assinale a alterativa incorreta.


A

O conteúdo de uma variável deverá ser um dado do tipo usado na sua criação.


B

O conteúdo de uma variável é substituído por outro conteúdo que lhe venha a ser atribuído.


C

É possível nomear uma variável sem qualquer restrição sintática.


D

O uso do nome de uma variável em uma expressão significa o uso do seu conteúdo(naquele momento) dentro da expressão.


E

O uso de um conteúdo de variável em uma expressão não modifica o seu valor.

As variáveis de programação são fundamentais para o dia a dia do programador. Elas orientam o programa a executar operações. Uma variável em um programa é definida como


A

um valor fixo.


B

um local na memória para armazenar dados.


C

uma palavra-chave reservada.


D

um comando executável.

Considere o algoritmo a seguir:


Imagem associada para resolução da questão


Assinale a alternativa que corresponde à apresentação do problema.


A

Dados três valores numéricos distintos, colocá-los em ordem decrescente.


B

Dados três valores numéricos distintos, colocá-los em ordem crescente.


C

Dados três valores alfanuméricos distintos, colocá-los em ordem alfabética crescente.


D

Dados três valores numéricos distintos, colocá-los em ordem aleatória.


E

Dados três valores alfanuméricos distintos, colocá-los em ordem alfabética decrescente.

 
Ir para a página:
OK
 
Gerar simulado