Analisando o código C# apresentado abaixo, marque a alternat...

Próximas questões
Com base no mesmo assunto
Q1760408 Programação

Analisando o código C# apresentado abaixo, marque a alternativa que indica, corretamente, o resultado que será apresentado no console após sua execução.


using System;

namespace PrimeiroProjeto {

class Program {

static void Main(string[] args) {

int y = 32;

int w = y++;

double z = 100 % 70;

string x = "Maria";

Console.WriteLine("{0} tem {1} anos e saldo de {2:F2} reais", x.ToUpper(), ++y + ++w, z);

}

}

}

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - MARIA tem 67 anos e saldo de 30,00 reais.

Para resolver esta questão, precisamos entender como o C# lida com operações e incrementos de variáveis, bem como a formatação de strings.

O código apresenta inicialmente a declaração e atribuição de variáveis:

  • A variável y é inicializada com o valor 32.
  • A variável w é atribuída o valor da variável y e depois y é incrementado (y++). Isso significa que w terá o valor 32 e y passará a ser 33.
  • A variável z recebe o resultado da operação de módulo (100 % 70), que resulta em 30, pois 100 dividido por 70 deixa um resto de 30.
  • A variável x é uma string com o conteúdo "Maria".

Na linha do Console.WriteLine, temos a formatação de uma string que contém chamadas a métodos e incrementos pré-fixados:

  • O método x.ToUpper() transforma a string "Maria" em maiúsculas, ficando "MARIA".
  • O incremento pré-fixado (++y) adiciona 1 ao valor atual de y antes de usá-lo na expressão, resultando em 34.
  • Similarmente, o incremento pré-fixado (++w) adiciona 1 ao valor atual de w antes de usá-lo, resultando em 33.
  • Assim, a idade calculada será 34 + 33 = 67.
  • A variável z, como já calculado, é 30. A formatação {2:F2} indica que o número deve ser formatado com duas casas decimais, mantendo-se como 30,00.

Combinando todas essas operações e formatações, a saída correta no console é "MARIA tem 67 anos e saldo de 30,00 reais", o que corresponde à alternativa A.

Clique para visualizar este gabarito

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

Comentários

Veja os comentários dos nossos alunos

em "int w = y++;" w recebe o valor de 32 e y passa a ser 33 pois é uma operação de pós-incremento, ou seja atribui-se e depois realiza a operação. Já em "double z = 100 % 70;" temos o resto da divisão inteira, no caso z recebe 30. Aqui temos uma atribuição simples string "x = "Maria";", e por fim em "x.ToUpper(), ++y + ++w, z" o valor x é convertido para upper case, o valor dos pós-incrementos de y e w, respectivamente 34 e 33, são somados, e por fim após todos os processamentos necessários os valores de cada um deles é substiruído dentro da string de acordo com sua posição.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo