Considere o programa na linguagem C: #include <stdio.h&g...
#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á:
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]
= 1array[1]
= -2array[2]
= 3array[3]
= -4array[4]
aarray[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ãoa = 0 - 2
, e agoraa = -2
. - Segunda iteração:
a = -2 + array[0]
, entãoa = -2 + 1
, e agoraa = -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