Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 - Questões objetivas - valendo 5 pontos li - Questões discursivas - valendo 5 pontos Gerada em: 20/06/2023 às 14h02 ------------------------------------------------------------------------------------------------------------ Instruções para a realização da prova: 1. Leia as questões com atenção. 2. Confira seu nome e RA e verifique se o caderno de questão e folha de respostas correspondem à sua disciplina. 3. Faça as marcações primeiro no caderno de questões e depois repasse para a folha de respostas. 4. Serão consideradas somente as marcações feitas na folha de respostas. 5. Não se esqueça de assinar a folha de respostas. 6. Utilize caneta preta para preencher a folha de respostas. 7. Preencha todo o espaço da bolha referente à alternativa escolhida, a caneta, conforme instruções: não rasure, não preencha X, não ultrapasse os limites para preenchimento. 8. Preste atenção para não deixar nenhuma questão sem assinalar. 9. Só assinale uma alternativa por questão. 1 O. Não se esqueça de responder às questões discursivas, quando houver, e de entregar a folha de respostas para o tutor do polo presencial, devidamente assinada. 11. Não é permitido consulta a nenhum material durante a prova, exceto quando indicado o uso do material de apoio. 12. Lembre-se de confirmar sua presença através da assinatura digital (login e senha). Boa prova! ------------------------------------------------------------------------------------------------------------ Questões de múltipla escolha Disciplina: 685760 - PROGRAMAÇÃO ORIENTADA A OBJETOS 1 Questão 1: Ao executar o programa abaixo: 1 2 3 4 5 i s s 10 ll 12 13 H lS 1 ·4Í 11 1'8 ,19 20 21 22 23 24 25 2~ 27 28 public cl ••• G•to { public string raça; publlc i n: idaca ; publle Bool~a:n castrado; public char ,exo: publlc string nome; publlc GaU>() : thi•(~Si.Joon•J ( J publ1C Gat.o(StrinQ ll) 1 th1a (n, O) ( ) publlc Gat.o(St:ring n , int iJ : this(n, 1, rai.e, •m• , ·s.lU>") ( } public G.co(atr::inq n, int i, bool e, ,tdnq r) : this(n, i, e , ' .m ', r) ( } publle G&eo(sering n, ine 1, ehar s, nri.ng rJ : tbia(n, 1, ruae, a, r) { ) pu,!1Uc Gato(strin'J nomt,int i~ad.e, Boolnn castrado, ~r aego, str1ntJ raça) ( tbia.raça • raça: tbis.1dade • idade; tMs.cu~r&dO - CUU&dO; this,seso • ,exo; tb1S. 11.0IM • ftOIM ; claa.s Progna ( eeat1c void Hain(etrinq(] arga) { Qual a sequência das linhas executadas no processo, considerando-se como as linhas da classe as mesmas no objeto? A) 26,8,9, 1 O, 11, 13, 15, 16, 17, 18, 19,27 2~a~1~1~1~1~1i1a1~21 26, 13, 15, 16, 17, 18, 19,27 2~1z1~1~1~1i1a1~21 26, 11, 13, 15, 16, 17, 18, 19,27 Questão 2: Considere a seguinte situação: Numa clínica veterinária é feita a castração de gatos. No programa, uma vez criada a instância do animal, o nome NÃO pode mais ser alterado, o seu RGA (Registro Geral do Animal) e a Castração poderão ser alterados externamente. Portanto, o requisito deste programa é: as informações SOMENTE poderão ser acessadas externamente pelo método imprime. Para isso, foram apresentadas 3 propostas: 1. public class Gato { private string nome; public string rga; public bool castrado; public Gato(string n,string r, bool c) { this.nome = n; this.rga = r; this.castrado = e; public void imprime() { Console.Writeline(this.nome + "\n" + this.rga + "\n" + ((this.castrado) ? "sim" : "não")); class Program { static void Main(stringD args) { Gato g1 = new Gato("Frajola","spSSS",false); g 1.castrado = true; g1.imprimeO; 00 . '- /pubhc class Gato Ili. { private string nome; private string rga; private bool castrado; public Gato(string n,string r, bool c) { } this.nome = n; this.setRga(r); this.castrado = c; public void setRga(String r) { this.rga = r; public void setCastrado(Boolean c) { this.castrado = c; public void imprimeO { Console.Writeline(this.nome + "\n" + this.rga + "\n" + ((this.castrado) ? "sim" : "não")); class Program { static void Main(stringD args) { Gato g1 = new Gato("Frajola","spSSS",false); g1 .setCastrado(true); g1.imprimeO; public class Gato { private string nome; private string rga; private bool castrado; public Gato(string n,string r, bool c) { } this.nome = n; this.setRga(r); this.castrado = c; public void setRga(String r) { this.rga = r; } public string getRga() { return this.rga; ) public void setCastrado(Boolean c) { this.castrado = c; ) public Boolean getCastrado() { return this.castrado ) public void imprime() { Console.Writeline(this.nome + "\n" + this.rga + "\n" + ((this.castrado) ? "sim" : "não")); class Program { static void args) { Gato g1 = new Gato("Frajola","spSSS",false); g1 .setCastrado(true); g1 .imprime(); Assinale a alternativa correta. Apenas a proposta de programa I atende ao requisito. Apenas a proposta de programa li atende ao requisito. Apenas a proposta de programa Ili atende ao requisito. D) Mais de uma das propostas de programa atende ao requisito. E) Nenhuma das propostas atende às expectativas. Questão 3: O entendimento exato do que se trata a orientação a objetos é necessário, por exemplo, saber quais são os requerimentos de uma linguagem para ser considerada dentro desse paradigma. Para isso, a linguagem precisa atender a tópicos bastante importantes, os chamados pilares da Programação Orientada a Objeto. O livro-texto cita três considerados fundamentais pela Microsoft. Um deles é a característica de segurança, que impede o acesso externo ao funcionamento do objeto, por exemplo: quando clicamos no botão ligar da televisão, não sabemos o que acontece internamente. Outro tópico é o relacionamento hierárquico de ações e características, por exemplo: temos o aluno e o monitor em uma disciplina; ou o aluno e o representante de sala. O monitor é um aluno com atribuições extras. O representante de sala é um aluno com mais responsabilidades. A terceira característica é a possibilidade de uma mesma mensagem ser enviada para objetos de naturezas diferentes, mas todos eles capazes de dar uma resposta. Para ilustrar esta característica temos o botão direito do mouse. Conforme o local onde ele é clicado, ele responde de uma forma diferente. Desta forma, os três pilares da Programação Orientada a Objeto citados neste texto são: A) Portabilidade, Mutação, Proteção B) Segurança, Abstração, Herança Herança, Segurança, Multiplicidade Polimorfismo, Encapsulamento, Herança ) Herança, Segurança, Polimorfismo Questão 4: Analise as seguintes afirmações: 1. O uso de uma estrutura de repetição FOREACH é recomendado quando sabemos o número de repetições que serão executadas. li. Uma estrutura de repetição WHILE sempre terá os comandos pertencentes ao seu bloco principal executado pelo menos uma vez. Ili. Uma estrutura de repetição DO .. .WHILE sempre terá os comandos pertencentes ao seu bloco principal executado pelo menos uma vez. Assinale a alternativa correta: A) Apenas a afirmação I é verdadeira Apenas a afirmação li é verdadeira Apenas a afirmação Ili é verdadeira Mais de uma das afirmações é verdadeira E) Nenhuma das afirmações é verdadeira Questão 5: Sendo A uma superclasse simples, a classe abaixo não apresenta erro. Analise com cuidado: class C: A,B { private int a; public C0 { this.a = 1; public void metodo0 { } Podemos afirmar que: 1. B é uma interface ,._ li. A presença do método public void metodoO foi imposta por B Ili. A classe C não possui método construtor. Assinale a alternativa correta: A) Apenas a afirmação I é verdadeira B) Apenas a afirmação li é verdadeira A Apenas a afirmação Ili é verdadeira Mais de uma das afirmações é verdadeira @ Nenhuma das afirmações é verdadeira Questão 6: 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 da implementaçãode herança entre classes. B) Em uma hierarquia de classes na linguagem C#, uma subclasse sobrescreve qualquer método da sua superclasse ~ de que a palavra virtual esteja declarada no método da subclasse. (~ , Na linguagem C#, os métodos de uma classe que são declarados como virtual necessitam que sejam ~ !ementados na subclasse. Na linguagem C#, métodos abstract de classes abstract não têm implementação definida. As subclasses dessa classe abstrata definem implementação para tais métodos. E) Na linguagem C#, métodos abstract de classes abstract precisam ser declarados com override nas subclasses quando tais métodos são implementados. Questão 7: Heranças podem ser definidas como: Ações de uma classe executadas em outra classe. A possibilidade do uso de uma classe em outra previamente existente reutilizando seus métodos e atributos. ) 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. Questão 8: Considere o programa a seguir: namespace Prova { abstract class Classe 1 { 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(stringD 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? fa)'i2 4 8 / ))' 24 5 C) 2 5 8 D) 3 4 8 E) 3 5 9
Compartilhar