Prévia do material em texto
•
Pergunta 1
1 em 1 pontos
Considere a função a seguir como uma solução recursiva para calcular o resto de uma divisão. Qual
deve ser o retorno dentro do bloco else?
public static int restoRecursivo(int a, int b)
{
if ( critério de parada )
{
return caso base;
}
else
{
return código;
}
}
Resposta
Selecionada:
b.
return restoRecursivo(a - b, b)
Respostas: a.
return b - restoRecursivo(a, b)
b.
return restoRecursivo(a - b, b)
c.
return restoRecursivo(a, a - b)
d.
return a - restoRecursivo(a, b)
e.
return restoRecursivo(b, a)
Comentário da
resposta:
Resposta: b) return restoRecursivo(a - b, b)
O passo indutivo consiste em retirar o valor “b” de “a”, portanto, o novo dividindo deve
ser “a – b” e o divisor (quantidade a ser removida de “a”) permanece “b”. O retorno é
diretamente a chamada recursiva com esses parâmetros, pois, ao se encontrar o
resto, ele deve ser devolvido recursivamente, sem alterações, de volta à chamada
original.
• Pergunta 2
1 em 1 pontos
Quantos passos são executados pela busca linear e pela busca binária, respectivamente, até
encontrar o valor 98 no vetor abaixo?
Vetor = { 5, 10, 12, 38, 45, 61, 65, 69, 81, 89, 98, 100 }
Resposta
Selecionada:
e.
11 e 3
Respostas: a.
3 e 11
b.
4 e 11
c.
11 e 11
d.
11 e 4
e.
11 e 3
Comentário da
resposta:
A busca linear encontra o valor 98 na 11ª posição, necessitando, portanto, de 11
passos. A busca binária primeiro verifica o elemento central de valor 61 na posição 6,
depois verifica o elemento 81 na posição 9, e por fim verifica o elemento 98 na
posição 11.
• Pergunta 3
1 em 1 pontos
Qual o tipo de dado utilizado para iniciar a escrita de um arquivo e o método utilizado para escrever
em cada linha do arquivo?
Resposta
Selecionada:
a.
StreamWriter e WriteLine
Respostas: a.
StreamWriter e WriteLine
b.
StreamWriter e FileWriter
c.
StreamLine e LineWriter
d.
StreamFile e WriteFile
e.
StreamLine e LineWriter
Comentário da
resposta:
Primeiro, deve criar um objeto da classe StreamWriter, e utilizar seu método
WriteLine, passando como argumento o conteúdo a ser escrito na linha atual.
• Pergunta 4
1 em 1 pontos
Qual o tipo de dado utilizado para iniciar a leitura de um arquivo e o método utilizado para ler cada
linha do arquivo?
Resposta
Selecionada:
b.
StreamReader e ReadLine
Respostas: a.
StreamLine e LineReader
b.
StreamReader e ReadLine
c.
StreamFile e ReadFile
d.
StreamLine e LineReader
e.
StreamReader e FileReader
Comentário da
resposta:
Primeiro, deve criar um objeto da classe StreamReader e utilizar seu método
ReadLine para ler a linha atual.
• Pergunta 5
1 em 1 pontos
Considere a função a seguir como uma solução recursiva para calcular o resto de uma divisão. Qual
deve ser o critério de parada, e o retorno desse caso base?
public static int restoRecursivo(int a, int b)
{
if ( critério de parada )
{
return caso base;
}
else
{
return código;
}
}
Resposta
Selecionada:
c.
b > a ; return a
Respostas: a.
(a) a - b ; return b
b.
a a ; return a
d.
b > a ; return b
e.
a – b ; return a
Comentário da
resposta:
Resposta: c) b > a ; return a
A função decrementa um valor de “b” de “a”, a cada recursão (oposto da
multiplicação, que acrescenta). Isso é feito enquanto há um valor de pelo menos “b”
em “a”, e por isso, o critério é “b > a”. Como o decréscimo ocorre em “a”, o valore final
de “a”, na última recursão, é o resto da divisão.
• Pergunta 6
1 em 1 pontos
Como são conhecidos os métodos auxiliares, não recursivos, do MergeSort e do QuickSort,
respectivamente?
Resposta
Selecionada:
a.
Intercalar e Particionar
Respostas: a.
Intercalar e Particionar
b.
Unir e Particionar
c.
Unir e Dividir
d.
Intercalar e Dividir
e.
Unir e Mapear
Comentário da
resposta:
Resposta: a) Intercalar e Particionar
O MergeSort realizar duas chamadas a si mesmo, e mais uma ao método
Intercalar. O QuickSort realiza uma chamada ao método Particionar e duas a si
mesmo.
• Pergunta 7
1 em 1 pontos
Aponte o valor no índice 3 do seguinte vetor:
int[] valores = {5, 3, 7, 6, 2};
Resposta
Selecionada:
d.
6
Respostas: a.
5
b.
3
c.
7
d.
6
e.
2
Comentário da
resposta:
O índice começa pelo valor zero, portanto, o índice 3 corresponde à quarta
posição no vetor, que está preenchida com o valor 6.
• Pergunta 8
1 em 1 pontos
Como é conhecido o erro causado em uma função recursiva quando ela foi mal projetada e sua
execução não alcança um critério de parada?
Resposta
Selecionada:
a.
Loop infinito
Respostas: a.
Loop infinito
b.
Execução instável
c.
Crash
d.
Função sem fim
e.
Iterações repetidas
Comentário da
resposta:
Resposta: a) Loop infinito
Quando o critério de parada nunca é atingido, a função entra em um loop infinito,
criando novas instâncias (chamadas a si mesmo), aumentando a pilha de execução,
podendo ocupar muita memória e levar o programa à falha.
• Pergunta 9
1 em 1 pontos
Observe a seguinte matriz:
int[][] valores = { {0,3,5},{6,0,4},{7,8,0} };
É necessário somar os valores de uma linha, onde não sejam zero, e armazenar o resultado na
posição dessa linha onde esteja o valor zero (preenchendo assim a diagonal principal). Quais seriam
as instruções que resolveriam esse problema?
Resposta
Selecionada:
b.
valores[0,0] = valores[0,1] + valores [0,2];
valores[1,1] = valores[1,0] + valores [1,2];
valores[2,2] = valores[2,0] + valores [2,1];
Respostas: a.
valores[0,0] = valores[1,0] + valores [2,0];
valores[1,1] = valores[0,1] + valores [2,1];
valores[2,2] = valores[0,2] + valores [1,2];
b.
valores[0,0] = valores[0,1] + valores [0,2];
valores[1,1] = valores[1,0] + valores [1,2];
valores[2,2] = valores[2,0] + valores [2,1];
c.
valores[1,1] = valores[2,1] + valores [3,1];
valores[2,2] = valores[1,2] + valores [3,2];
valores[3,3] = valores[1,3] + valores [2,3];
d.
valores[1,1] = valores[1,2] + valores [1,3];
valores[2,2] = valores[2,1] + valores [2,3];
valores[3,3] = valores[3,1] + valores [3,2];
e.
valores[1,1] = valores[1,0] + valores [1,2];
valores[2,2] = valores[2,0] + valores [2,1];
valores[3,3] = valores[3,0] + valores [3,1];
Comentário da
resposta:
O índice (0,0) (valor zero) recebe a soma do índice (0,1) com o índice (0,2). O índice
(1,1) (valor zero) recebe a soma do índice (1,0) com o índice (1,2). O índice (2,2)
(valor zero) recebe a soma do índice (2,0) com o índice (2,1).
• Pergunta 10
1 em 1 pontos
Conforme novas chamadas recursivas são executadas, cada uma dessas instâncias é inserida em
uma estrutura que controla e mantém a ordem de execução de cada chamada. Essa estrutura é
conhecida por:
Resposta
Selecionada:
b.
Pilha de execução
Respostas: a.
Fila de execução
b.
Pilha de execução
c.
Vetor de execução
d.
Matriz de execução
e.
Chamada de execução
Comentário da
resposta:
Resposta: b) Pilha de execução
A estrutura referida no enunciado é a pilha de execução. A chamada original fica na
base da pilha, e cada nova chamada é empilhada acima desta. Quando se alcança o
critério de parada, a última chamada no topo da pilha é encerrada e,
sequencialmente, todas abaixo são encerradas até finalizar a chamada original.
Sábado, 25 de Outubro de 2025 20h47min19s BRT