Geral Múltipla Escolha

Seja o trecho de programa a seguir, desenvolvido na linguagem C#: Registro1 = X.ReadLine(); while (Registro1 != null) { Registro2 = X.ReadLine(); Console.WriteLine("Nome.........: {0}", Registro1); Console.WriteLine("Telefone.....: {0}", Registro2); Registro1 = X.ReadLine(); } Sejam também as afirmativas: X é um objeto do tipo StreamReader A condição (Registro1 != null) serve para testar se já chegou ao fim do arquivo Registro1 e Registro2 é do tipo int Indique a alternativa correta:

Seja o trecho de programa a seguir, desenvolvido na linguagem C#:

Registro1 = X.ReadLine();
while (Registro1 != null) {
Registro2 = X.ReadLine();
Console.WriteLine("Nome.........: {0}", Registro1);
Console.WriteLine("Telefone.....: {0}", Registro2);
Registro1 = X.ReadLine();
}

Sejam também as afirmativas:

  1. X é um objeto do tipo StreamReader
  2. A condição (Registro1 != null) serve para testar se já chegou ao fim do arquivo
  3. Registro1 e Registro2 é do tipo int

Indique a alternativa correta:

  1. As afirmativas 1 e 2 estão corretas.
  2. As afirmativas 1 e 3 estão corretas.
  3. Apenas a afirmativa 2 está correta.
  4. As afirmativas 2 e 3 estão corretas.

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - As afirmativas 1 e 2 estão corretas.

Análise da Questão

Para resolver este problema, precisamos entender como funciona a leitura de texto em C#, especificamente utilizando a classe StreamReader. Vamos analisar cada afirmativa individualmente baseada no trecho de código apresentado.

1. Tipo do Objeto X

O código utiliza o método X.ReadLine().

  • StreamReader: É a classe padrão para ler dados sequenciais de um fluxo (stream) de entrada. Seu método principal para leitura linha a linha é exatamente ReadLine().
  • StreamWriter: É usado para escrever dados. Ele possui o método WriteLine(), mas não ReadLine().

Portanto, a afirmativa 1 está correta, pois X deve ser um objeto da classe StreamReader (ou de uma classe base compatível como TextReader) para executar o comando de leitura.

2. Condição do Laço While

O laço é definido como: while (Registro1 != null).

  • Na leitura de arquivos, quando o método ReadLine() atinge o fim do arquivo (End Of File - EOF), ele não lança exceção nem retorna uma string vazia; ele retorna null.
  • Essa verificação é a forma padrão de garantir que o programa pare de tentar ler linhas que não existem mais.

Logo, a afirmativa 2 está correta, pois essa condição testa efetivamente se já se chegou ao fim do arquivo.

3. Tipos das Variáveis

Vamos observar como as variáveis são declaradas implicitamente ou usadas:

  • Registro1 = X.ReadLine(); \rightarrow Retorna uma String.
  • Registro2 = X.ReadLine(); \rightarrow Retorna uma String.

Embora o código imprima "Telefone", o valor lido continua sendo texto até que seja convertido explicitamente (usando métodos como int.Parse() ou Convert.ToInt32()). Como não há conversão visível no código, ambas as variáveis são do tipo string.

Dessa forma, a afirmativa 3 está incorreta, pois afirma que Registro2 é do tipo int.

Conclusão

Somente as afirmativas 1 e 2 descrevem corretamente o comportamento do código fornecido.

  • Afirmativa 1: Correta (Método ReadLine pertence ao StreamReader).
  • Afirmativa 2: Correta (Retorno null indica fim do arquivo).
  • Afirmativa 3: Incorreta (Ambos são string).

Isso confirma que a Alternativa A é a resposta certa.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Geral

Ver mais Geral resolvidas

Tem outra questão de Geral?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.