Compilado de Provas de Programacao Orientada A Objetos I - UNIP EAD

March 31, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Compilado de Provas de Programacao Orientada A Objetos I - UNIP EAD...

Description

 

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.  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  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 prec isam 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.  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.  implements.  e)  Uma interface pode ter atributos que podem ser utilizados nas classes herdeiras.

P) Analise as afirmativas a seguir: seg uir: 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 corretas b)  Somente as afirmativas I e III estão corretas  corretas  c)  Somente as afirmativas II e III estão corretas corretas    d)  Somente a afirmativa III está correta  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.  real.  c)  Uma função  função  d)  Uma característica ou comportamento de uma classe  classe  e)  Um trecho do código utilizado apenas em tempo de desenvolvimento.  desenvolvimento. 

P) Relacione as palavras-chave da linguagem C à su sua a 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 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 a cordo com a necessidade da classe atual”   a)  Polimorfismo b)  Reutilização de classes  classes  c)  Hereditariedade d)  Herança  e)  Instanciação Instanciação   

 

  P) Heranças podem ser definidas como:   a)  Ações de uma classe executadas em outra classe. 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. classe.    d)  Ações executadas por uma classe, sempre utilizadas em tempo de execução.  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 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 he rdeira 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.  correta.  b)  Apenas a afirmativa II está correta.  c)  Apenas a afirmativa III está correta.  correta.   d)  As afirmativas I e II estão corretas.  corretas.  e)  As afirmativas afirmativas I e III estão corretas  corretas 

P) Os erros gerados durante a execução de um u m programa implementado na linguagem C devem ser controlados com uma es estrutura, trutura, 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 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 cat catch ch

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. superior. ( E ) O aprendizado do par adigma 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 c om 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 U ML 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 superclasse podem invocar comportamentos distintos, para tanto uma referência

duas ou mais classes class es derivadas de uma mesma métodos que tem a mesma identificação, mas especializados para cada classe, derivada, d erivada, usando a um objeto do tipo da superclasse” 

Qual o conceito definido no trecho acima?   a)  Construtor b)  Herança  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  associação  b)  Abstração, herança, encapsulamento  encapsulamento  c)  Herança, polimorfismo, encapsulamento  d)  Herança, abstração, instanciação  instanciação 

 

e)  Classe, atributo e método.

P) Leia as definições de laços a seguir: segu ir:  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 par a executar a condição é uma expressão booleana bool eana 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 satis feita se encontra no fim do bloco do d o código e não no começo. a)  b)  c)  d) 

I-for, II-forech, III-switch I-for, II-while. III-switch I-foreach. II-do while. III-while 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 i nt ul timoNumero = 100 1000; 0; public ContaC ContaCorrente( orrente(String String cliente) {

 

 

this.numero = ++ ++ultimoNumero; ultimoNumero; this.cliente = cliente; } public v oid depositar(float valor) { saldo += valor; } public void sacar(float valor) { if (valor < saldo) saldo -= valor; else Console.WriteLine("Sa Console.W riteLine("Saldo ldo insufic iente"); } } public class ContaEspecial : ContaCorrente { public double limite; public ContaE ContaEspecial(S special(String tring cliente, double l imite) : base(cliente) base(cliente) { this.limite = limite; } public void sacar(float valor) { if (valor < (saldo + limite)) saldo -= valor; else Console.WriteLine("Sa Console.W riteLine("Saldo ldo insufic iente"); } } class Program { static void Ma Main(string[] in(string[] args) { ContaCorrente c1 = new ContaCorrente("Maria"); c1.depositar(100); ContaEspecial c 3 = new ContaEspecial(" Paula", 500. 500.00) 00);; c3.sacar(50); } }

} Considere as possíveis soluç ões para o erro, sem compr ometer a segurança segurança:: I – Colocar o construt or padrão nas c lasses ContaC ContaCorrente orrente e ContaE ContaEspecial special II atributos número,depositar cliente e esaldo depara private para protece proteced d II –  – Alterar  Alterar a a privacidade privacidade dos de todos os métodos sacar private

a)  b)  c)  d)  e) 

Apenas a solução I corrige o programa  programa  Apenas a solução II corrige o programa  programa  Apenas a solução III corrige o programa  programa  Mais de uma solução corrige o programa  programa  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 Ma Main(string[] in(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  exibido   b)  c)  d)  e) 

O programa compila e o número 43 4 3 é exibido Um erro na linha 10 faz o programa não compilar  compilar   Nada é exibido pois B não tem construtor.  construtor.  O programa compila e o número 7 é exibido  exibido  

P) Considerando o seguinte trecho de programa: class Program { static void Ma Main(string[] in(string[] args) { string n1 = "Joao Carlos" Carlos" ; int x;  Alun  Al un o b 11 = new Alun Al un o();  Alun  Al un o b 12 = new Alun Al un o(n 1); x = b11.result(n1); n1 = b12.resul b12.resul t(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 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  correta  b)  As conclusões II e III estão corretas.  c)  As três conclusões estão corretas  corretas  d)  As três conclusões estão erradas.  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 vo id Main(string[] args) Static { int a=345, a=345, b=543, c=435; Console.WriteLine(“seq\n{1}\n{0}\n{2}”, b, a, c);  Console.ReadKey(); }

Programa II Sta Static { tic vo id 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 vo id Main(string[] args) Static { 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 prog rama a seguir:  static void Ma Main(string[] in(string[] args) { stri ng s, s1, d1, e1, e1, m1; s1 = “Orientação”;  s = “Objeto”;  s += (“ a “+s1);   d1 = s.Substri ng(0,6) ng(0,6);; e1 = s.Subs s.Subs trin g(s.Length - 10, 10) 10);; m1 = s.Substri ng(6,3) ng(6,3);; Console.WriteLine(e1+m1+d1); }

a)  Orientação a Objeto 

b)  O a ObjetoaçãOrient  ObjetoaçãOrient  c)  O a ObjetoaçãOrient  ObjetoaçãOrient  d)  Objeto a Orientação  Orientação  e)  A ObjetoOrientação  ObjetoOrientação 

P) Observe o código a seguir:   public c lass Pe Pessoa ssoa { private String nome; private String String humor; public Pe Pessoa(S ssoa(String tring nome) { this.nome = nome; this.humorr = "bom" ; this.humo } public void saudar() { Console.WriteLine("Me Console.W riteLine("Meu u nom e é " + nome + " ."); Console.WriteLine("Hoje Console.W riteLine("Hoje estou estou de " + humor + "hu mor."); } Quall das alternativas mostra um c omento valido para se criar um objeto dessa classe? Qua

a)  Pessoa p1 = new Pessoa(Maria); b)  Pessoa p1 = new Pessoa(); c)  Pessoa p1 = new Pessoa(“Maria”,”bom”); Pessoa(“Maria”,”bom”);  d)  Pessoa p1 = new Pessoa(“), p1.nome = “Maria”; “Maria”;    e)  Pessoa p1 = new Pessoa (“Maria”) 

 

 

P) Considere o programa a seguir: namespace Prova { abstract class Classe1 { public v irtual int soma(int a) { return a + 1; 1; } } class Class e2 : Classe1 { public override int soma(int a) { return a + 2; 2; } } class Class e3 : Classe1 { public int som a(int a(int a) { return base.soma(a + 3); 3); } } class Class e4 : Classe3 { public int som a(int a(int a) { return base.soma(a + 4); 4); } } class Program { static void Ma Main(string[] in(string[] args) { Classe2 c2 = new Classe2(); Classe2(); Classe3 c3 = new Classe3(); Classe3(); Classe4 c4 = new Classe4(); Classe4(); Consol e.W e.WriteLi riteLi ne("{0} {1} {2}" , c2.soma(0) c2.soma(0),, c3.soma(0) c3.soma(0),, c4.soma(0)); c4.soma(0)); } } }

Qual é o  resultado apresentado na tela? a)  2 4 8 b)  c)  d)  e) 

2 2 3 3

4 5 4 5

5 8 8 9

 

 

P) Observando o programa a seguir: namespace namespa ce ConsoleAplication1 { public c lass Data { public int dia, mes, a ano; no; public Da Data(int ta(int d, int m, int a) { dia = d; mes = m; ano = a; } public v irtual void get() { Console.WriteLine(dia Console.W riteLine(dia + "/" + mes + " /" + ano); } public override string ToString() { return dia + "/" + mes + " /" + ano; [....] } public class Funcionario : Pessoa Pessoa { public Da Data ta admissao; public salario; public float Funcionario(string no me, int id, Data nasc, Data Data admiss, float sal) : base(nome, base(nome, id, nasc) { admissao = admiss; salario = sal; } } public c lass Gere Gerente nte : Funcionario { public st ring depara deparamento; mento; public Da Data ta inicio Gerencia; Gerencia; 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 : P Pessoa essoa { public double limCredito; public Cliente Cliente(string nasc) sc) { limCredito =(string lim; no me, int id, Data nasc, double lim): base(nome, id, na } } public class Banco { public static float valorEmprestimo(Pessoa valorEmprestimo(Pessoa p) { float valor; if(p is Gerente) { valor = ((Gerente)p). ((Gerente)p).salario salario * 10; } else if(p is Funcionario) { valor = ((Funcionario)p).salario * 5; } Else { valor = 0; } }

Qual dos métodos a seguir implementa imple menta 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 Ma Main(string[] in(string[] args) { List palavra = new List(); 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) 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.Remove(‘o’);    palavra.REmoveAt(6); e)  palavra.RemoveAt(6); palavra.Remove(‘o’);  palavra.Remove(‘o’);  

 

 

DISERTATIVAS 

Ao longo da história da computação, co mputaçã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 sub stituído pelo Paradigma Estruturado. Atualmente o principal paradigma de desenvolvimento de sistemas é o P).

Paradigma Orientado a Objetos. Explique quais são os dois componentes de um paradigma de desenvolvimento de sistemas. 

 Atributo  Atributos s 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 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 herança permite criar novas novas classes classes a partir de classes classes já existentes, existentes, aproveitando-se 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.

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?   P).

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 ab ndono 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 in troduzir o conceito de objeto (entre diversos outros conceitos). Explique o que é um u m 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    class Program { public public   static static   void void Main(  Main(string string[] [] args) { List< int> > Lista = new new   List List< (); >(); List
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF