Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Complicado para provas, Provas de Programação Orientada a Objetos

Segue respostas de questões para prova

Tipologia: Provas

2023

Compartilhado em 13/04/2024

leticia-pereira-q7j
leticia-pereira-q7j 🇧🇷

1 documento

1 / 51

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação Orientada a Objetos I
MULTIPLA ESCOLHA
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?
Resposta: B) O programa compila e o número 43 é exibido.
P) Considere o seguinte programa:
static void Main(string[] args)
{ char [] c = new char[] {‘a’,’b’,’c’};
Console.WriteLine(“{1}{0}{2}”, c[1],c[0],c[2]);
}
Qual a sua saída?
Resposta: A) a b c
P) Leia o texto extraído do site tecnoblog.net:
Em orientação a objeto, este processo no qual não temos mais acesso a um elemento interno, no caso a bateria, se
chama:
Resposta: D) Encapsulamento
P) Dada a seguinte tela de saída:
Considerando as três propostas de programa a seguir:
Programa I
a) 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
b) 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();
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Pré-visualização parcial do texto

Baixe Complicado para provas e outras Provas em PDF para Programação Orientada a Objetos, somente na Docsity!

Programação Orientada a Objetos I MULTIPLA ESCOLHA 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? Resposta: B) O programa compila e o número 43 é exibido. P) Considere o seguinte programa: static void Main(string[] args) { char [] c = new char[] {‘a’,’b’,’c’}; Console.WriteLine(“{1}{0}{2}”, c[1],c[0],c[2]); } Qual a sua saída? Resposta: A) a b c P) Leia o texto extraído do site tecnoblog.net: Em orientação a objeto, este processo no qual não temos mais acesso a um elemento interno, no caso a bateria, se chama: Resposta: D) Encapsulamento P) Dada a seguinte tela de saída: Considerando as três propostas de programa a seguir: Programa I a) 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 b) 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 c) 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? Resposta: D) Mais de um dos programas mostram a tela. P) Um atributo serve para: Resposta: A) Indicar as possíveis informações armazenadas por um objeto de uma classe, representando o estado de cada objeto. P) Considere o seguinte programa: static void Main(string[] args) { List numero= new List(); for (int i=1; i<=10;i++) numero.Add(i); numero.RemoveAt(6); numero.Remove(9); int soma=0; foreach (int c in numero) { soma += c; } Console.WriteLine(soma); } Qual a saída? Resposta: A) 39 P) Considere o programa abaixo: Class A { public int n; public A(): this(2) { }public A(int valor) {this.n= valor + 3; } } Class B: A { public int m; public B(): this(5) { } public B(int valor): base(valor) { this.m= base.n +7; } } Class Program { Static void Main(string[] args) { B b1 = new B(); B b2 = new B(1); Console.WriteLine(b1.m+””+ b2.m); } } Qual a saída do programa acima? Resposta: C) 15 11 P) Analise as afirmativas a seguir: I- Mensagem é uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método

P) Dos conjuntos de ferramentas fornecidos pelo C# qual não é utilizado para a programação de laços? Resposta: E) switch case. 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. Resposta: D) I-for, II-while, III-do while. P) Entre as principais vantagens da Programação Orientada a Objetos, podemos citar: Resposta: E) Tem uma alta reusabilidade. 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 (através de uma invocação a um método 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: Resposta: E) As afirmativas I, II e III estão corretas. 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 Cinta especial. II – Alterar a privacidade dos atributos número, cliente e saldo de private para protected. III – Alterar a privacidade de todos os métodos depositar e sacar para private. Assinale a alternativa correta. Resposta: B) Apenas a solução II corrige o programa. P) No programa abaixo qual o código que deve ser colocado no quadro 1 para que saída corresponde à tela. static void Main(string[] argas) { 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’); Quadro 1 foreach (char c in palavra) Console Write(c); Console.ReadLine(); } Resposta: B) palavra.RemoveAt(6); palavra.Remove(‘t); palavra.Remove (‘a); palavra.Add (‘a’); P) Sobre a declaração e uso de classes, métodos e atributos especificamente na linguagem de programação

namespace ConsoleAppplication { 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.Write(dia + "/" + mes + "/" + ano); } public override string ToString() { return dia + "/" + mes + "/" + NO; } } public abstract class Pessoa { public string nome; public int identidade; public Data nascimento; public Pessoa(string n, int id, Data d) { nome = n; identidade = id; nascimento = d; } } public class Funcionario : Pessoa { puclib 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 {...} {...} class Program { public static void Main(string[] args) { Data dn = new Data(10, 12, 1980); Data da = new Data(5, 8, 2012); Funcionario f2 = new Funcionario ("Jose", 999, dn, da, 4000); Gerente g1 = new Gerente("Contabilidade", da, 5000, da, dn, "Marcos", 99999); Cliente c1 = new Cliente("Maria", 1111, dn, 3500); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); } } } Qual dos métodos a seguir implementa o POLIMORFISMO?

Resposta: E) Banco.valorEmprestimo P) Considere o programa a seguir: namespace Prova { abstract class Classe { public virtual int soma(int a) { return a+1; } } class Classe2: Classe { public override int soma(int a) { return a+2; } } class Classe3 : Classe { public int soma(int a) { return base.soma(a+3); } } class Classe4 : Classe { 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? Resposta: A) 2 4 8 P) Analise a figura e os códigos C# abaixo:

Para isso, foram apresentadas 3 propostas: I. 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 = c; } public void imprime() { Console.WriteLine(this.nome + “\n” + this.rga + “\n” + ((this castrado)? “sim” : “não”)); } } class Program { static void Main(string[] args) { Gato g1 = new Gato(“Frajola”, “sp555”, false); g1.castrado = true; g1.imrpime(); } } II. public class Gato { private string nome; {...} III. {...} { return this.castrado; } public void imprime() { Console.WriteLine(this.nome + “\n” + this.rga + “\n” + ((this castrado)? “sim” : “não”)); } } class Program { static void Main(string[] args) { Gato g1 = new Gato(“Frajola”, “sp555”, false); g1.setCastrado(true); g1.imprime(); } } Assinale a alternativa correta. Resposta: B) Apenas a proposta de programa II atende ao requisito. P) Relacione a palavra-chave da linguagem C# à sua respectiva descrição: Palavra-chave: I. this

II. base III. throw Descrição: (P) Usada para gerar uma exceção (Q) Em um método ou construtor, refere-se à superclasse. A relação correta é: Resposta: E) II – Q, III – P. P) Considere o seguinte programa: class Fruta { public String nome; } class Program { static void Main(string[] args) { Fruta f1 = new Fruta(); f1.nome = “Banana”; Fruta f2 = new Fruta(); f1 = f2; f2.nome = “Laranja”; Fruta f3 = new Fruta(); f2 = f3; f3.nome = “Manga”; Console.WriteLine(“{0} {1} {2}”, f1.nome, f2.nome, f3.nome); } } Qual a saída? Resposta: D) Laranja Manga Manga P) A respeito dos conceitos de programação orientada a objetos e da linguagem de programação C#, assinale a opção correta: Resposta: D) 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. P) Heranças podem ser definidas como: Resposta: B) A possibilidade do uso de uma classe em outra previamente existente reutilizando seus métodos e atributos. P) Abaixo temos um programa utilizando o Object: namespace UnipEADprv { class A { public A(){ } public String ToString() { return “X”; } public A Dois() { return (A)this.MemberwiseClone(); } } class Program { static void Main(string[] args)

P) Leia a definição: “Acontece quando ocorre mais de um método de uma mesma classe com o mesmo nome, desde que suas listas de parâmetros sejam diferentes”. Qual alternativa relaciona-se com a definição apresentada? Resposta: B) Sobrecarga. P) Heranças podem ser definidas como: class C1 : C { public C1() { Console.WriteLine("1"); } } class C { public C2() { Console.WriteLine("2"); } } class C3 : C { public C3() { Console.WriteLine("3"); } } class Program { static void Main(string[] args) { C3 c3 = new C3(); } } Resposta: B) 2 1 3 P) A descrição abaixo refere-se a qual das técnicas apresentadas pelo paradigma da 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... atual”. Resposta: D) Herança 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? Resposta: C) Polimorfismo 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."); } } Quais das alternativas mostra um comando válido para se criar um objeto dessa classe? Resposta: E) Pessoa p1 = new Pessoa(“Maria”); 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 apresentado a seguir? Resposta: E) No mínimo com try e catch. P) Um objeto pode ser definido como: Resposta: A) Uma instância de uma classe. P) O entendimento exato do que se trata a orientação é 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 importante, 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 natureza diferente, mas todos e... 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. Dessa forma, os três pilares da Programação Orientada a Objeto citados neste texto são: Resposta: D) Polimorfismo, Encapsulamento, Herança. P) O programa abaixo contém erros de sintaxe: static void Main(string[] args) { /*Este programa fonte contém vários

  • erros
  • quantos são? // int a = Console.ReadLine(); Console.writeLine(a); } Resposta: B) 2 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? Resposta: A) 1 e 3 P) Considere o seguinte cenário: A lanchonete King Donald utiliza mistura em pó padrão para fazer o seu sorvete. A formula do pó padrão é alterada

} Qual dos programas executou o programa acima: Resposta: B) P) No programa abaixo: Para trocar valor do atributo dia da data de MesDia para 3, qual o comando a ser colocado na linha 35? Resposta: E) m.getData().setDia(3);

DISCURSIVAS

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 ser removidos.” Baseando-se neste princípio, crie uma lista enumerada de inteiros, chamada “Lista” e enfileire os números 1,2,3,4 depois, retire da fila dois elementos, enfileire o número 5 e mostre na tela a fila completa. Resposta: class Program { public static void Main(string[] args) { List Lista = new List(); 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) Leia a descrição abaixo: “A empresa Bluecar vende faz a transformação da picape Escuna. A partir da picape original adapta a sua caçamba convertendo em ambulância, transporte de pônei, e carro funerário. Desta forma a picape que vem da fábrica com uma motorização variável, transforma em ambulância com suporte ortopédico ou não, transporte de pôneis abertos ou fechados, e carros fúnebres com cores variados.” Utilizando estas informações monte o diagrama simples de classes. Resposta:? 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. Resposta: 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) Faça um programa que leia, num vetor v de números inteiros, dez números digitados pelo usuário e os mostre na tela na sequência inversa a que foi data a entrada. Resposta: class Program { static void Main(string[ ] args) { Console.WriteLine("Digite 10 números: "); int[ ] v = new int[10]; for (int i = 0; i < 10; i++) { v[i] = int.Parse(Console.ReadLine()); } Array.Reverse(v); foreach (int i in v) { Console.WriteLine(i); } } }

string Funcional; float Salario; } public class Editora { string Nome; } public class Autor : Pessoa { Editora Editora; } public class Emprestimo { Aluno Aluno; Funcionario Funcionario; } public class Livro { string Titulo; Editora Editora; Autor Autor; string Isbn; Boolean Status; int Exemplar; } public class ItemEmprestimo { int NumItem; Livro Livro; DateOnly Saida; DateOnly Devolucao; } P) Considere o seguinte programa: class program { public static void Main(string[] args) { int a; for (______________) { Console.WriteLine(a); } } } Qual é o código que deve ser escrito no retângulo vermelho para que a saída gerada pelo programa seja a seguinte? Resposta: a = 10; a >= 5; a— P) Leia a descrição a seguir: “Os bancos, para atender aos seus clientes, possuem duas frente de trabalho. Os caixas eletrônicos espalhados pela cidade, que são diretamente ligados ao banco, e as agencias tradicionais, que entre outras coisas, possuem os seus postos bancários dentro das empresas, fazem o atendimento VIP dos clientes que têm conta premium e possuem um

anexo para o atendimento à pessoa jurídica”. Utilizando estas informações monte o diagrama simples de classes. Resposta: Sugestão de resposta incerta: P) Reescreva corrigindo o programa abaixo: static void Main(string[] args) { int[] v = new int[10]; float i; for (i = 0; i <= 9; i++) { Console.Write("\nDigite o elemento {0} ", i+1); v[i] = Console.ReadLine(); } for (i = 9; i >= 0; i--) { Console.WriteLine(v[i]); } } Resposta: static void Main(string[] args) { int[] v = new int[10]; int i; for (i = 0; i <= 9; i++) { Console.Write("\nDigite o elemento {0} ", i+1); v[i] = int.Parse(Console.ReadLine()); } for (i = 9; i >= 0; i--) { Console.WriteLine(v[i]); } } P) Qual é a saída gerada pelo seguinte programa? class Program { static void Main(string[] args) { string texto1 = "quatro";