Considere o programa na linguagem C: #include <stdio.h&g...

Próximas questões
Com base no mesmo assunto
Q2039257 Programação
Considere o programa na linguagem C:
#include <stdio.h> int main() {    int array[10] = {1, -2, 3, -4};    int a, loop;    a = 0;    for(loop = 1; loop >= 0; loop--) {    a = a + array[loop];    }    printf(" %d", a);    return 0; }
Ao executarmos o programa, o valor da saída será: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: A - −1

Para resolver essa questão, é necessário entender como funciona a linguagem de programação C, especialmente a manipulação de arrays e o controle de fluxo com laços de repetição.

O programa em C apresentado inicia incluindo a biblioteca stdio.h, essencial para realizar operações de entrada e saída, como a função printf usada mais adiante. A função main() é o ponto de entrada do programa. Dentro dela, é declarado um array de inteiros chamado array com espaço para 10 elementos, mas apenas os primeiros 4 são inicializados explicitamente. Os elementos restantes do array são automaticamente inicializados com o valor 0 em C.

O array tem a seguinte configuração inicial:

  • array[0] = 1
  • array[1] = -2
  • array[2] = 3
  • array[3] = -4
  • array[4] a array[9] = 0 (inicialização automática)

A variável a é inicializada com o valor 0, e em seguida um laço for é iniciado com a variável loop tendo o valor inicial de 1. O laço de repetição continuará enquanto o valor de loop for maior ou igual a 0, e a cada iteração loop é decrementado em 1. A lógica dentro do laço soma o valor do elemento do array, indexado por loop, na variável a.

Isso resulta nas seguintes operações:

  • Primeira iteração: a = 0 + array[1], então a = 0 - 2, e agora a = -2.
  • Segunda iteração: a = -2 + array[0], então a = -2 + 1, e agora a = -1.

Após a segunda iteração, loop é decrementado para -1, o que faz com que o laço seja encerrado. Portanto, o valor final de a é -1, e é isso que é impresso na tela pela função printf. Por essa razão, a alternativa correta é a letra A.

É fundamental um bom entendimento sobre arrays, laços de repetição e a inicialização de variáveis em linguagem C para resolver essa questão adequadamente.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo