Buscar

Compilado_POO_QUESTÕES PROVAS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROVA PRESENCIAL- ORIENTAÇÃO A OBJETO 
Compilado - MUTIPLA ESCOLHA 
 
P) A respeito dos conceitos de programação orientada a objetos e da linguagem de 
programação C#, assinale a opção correta: 
a) Na linguagem C# é possível haver polimorfismo apenas por meio de implementação de 
herança entre classes. 
b) Em uma hierarquia de classes na linguagem C#, uma subclasse sobrescreve qualquer 
método da sua superclasse desde que a palavra virtual esteja declarada no método da 
subclasse 
c) Na linguagem C#, os métodos de uma classe que são declarados como virtual 
necessitam que sejam implementados na subclasse. 
d) Na linguagem C# os métodos abstract de classe abstract não tem implementação 
definida. As subclasses dessa classe abstrata definem implementação para tais 
métodos 
e) Na linguagem C#, métodos abstract de classe absctract precisam ser declarados com 
override nas subclasses quando tais métodos são implementados. 
 
P) Sobre a declaração e uso de classes, métodos e atributos especificamente na linguagem 
de programação C#, é correto afirmar que: 
a) Em uma mesma classe pode-se declarar dois métodos que apresentam o mesmo 
nome. 
b) EM um método de uma classe filha, a clausula this é utilizada para acessar um atributo 
da classe mãe. 
c) Uma classe filha não pode sobrepor um método ou atributo da classe mãe se na classe 
mãe eles estiverem com o atributo protected. 
d) Uma classe abstrata pode ser implementada por uma classe concreta através da 
instrução implements. 
e) Uma interface pode ter atributos que podem ser utilizados nas classes herdeiras. 
 
P) Analise as afirmativas a seguir: 
I – Mensagem é uma chamada a um objeto para invocar um de seus métodos, ativando um 
comportamento por sua classe. Também pode ser direcionada diretamente a uma classe 
(atráves de uma invocação .... Estático) 
II – Herança é o mecanismo pelo qual uma classe pode estender outra classe, aproveitando 
seus comportamentos (métodos) e variáveis possíveis (atributos). 
III – Associação é o mecanismo pelo qual um objeto utiliza os recursos de outros. Elas 
podem ter a forma “um-para-um”, quando um objeto troca mensagens com outro, ou 
“um-para-muitos”, quando um objeto troca mensagens com uma coleção de outros objetos 
 
Sobre as afirmativas apresentadas, assinale a alternativa correta: 
a) Somente as afirmativas I e II estão corretas 
b) Somente as afirmativas I e III estão corretas 
c) Somente as afirmativas II e III estão corretas 
d) Somente a afirmativa III está correta 
e) As afirmativas I, II e III estão corretas. 
P) Um objeto pode ser definido como: 
a) Uma instancia de uma classe 
b) Uma característica de uma coisa do mundo real. 
c) Uma função 
d) Uma característica ou comportamento de uma classe 
e) Um trecho do código utilizado apenas em tempo de desenvolvimento. 
 
P) Relacione as palavras-chave da linguagem C# à sua respectiva descrição. 
Palavra-chave: 
I – this 
II – base 
III – throw 
Descrição 
( P ) Usado para gerar um exceção 
( Q ) Em um método construtor, refere-se a superclasse 
A relação correta é: 
a) III – Q, I – P 
b) I – P, III – Q 
c) I – Q, II – P 
d) II – P, III – Q 
e) II – Q, III – P 
 
P) A descrição abaixo refere-se a qual das técnicas apresentadas pelo paradigma de 
Programação Orientada a Objetos 
“É uma forma de reutilização de software na qual uma nova classe é criada, observando 
membros de uma classe existente e aprimorada com capacidades novas ou mesmo 
modificadas de acordo com a necessidade da classe atual” 
a) Polimorfismo 
b) Reutilização de classes 
c) Hereditariedade 
d) Herança 
e) Instanciação 
 
P) Heranças podem ser definidas como: 
a) Ações de uma classe executadas em outra classe. 
b) A possibilidade do uso de uma classe em outra previamente existente reutilizando 
seus métodos e atributos. 
c) Característica de operações de um objeto herdadas de uma classe. 
d) Ações executadas por uma classe, sempre utilizadas em tempo de execução. 
e) A reutilização de todos os métodos de um objeto instanciado a partir de uma classe 
encapsulada e polimórfica. 
 
 
 
P) Entre as principais vantagens da Programação Orientada a Objetos, podemos citar: 
a) Permite aos programadores introduzir programas diretamente na memória do 
computador. 
b) Torna o código da linguagem binaria mais acessível 
c) Torna o projeto mais barato 
d) Torna o sistema mais eficiente no uso de memoria 
e) Tem uma alta usabilidade. 
 
P) Um atributo serve para: 
a) Indicar as possíveis informações armazenadas por um objeto de uma classe, 
representando o estado de cada objeto. 
b) Definir o tipo de classe 
c) Procedimentos que formam os comportamentos e serviços oferecidos por objetos de 
uma classe. 
d) Descrever um objeto. 
e) Comportamentos de uma classe 
 
P) Considere as afirmativas a seguir: 
I – A classe Object pode ser herdeira de qualquer outra classe podendo receber serviços 
das classes pais. Ela suporta todas as classes na hierarquia de classes recebendo serviços 
de baixo nível como herança. 
II – A classe Object é classe base fundamental de todas as classes, ela é a raiz da 
hierarquia de tipos. 
III – Qualquer método da classe Object pode ser sobrescrito nas subclasses utilizando o 
modificador virtual. 
 
Podemos afirmar que: 
a) Apenas a afirmativa I está correta. 
b) Apenas a afirmativa II está correta. 
c) Apenas a afirmativa III está correta. 
d) As afirmativas I e II estão corretas. 
e) As afirmativas I e III estão corretas 
 
P) Os erros gerados durante a execução de um programa implementado na linguagem C# 
devem ser controlados com uma estrutura, que pode combinar o uso de qual dos seguintes 
blocos de tratamento de exceção, apresentados a seguir: 
a) No mínimo com try e finally 
b) No mínimo com try e catch ou try e finally 
c) Obrigatoriamente try, catch e finally 
d) No mínimo com try e catch, ou try e finally ou try, cath e finally 
e) No mínimo com try e catch 
 
 
 
 
 
P) Entre as frases abaixo, coloque a letra “O” para vantagem dos Programas Orientados a 
Objetos e a letra “E” para as vantagens dos Programas Estruturados: 
( E ) Em termos de velocidade de processamento tem um desempenho superior. 
( E ) O aprendizado do paradigma bem mais fácil no início. 
( O ) Uma distribuição de código um pouco mais lógica, funcional e melhor encapsulada, 
tornando a manutenção e a extensão do código mais fácil e com menos riscos de inserção 
de erros. 
( O ) É mais fácil gerenciar o desenvolvimento deste tipo de software em grandes equipes, 
partindo de uma especificação UML antes de iniciar o desenvolvimento do software em si. 
( E ) Sem a necessidade de ter uma base conceitual bem formado, bastante saber poucos 
comandos e para fazer um programa simples. 
a) E – E – O – O – E 
b) O – O – O – O – O 
c) E – E – E – O – E 
d) O – E – O – O – E 
e) E – O – E – E – O 
 
P) Dadas as declarações abaixo: 
1) int[] a = new int[5]; 
2) float b = new float[3]; 
3) char[] c = new char [] {‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 
4) double d = double[]; 
5) String e[4]; 
Quais criarão um vetor? 
a) 1 e 3 
b) 2 e 4 
c) 3 e 5 
d) 1 e 2 
e) 2 e 3 
 
P) Leia a definição a seguir: 
“É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem 
invocar métodos que tem a mesma identificação, mas comportamentos distintos, 
especializados para cada classe, derivada, usando para tanto uma referência a um objeto 
do tipo da superclasse” 
Qual o conceito definido no trecho acima? 
a) Construtor 
b) Herança 
c) Polimorfismo 
d) Encapsulamento 
e) Abstração 
 
 
P) Dos conjuntos de ferramentas fornecidos pelo C# qual não é utilizado para a 
programação de laços? 
a) for 
b) foreach 
c) while 
d) do while 
e) switch case 
 
P) Segundo a Microsoft quais os pilares da programação orientada a objetos? 
a) Polimorfismo, herança, associação 
b) Abstração, herança, encapsulamento 
c) Herança, polimorfismo,encapsulamento 
d) Herança, abstração, instanciação 
e) Classe, atributo e método. 
 
P) Leia as definições de laços a seguir: 
I – Possui três componentes para controle de suas interações (voltas de laço) sendo que o 
primeiro comportamento refere-se à declaração da variável de controle do laço. O 
segundo componente é uma expressão lógica que tem condição de encerramento a cada 
interação e o terceiro componente é o controle do laço que determinará o passo de cada 
interação. 
II – É usado quando não sabemos o número de vezes que devemos executar um bloco de 
código, mas apenas a condição que deve ser satisfeita para executar a condição é uma 
expressão booleana que deverá ser verdadeira para garantir pelo menos a primeira ou a 
próxima interação caso contrário o bloco não será executado. 
III – É usado para quando queremos que o bloco do código seja executado pelo menos 
uma vez. A condição satisfeita se encontra no fim do bloco do código e não no começo. 
a) I-for, II-forech, III-switch 
b) I-for, II-while. III-switch 
c) I-foreach. II-do while. III-while 
d) I-for, II-while, III-do while 
e) I-for, II-do while, III-while 
 
 
 
 
 
 
 
 
 
P) O programa a seguir apresenta um erro, mas todos do mesmo tipo: 
namespace ProvaHr 
{ 
 public class ContaCorrente 
 { 
 private int numero; 
 private String cliente; 
 private float saldo; 
 private static int ultimoNumero = 1000; 
 public ContaCorrente(String cliente) 
 { 
 this.numero = ++ultimoNumero; 
 this.cliente = cliente; 
 } 
 public void depositar(float valor) 
 { 
 saldo += valor; 
 } 
 public void sacar(float valor) 
 { 
 if (valor < saldo) 
 saldo -= valor; 
 else 
 Console.WriteLine("Saldo insuficiente"); 
 } 
 } 
 public class ContaEspecial : ContaCorrente 
 { 
 public double limite; 
 public ContaEspecial(String cliente, double limite) : base(cliente) 
 { 
 this.limite = limite; 
 } 
 public void sacar(float valor) 
 { 
 if (valor < (saldo + limite)) 
 saldo -= valor; 
 else 
 Console.WriteLine("Saldo insuficiente"); 
 } 
 } 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 ContaCorrente c1 = new ContaCorrente("Maria"); 
 c1.depositar(100); 
 ContaEspecial c3 = new ContaEspecial("Paula", 500.00); 
 c3.sacar(50); 
 } 
 } 
} 
 
Considere as possíveis soluções para o erro, sem comprometer a segurança: 
 
I – Colocar o construtor padrão nas classes ContaCorrente e ContaEspecial 
II – Alterar a privacidade dos atributos número, cliente e saldo de private para proteced 
II – Alterar a privacidade de todos os métodos depositar e sacar para private 
a) Apenas a solução I corrige o programa 
b) Apenas a solução II corrige o programa 
c) Apenas a solução III corrige o programa 
d) Mais de uma solução corrige o programa 
e) Nenhuma das soluções corrige o programa 
P) Dado o código abaixo com as seguintes classes: A, B e Program: 
 class A 
 { 
 public override String ToString() 
 { 
 return “4”; 
 } 
 } 
 class B : A 
 { 
 public override String ToString() 
 { 
 return base.ToString() +3; 
 } 
 } 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Console.WriteLine(new B()); 
 } 
 } 
 
Qual o resultado será apresentado como saída de execução do programa Program? 
a) O programa compila e o número 4 é exibido 
b) O programa compila e o número 43 é exibido 
c) Um erro na linha 10 faz o programa não compilar 
d) Nada é exibido pois B não tem construtor. 
e) O programa compila e o número 7 é exibido 
 
P) Considerando o seguinte trecho de programa: 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 string n1 = "Joao Carlos"; 
 int x; 
 Aluno b11 = new Aluno(); 
 Aluno b12 = new Aluno(n1); 
 x = b11.result(n1); 
 n1 = b12.result(x); 
 
Se o programa não apresenta erros, pode-se concluir em relação a classe Aluno: 
 
I – Ela não necessita de sobrecarga do método construtor. 
II – Ela possui um método cujo cabeçalho é public int result(string v) sendo v uma 
variável que será utilizada dentro do método 
III – Ela possui um método cujo cabeçalho é public string result(int v) sendo v uma 
variável que será utilizada dentro do método 
 
Assinale a alternativa correta: 
a) Somente a conclusão I está correta 
b) As conclusões II e III estão corretas. 
c) As três conclusões estão corretas 
d) As três conclusões estão erradas. 
e) As conclusões I e III estão corretas. 
P) Dada a seguinte tela de saída: 
 
Considerando as três propostas de programa a seguir: 
Programa I 
Static void Main(string[] args) 
{ 
 int a=345, b=543, c=435; 
 Console.WriteLine(“seq\n{1}\n{0}\n{2}”, b, a, c); 
 Console.ReadKey(); 
} 
Programa II 
Static void Main(string[] args) 
{ 
 int a=345, b=543, c=435; 
 Console.WriteLine(“seq\n{0}\n{1}\n{2}”, a, b, c); 
 Console.ReadKey(); 
} 
 
Programa III 
Static void Main(string[] args) 
{ 
 int a=345, b=435, c=543; 
 Console.WriteLine(“seq\n{0}\n{2}\n{1}”, a, b, c); 
 Console.ReadKey(); 
} 
 
Qual a afirmação é correta? 
a) Apenas o programa I mostra a tela anterior. 
b) Apenas o programa II mostra a tela anterior. 
c) Apenas o programa III mostra a tela anterior. 
d) Mais de um programa mostram a tela. 
e) Nenhum dos programas apresentados mostra a tela anterior. 
 
 
 
 
 
 
P) Qual a tela de saída do programa a seguir: 
static void Main(string[] args) 
{ 
 string s, s1, d1, e1, m1; 
 s1 = “Orientação”; 
s = “Objeto”; 
s += (“ a “+s1); 
d1 = s.Substring(0,6); 
e1 = s.Substring(s.Length - 10, 10); 
m1 = s.Substring(6,3); 
Console.WriteLine(e1+m1+d1); 
} 
 
a) Orientação a Objeto 
 
 
b) O a ObjetoaçãOrient 
c) O a ObjetoaçãOrient 
d) Objeto a Orientação 
e) A ObjetoOrientação 
 
P) Observe o código a seguir: 
 public class Pessoa 
 { 
 private String nome; 
 private String humor; 
 public Pessoa(String nome) 
 { 
 this.nome = nome; 
 this.humor = "bom"; 
 } 
 public void saudar() 
 { 
 Console.WriteLine("Meu nome é " + nome + "."); 
 Console.WriteLine("Hoje estou de " + humor + "humor."); 
 } 
 
Qual das alternativas mostra um comento valido para se criar um objeto dessa classe? 
a) Pessoa p1 = new Pessoa(Maria); 
b) Pessoa p1 = new Pessoa(); 
c) Pessoa p1 = new Pessoa(“Maria”,”bom”); 
d) Pessoa p1 = new Pessoa(“), p1.nome = “Maria”; 
e) Pessoa p1 = new Pessoa (“Maria”) 
 
 
 
 
P) Considere o programa a seguir: 
namespace Prova 
{ 
 abstract class Classe1 
 { 
 public virtual int soma(int a) 
 { 
 return a + 1; 
 } 
 } 
 class Classe2 : Classe1 
 { 
 public override int soma(int a) 
 { 
 return a + 2; 
 } 
 } 
 class Classe3 : Classe1 
 { 
 public int soma(int a) 
 { 
 return base.soma(a + 3); 
 } 
 } 
 class Classe4 : Classe3 
 { 
 public int soma(int a) 
 { 
 return base.soma(a + 4); 
 } 
 } 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Classe2 c2 = new Classe2(); 
 Classe3 c3 = new Classe3(); 
 Classe4 c4 = new Classe4(); 
 Console.WriteLine("{0} {1} {2}", c2.soma(0), c3.soma(0), c4.soma(0)); 
 } 
 } 
} 
 
Qual é o resultado apresentado na tela? 
a) 2 4 8 
b) 2 4 5 
c) 2 5 8 
d) 3 4 8 
e) 3 5 9 
 
 
 
 
 
 
P) Observando o programa a seguir: 
namespace ConsoleAplication1 
{ 
 public class Data { 
 public int dia, mes, ano;public Data(int d, int m, int a) 
 { 
 dia = d; mes = m; ano = a; 
 } 
 public virtual void get() 
 { 
 Console.WriteLine(dia + "/" + mes + "/" + ano); 
 } 
 public override string ToString() 
 { 
 return dia + "/" + mes + "/" + ano; 
 [....] 
 } 
 public class Funcionario : Pessoa { 
 public Data admissao; 
 public float salario; 
 public Funcionario(string nome, int id, Data nasc, Data admiss, float sal) : base(nome, id, 
nasc) { 
 admissao = admiss; 
 salario = sal; 
 } 
 } 
 public class Gerente : Funcionario { 
 public string deparamento; 
 public Data inicioGerencia; 
 public Gerente(string depto, Data inic, float sal, Data adm, string nome, int id): base(nome, id, 
nasc, adm, sal) { 
 departamento = depto; 
 inicioGerente - inic; 
 } 
 } 
 public class Cliente : Pessoa { 
 public double limCredito; 
 public Cliente(string nome, int id, Data nasc, double lim): base(nome, id, nasc) { 
 limCredito = lim; 
 } 
 } 
 public class Banco { 
 public static float valorEmprestimo(Pessoa p) { 
 float valor; 
 if(p is Gerente) { 
 valor = ((Gerente)p).salario * 10; 
 } 
 else if(p is Funcionario) { 
 valor = ((Funcionario)p).salario * 5; 
 } 
 Else { 
 valor = 0; 
 } 
 } 
 
 
Qual dos métodos a seguir implementa o POLIMORFISMO? 
a) Data.get(); 
b) Banco.ReajSalF 
c) Banco.ReajLimcr 
d) Funcionario:Pessoa 
e) Banco.valorEmprestimo 
P) No programa abaixo qual o código que deve ser colocado no quadro 1 para que a saída 
corresponda à tela. 
 
“TELA COM PALAVRA CONTA” 
 
 static void Main(string[] args) 
 { 
 List<char> palavra = new List<char>(); 
 palavra.Add('c'); 
 palavra.Add('o'); 
 palavra.Add('n'); 
 palavra.Add('t'); 
 palavra.Add('a'); 
 palavra.Add('t'); 
 palavra.Add('o'); 
 
 foreach (char c in palavra) { 
 Console.Write(c); 
 } 
 Console.ReadLine(); 
 } 
 
a) palavra.Remove(‘t); 
palavra.remove(o); 
 
b) palavra.RemoveAt(6); 
palavra.Remove(‘t’); 
palavra.Remove(‘a’); 
palavra.Add(‘a’); 
 
c) palavra.RemoveAt(6); 
palavra.RemoveAt(7); 
 
d) palavra.Remove(‘o’); 
palavra.REmoveAt(6); 
 
e) palavra.RemoveAt(6); 
palavra.Remove(‘o’); 
 
 
 
 
 
 
 
 
 
 
 
DISERTATIVAS 
 
P). Ao longo da história da computação, foram utilizados basicamente três paradigmas de 
desenvolvimento de sistemas. O primeiro foi um paradigma sem nome, o qual, mais tarde, 
ficou conhecido como Paradigma Não Estruturado, justamente pelo fato de ter sido 
substituído pelo Paradigma Estruturado. Atualmente o principal paradigma de 
desenvolvimento de sistemas é o Paradigma Orientado a Objetos. 
Explique quais são os dois componentes de um paradigma de desenvolvimento de sistemas. 
Atributos e métodos; 
os atributos descrevem as características da classe 
e os métodos, as ações que a classe executa. 
 
P). Segundo diversos autores, o principal recurso introduzido pelo Paradigma Orientado 
a Objetos é a herança e uma de suas consequências, o polimorfismo. Explique o que é 
herança e como ela permite que se utilize polimorfismo entre objetos. 
A herança permite criar novas classes a partir de classes já existentes, aproveitando-se 
das características existentes na classe a ser estendida, junto com o polimorfismo, nos 
permite selecionar funcionalidades que um programa irá utilizar de forma dinâmica, 
durante sua execução. 
 
P). Uma vez que são definidas as classes e que são utilizadas dentro odo programa em 
forma de objetos, estes podem assumir duas formas de existência dentro do programa: 
objetos transientes ou objetos persistentes. Qual a diferença entre objetos transientes e 
objetos persistentes? 
Transientes trabalham em meios voláteis, em memória, uma vez finalizada a execução do 
programa todos os dados referentes ao objeto são perdidos. 
Persistentes trabalham em meios não voláteis, discos ou banco de dados, permitindo que 
mesmo após finalizada a execução do programa os dados possam ser recuperados em 
uma próxima execução. 
 
P). A principal inovação introduzida pelo Paradigma Estruturado em relação ao 
Paradigma Não Estruturado foi o abndono do uso de desvios incondicionais. Asssim uma 
linguagem estruturada só utiliza desvios condicionais como “if”, “for”, “while” e “do-
while”. O próximo paradigma, o Paradigma Orientado a Objetos inova ao introduzir o 
conceito de objeto (entre diversos outros conceitos). Explique o que é um objeto e explique 
suas partes componentes 
Objeto é uma instancia de uma classe, capaz de armazenar estados, reagir a mensagens 
e se relacionar a outros objetos 
 
 
 
P). Considerando a afirmação a seguir: 
“As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os 
elementos que foram inseridos no início são os primeiros a serem removidos” 
Baseando-se neste princípio, crie uma lista enumerada de inteiros chamada “Lista” e 
enfileire os números 1,2,3,4 e depois, retire da fila dois elementos. Enfileire o número 5 e 
mostre na tela a fila completa. 
 class Program 
 { 
 public static void Main(string[] args) 
 { 
 
 List<int> Lista = new List<int>(); 
 Lista.Add(1); 
 Lista.Add(2); 
 Lista.Add(3); 
 Lista.Add(4); 
 Lista.RemoveRange(0, 2); 
 Lista.Add(5); 
 foreach (int i in Lista) 
 { 
 Console.WriteLine(i); 
 } 
 } 
 
P) Considere o seguinte programa: 
class program 
{ 
 public static void Main(string[] args) 
 { 
 int a; 
 for ( ) 
 { 
 Console.WriteLine(a); 
 } 
 } 
} 
Qual o código deve ser escrito no retângula vermelho para que a saída gerada pelo programa 
seja a seguinte? 
 
a = 10; a >= 5; a-- 
 
 
 
P) Quando o programa a seguir é executado, resulta em um erro quando digitamos “ABC”: 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 string var = Console.ReadLine(); 
 double i = Convert.ToDouble(var); 
 Console.WriteLine("A variavel i vale {0}", i); 
 } 
 } 
 
Reescreva o programa implementando o tratamento de erro para o caso FormatException 
cujo resultado é: 
 
class Program 
 { 
 static void Main(string[] args) 
 { 
 string var = Console.ReadLine(); 
 try 
 { 
 double i = Convert.ToDouble(var); 
 Console.WriteLine("A variavel i vale {0}", i); 
 } 
 catch (System.FormatException err) 
 { 
 Console.WriteLine("Não é possível atribuir a string {0} a um 
Objeto Double", var); 
 } 
 } 
 } 
 
 
 
 
 
 
 
 
 
 
 
P) O programa a seguir não apresenta encapsulamento: 
Public class Telefone { 
 public String modelo; 
} 
Public class Prova01 { 
 public static void Main(String[] args) { 
 Telefone telefone; 
 telefone = new Telefone(); 
 telefone modelo = “FPS01”; 
 Console.WriteLine(“Modelo...........”+telefone modelo); 
 } 
} 
Faça o encapsulamento usando os métodos getNome() e setNome() da classe Telefone, e 
modifique a classe Prova01. 
private class Telefone 
 { 
 private string modelo; 
 
 public string getModelo() 
 { 
 return this.modelo; 
 } 
 public void setModelo(string modelo) 
 {this.modelo = modelo; 
 } 
 } 
 public class Prova01 
 { 
 public static void Main(string[] args) 
 { 
 Telefone telefone; 
 telefone = new Telefone(); 
 telefone.setModelo("FPS01"); 
 Console.WriteLine("Modelo:{0}", telefone.getModelo()); 
 } 
 } 
 } 
 
 
 
 
 
 
 
 
 
 
 
 
P) Monte na classe Prova um construtor sem parâmetros atribuindo os valores “LTP” para 
disciplinas e 8 questões, e um construtor que faça a inicialização conforme a instancia p2. 
class Prova 
{ 
 private string disciplina; 
 private int questoes; 
} 
class Program 
{ 
 public static void Main(string[] args) 
 { 
 Prova p1 = new Prova(); 
 Prova p2 = new Prova (“P001”,10); 
 } 
} 
class Prova 
 { 
 private string disciplina; 
 private int questoes; 
 public Prova() 
 { 
 this.disciplina = "LTP"; 
 this.questoes = 8; 
 } 
 public Prova(string disciplina, int questoes) 
 { 
 this.disciplina = disciplina; 
 this.questoes = questoes; 
 } 
 } 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
P) Considere a classe Produto abaixo: 
 class Produto 
 { 
 protected string nome; 
 protected double preco; 
 public Produto(string nome, double preco) 
 { 
 this.nome = nome; 
 this.preco = preco; 
 } 
 public virtual void imprimeProduto() 
 { 
 Console.WriteLine("{0} custa R${1}", nome, preco); 
 } 
 } 
Considere também a classe ProdutoPerecivel abaixo: 
 class ProdutoPerecivel : Produto 
 { 
 protected string validade; 
 public ProdutoPerecivel(string nome, double preco, string validade) : base(nome, preco) 
 { 
 this.validade = validade; 
 } 
 public override void imprimeProduto() 
 { 
 Console.WriteLine("{0} custa R${1} e é valido até {2}", nome, preco, validade); 
 } 
 } 
Escreva qual será a saída gerada pela execução do programa abaixo, que utiliza as classes 
Produto e ProdutoPerecivel. 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Produto produto1 = new Produto("Tomatinho", 3.0); 
 Produto produto2 = new ProdutoPerecivel("Cebolina", 2.5, "20/5/2016"); 
 
 produto1.imprimeProduto(); 
 produto2.imprimeProduto(); 
 } 
 } 
 
 
Tomatinho custa R$3 
Cebolinha custa R$2,5 e é valido até 20/5/2016

Outros materiais