Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — Instituto Excelência 2018

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq379748
Banca
Instituto Excelência
Órgão
Prefeitura de São Carlos - SP
Ano
2018
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considerando as operações básicas e linguagens de execução, realize a análise do fragmento de código e complete com a alternativa que possui a o código referente a linha 3 e 8.1. void Vector01(int data[], int size) 2.{ 3.______________________ 4.for(j=size-1; j<=1; j--) 5.{ 6. for(i=0; i>j; i++) 7. { 8. ______________________ 9. { 10. aux=data[i]; 11. data[i]=data[i+1]; 12.data[i+1]=aux; 13. } 14. } 15. } 16. }
  1. A“init all” e “if(data[j] = data[j+1])”
  2. B"int aux, i, j;" e "if(data[i] > data[i+1])"
  3. C"data[i+1]=aux;" e "for(i=1; i>j; i++)"
  4. D”int data” e “if(data = data +1 )”
  5. ENenhuma das alternativas.
Revelar gabarito e comentário

GabaritoB — "int aux, i, j;" e "if(data[i] > data[i+1])"

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Algoritmo de ordenação Bubble Sort – Preenchimento de lacunas

Gabarito: letra B. O fragmento de código implementa o algoritmo Bubble Sort (ordenação por bolha). A linha 3 deve declarar as variáveis utilizadas nos laços e na troca: int aux, i, j;. A linha 8 deve conter a condição que verifica se os elementos devem ser trocados, comparando o elemento atual com o próximo: if(data[i] > data[i+1]) (para ordenação crescente). A alternativa B atende exatamente a esses requisitos.

A banca testa o conhecimento de um algoritmo clássico e a sintaxe básica para declaração de variáveis e estruturas condicionais. Observe que o código apresenta um erro nos laços (condições j<=1 e i>j), mas isso não interfere na escolha das lacunas pedidas, que são independentes da lógica de repetição.

Linha

Código Correto (Alternativa B)

Função no Algoritmo Bubble Sort

3

int aux, i, j;

Declara as variáveis inteiras aux (para troca), i e j (para os laços de repetição).

8

if(data[i] > data[i+1])

Condição que verifica se o elemento atual é maior que o próximo; se sim, executa a troca (ordenação crescente).

Alternativa A — ❌ Incorreta

"init all" não é uma declaração válida em C (a linguagem sugerida pelo código). Além disso, a condição if(data[j] = data[j+1]) usa = (atribuição) em vez de == (comparação) e compara índices com j, enquanto o laço interno usa o índice i. Totalmente inadequada.

Alternativa B — ✅ Correta ⟵ GABARITO

"int aux, i, j;" declara as três variáveis inteiras necessárias: i e j para os laços, aux para a troca. "if(data[i] > data[i+1])" é a condição típica do Bubble Sort: verifica se o elemento na posição i é maior que o próximo, e em caso positivo executa a troca (linhas 10–12).

Alternativa C — ❌ Incorreta

"data[i+1]=aux;" é uma atribuição que já faz parte da troca (linha 12), não é a linha 8 que deve ser a condição. A segunda parte "for(i=1; i>j; i++)" seria um novo laço dentro do laço interno, o que não faz sentido e quebraria a estrutura.

Alternativa D — ❌ Incorreta

"int data" redeclararia o parâmetro data, causando erro de compilação. A condição "if(data = data +1 )" é uma atribuição e comparação incorreta, além de não fazer sentido no contexto.

Alternativa E — ❌ Incorreta

Como a alternativa B está correta, a opção "Nenhuma das alternativas" é falsa.

NÃO CAIA NESSA!

A banca confunde o candidato com opções que usam nomes de variáveis errados ou operadores de atribuição no lugar de comparação. Fique atento: no Bubble Sort, a condição de troca sempre compara data[i] com data[i+1] (ou ao contrário, dependendo da ordem).

Gabarito: letra B.

Link permanente: /questoes/qq379748