Questão nº 34

Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 34)

FCC2022Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Ever comentário ↓

Considere o programa em linguagem C abaixo, que deve ser executado em condições ideais.

```c
#include <stdio.h>
#define MAX 5
int j=0, vet[MAX] = {7, 5, 8, 15, 10};
int main() {
printf("\nVetor normal\n");
for
I
printf("vet[%i]= %i ", j,vet[j]);
for
II
printf("vet[%i]= %i ", j,vet[j]);
return 0;
}
```

Para que a saída do programa seja:

```
Vetor normal
vet[0]= 7 vet[1]= 5 vet[2]= 8 vet[3]= 15 vet[4]= 10
Vetor invertido
vet[4]= 10 vet[3]= 15 vet[2]= 8 vet[1]= 5 vet[0]= 7
```

As lacunas I e II devem ser preenchidas, correta e respectivamente, por:

Resposta comentada

Gabarito Alternativa E

Um laço for em C é uma estrutura de repetição que permite executar um bloco de código várias vezes, controlando o número de repetições através de uma variável de controle que é inicializada, testada por uma condição e atualizada a cada iteração. Para percorrer um array (uma coleção de elementos do mesmo tipo) de tamanho N, os índices válidos vão de 0 a N-1.

(A) Incorreta: O primeiro laço (I) começa j em 1 (ignorando vet[0]) e a condição j <= MAX tenta acessar vet[MAX], que está fora dos limites do array. O segundo laço (II) começa j em MAX (fora dos limites) e a chamada printf está sintaticamente incorreta na parte de inicialização do for.
(B) Incorreta: O segundo laço (II) tenta colocar a chamada printf na parte de incremento/decremento do for (j--; printf(...)), o que é sintaticamente inválido para o propósito de imprimir uma mensagem única antes do laço.
(C) Incorreta: O primeiro laço (I) tem a condição j <= MAX, o que tenta acessar vet[MAX] (fora dos limites). O segundo laço (II) começa j em MAX (fora dos limites) e a chamada printf está sintaticamente incorreta na parte de inicialização do for.
(D) Incorreta: O segundo laço (II) não inicializa j corretamente para a inversão (deveria ser MAX-1) e tenta colocar a chamada printf na parte da condição do for (j >= 0, printf(...)), o que faria a mensagem ser impressa a cada iteração, além de ser uma construção incomum e confusa para o objetivo.
(E) Correta: O primeiro laço (I) (; j < MAX; j++) está correto: j já é 0 (global), a condição j < MAX (0 a 4) é ideal para percorrer o vetor do início ao fim, e j++ incrementa o índice. O segundo laço (II) (printf("\n\nVetor invertido\n"), j=MAX-1; j >= 0; j--) utiliza o operador vírgula na inicialização para primeiro imprimir a mensagem "Vetor invertido" e depois inicializar j com MAX-1 (4), que é o último índice válido do vetor. A condição j >= 0 e o decremento j-- garantem que o vetor seja percorrido do último ao primeiro elemento, gerando a saída desejada.

Fonte: FCC TRT17 2022 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho