SóProvas


ID
1429267
Banca
CESGRANRIO
Órgão
IBGE
Ano
2013
Provas
Disciplina
Programação
Assuntos

using System;

public class Prova
 {
     public static void Main ( )
     {

          int [ ] a =new int[10];
          int i =0;

          while ( i<10) {
                a [i] = i + ( i >0 ? a[i-1] : 0);
                 i ++ ;
          }

          Console.WriteLine (a [ 9] );
   }
}

O que ocorre com o programa C#, apresentado acima, quando é compilado e posteriormente executado?

Alternativas
Comentários
  • Gabarito: A

    Esta é uma ótima questão para relembrarmos o funcionamento dos arrays e do operador condicional ternário.

    Primeiramente é declarado um array ‘a’ de inteiros, com 10 posições;

    Em seguida é declarada a variável auxiliar ‘i’ também inteiro e inicializada com o valor 0 (Lembre-se que o primeiro índice dos vetores é 0 e não 1, então o vetor de tamanho dez irá de a[0] até o a[9]). O loop while irá preencher o vetor ‘a’.

    A expressão do ternário é a seguinte: i > 0 ? a[i-1] : 0.

    Então na primeira iteração, o resultado é falso, será retornado o valor da segunda expressão 0.

    a[0] = 0 + 0 => 0.

    Nas próximas iterações, a condição do ternário será verdadeira (i>0), o vetor receberá o valor do índice somado ao valor guardado na posição anterior a[i-1].

    a[1] = 1 + a[0] = 1 + 0 => 1.

    a[2] = 2 + a[1] = 2 + 1 => 3.

    a[3] = 3 + a[2] = 3 + 3 => 6.

    a[4] = 4 + a[3] = 4 + 6 => 10.

    a[5] = 5 + a[4] = 5 + 10 => 15.

    a[6] = 6 + a[5] = 6 + 15 => 21.

    a[7] = 7 + a[6] = 7 + 21 => 28.

    a[8] = 8 + a[7] = 8 + 28 => 36.

    a[9] = 9 + a[8] = 9 + 36 => 45.

    O array está completo, e o loop while chega ao fim (i=10). E o valor impresso será o valor de a[9] = 45.