Analisando o código C# apresentado abaixo, marque a alternat...
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);
}
}
}
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