Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIP INTERATIVA Código da Prova: 18901397932 Curso: Sup Tec em Análise e Desenvolvimento de Sistemas Série ou Período: 1° Bimestre - 3° Semestre Tipo: Bimestral I - Questões objetivas — valendo 5,00 pontos II - Questões discursivas — valendo 5,00 pontos Modo de prova: Substitutiva; Questões de múltipla escolha Disciplina: 685760 - Programação Orientada a Objetos I Questão 1: 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, catch e finally. E) No mínimo com try e catch. Questão 2: Dado o código abaixo com as seguintes classes: A, B e Program: 1 class A 2 { 3. public overríde String ToString() 4. { 5 return "4", 6 } 7. } 8 class B : A 9 { 1 0 . p u b l i c o v e r r i d e S t r i n g T o S t r i n g ( ) 1 1 . { 1 2 . r e t u r n b a s e . T o S t r i n g ( ) + " 3 " ; 1 3 . } 1 4 . } 1 5 . class Program 1 6 . { 1 7 . s t a t i c v o i d M a i n ( s t r i n g n a r g s ) 1 8 . { 1 9 . C o n s o l e . W r i t e L i n e ( n e w B ( ) ) ; 2 0 . } 2 1 . } Qual 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. Questão 3: 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. Questão 4: 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 classe atual". a) Polimorf ismo. b) Reutilização de classes. c) Hereditariedade. d) Herança. e) Instanciação. Questão 5: 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 comando válido 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"); Questão 6: 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 1 e II estão corretas. E) As afirmativas I e III estão corretas. Questão 7: No programa abaixo qual o código que deve ser colocado no quadro 1 para que saída corresponda à tela. static void Main(string[] args) { List <char> palavra = new List<char>(); palavra.Add('c'); palavra.Add('o'); pa lavra .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(); } 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. RemoveAt(‘0’); palavra. RemoveAt(6); E) palavra.RemoveAt(6); palavra.Remove('o'); Questão 8: 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 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 outro. 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 afirmativa I e II estão corretas. B) Somente as afirmativas I e III estão corretas. C) Somente as afirmativa II e III estão corretas. D) Somente a afirmativa III está correta. E) As afirmativas 1, 11 e III estão corretas. Questões discursivas Questão 1: Leia a descrição a seguir: -Os barcos. para atender aos seus clientes, possuem duas frentes de trabalho. Os caixas eletrônicos espalhados pela cidade, que são diretamente ligados ao banco, e as agências 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. Quetão 2: A principal inovação introduzida pelo Paradigma Estruturado em relação ao Paradigma Não Estruturado foi o abandono do uso de desvios incondicionais. Assim, uma linguagem estruturada só utiliza desvios condicionais como o "if", o "for", o "while" e o "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. Compilado - Programação Orientada a Objetos I 1- 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 têm 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? C) Polimorfismo 2- A respeito dos conceitos de programação orientada a objeto e da linguagem de programação C#, assinale a opção correta. D) Na linguagem C#, métodos abstract de classe abstract não tem implementação definida. As subclasses dessa classe abstrata definem implementação para tais métodos. 3- Segundo a Microsoft quais os pilares da programação orientada a objetos? C- Herança, polimorfismo e encapsulamento. 4- Leia as definições de laços a seguir: I - Possui três componentes para controle de suas iterações(voltas do laço), sendo que, o primeiro componente refere-se à declaração da variável de controle do laço. O segundo componente é uma expressão lógica que testa a condição de encerramento a cada iteraçãoe o terceiro componente é o controle do laço que determina 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 iteração caso contrário o bloco não será executado. III- é usado quando queremos que um bloco de código seja executado pelo menos uma vez. A condição a ser satisfeita se encontra no fim do bloco de código e não no começo. Qual a relação correta dos laços? D) I-for, II-while, III-do while 5- Um atributo serve para: A) Identificar 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... d)Descrever um objeto. e) Comportamentos de uma classe. 6- Heranças podem ser definidas como: B) A possibilidade do uso de uma classe em outra previamente existente reutilizando seus métodos e atributos. 7- 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. 8- 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 classe atual” D) Herança 9- Leia a definição: “Acontece quando ocorre mais de um método de uma mesma classe com o mesmo nome e parâmetros diferentes.” Qual alternativa relaciona-se com a definição apresentada? B) Sobrecarga. 10- Observando o programa a seguir: namespace ConsoleApplication1 { 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 + “/” +ano;… (programa com mais de uma folha ) . Qual dos métodos a seguir implementa o POLIMORFISMO? E) Banco.valorEmprestimo 11- Leia a definição a seguir: “Consiste na separação de aspectos internos e externos de um objeto. Este mecanismo è utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados.” B) Encapsulamento 12- Entre as frases abaixo, coloque a letra “o” para vantagem do POO e a letra “E” para os paradigmas estruturados.: ( ) em termos de velocidade de processo tem um desempenho superior ( ) o aprendizado do paradigma e bem mais facil no inicio ( ) uma distribuição de codigo um pouco mais logica, funcional e melhor encapsada, tornando a manutenção e extensão do codigo mais facil e co menos riscos de inserção de erros ( ) e mais facil gerenciar o desenvolvimento deste software em grandes equipes, partindo de uma especificação UML, antes de iniciar o desenvolvimento do software em si. ( ) sem necessidade de ter uma base conceitual bem formado, bastando saber poucos comandos e para fazer um programa simples A) E - E - O - O -E 13- Dos conjuntos de ferramentas fornecidos pelo c# qual não é utilizado para a programação de laços? E) Switch case. 14- Dado o código abaixo com as seguintes classes: A,B e program: Qual resultado será apresentado como saída de execução do programa Program? B- O programa compila e o número 43 é exibido. 15- Relacione a palavra-chave da linguagem c# à sua respectiva descrição. Palavra -chave I - This II - Base III - throw (P) Usada para gerar uma exceção. (Q) Em um método ou construtor, refere-se à superclasse. A relação correta é: E) II - Q, III - P. 16- Observe o código a seguir: Public class Pessoa E) Pessoa p1 = new Pessoa(“Maria”); 17- Considerando o seguinte trecho de programa: class Program Se o programa não apresentar erros, pode-se concluir com relação à 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: B) As conclusões II e III estão corretas. 18- Observando o programa a seguir: …. programa com mais de uma folha … Qual dos métodos a seguir implementa o POLIMORFISMO? e) Banco.valorEmprestimo 19- Dada a seguinte tela de saída: Considerando as três propostas de programa a seguir: Qual a afirmação é correta? D) Mais de um dos programas mostram a tela. (Basta analisar os posicionamentos das letras e números, fiquem atentos pq pode mudar facilmente a ordem em alguma prova) (Conferir na apostila) 20- 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 mesma classe filha, a cláusula this e utilizada para acessar um tributo 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 estiver 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. (Conferir na apostila) 21- Um objeto pode ser definido como: A) uma instância 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 de código utilizado apenas em tempo de desenvolvimento 22- Entre as principais vantagens da POO, podemos citar: E) Tem uma alta reusabilidade. 23- 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. D) As afirmativas I e II estão correta. 24- O programa a seguir apresenta um erro mas todos do mesmo tipo: I - colocar o construtor nas classes ContaCorrente e Conta especial II -Alterar a privacidade dos atributos número, cliente e saldo de private para protect III-Alterar a privacidade de todos os métodos depositar e sacar para private Assinale a alternativa correta: b- apenas a solução II corrige o programa 25- Dadas as declarações abaixo: Quais criarão um vetor? A) 1 e 3 26- No programa abaixo, qual o código que deve ser colocado no quadro 1 para que a saída seja a da tela: B) palavra.RemoveAt(6) palavra.Remove('t') palavra.Remove('a') palavra.Add('a'); (Conferir no livro) 27- Assinale 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 inovaçã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 outro.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,assinalea 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 as afirmativas III está correta E - as afirmativas I, II e III estão corretas 28- Os erros gerados durante a execução de um programa implementado na linguagem c# controlados com uma estrutura, que pode combinar o uso de qual dos seguintes blocos: E) No mínimo com try e catch. (Conferir...) 29- Considere o programa a seguir: 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 Discursivas: 1- A principal inovação introduzida pelo Paradigma Estruturado em relação ao Paradigma Não Estruturado foi o abandono do uso de desvios incondicionais. Assim, uma linguagem estruturada só utiliza desvios condicionais com o “if”, o “while” e o “-do-while”. O próximo paradigma, o Paradigma Orientado a Objetos ao introduzir o conceito de objeto (entre diversos outros conceitos). Explique o que é um objeto e explique suas partes componentes. R.: Objetos podem ser considerados uma imitação do comportamento intrínseco de entidades reais. Tal como em sistemas reais, em uma POO não é viável abrir um objeto e olhar em seu interior e tampouco alterar seu estado. Nesse paradigma, a única forma de fazer evoluir um programa é permitir que objetos compartilhem dados entre si a partir de trocas explícitas de mensagens. 2- Uma vez que são definidas as classes e que elas são utilizadas dentro do 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? Objetos transientes são dados que trabalham em meios voláteis, ou seja, em memória. Uma vez finalizada a execução do programa, todos os dados referentes ao objeto serão perdidos, não podendo ser recuperados. Objetos persistentes são dados que trabalham em meios não voláteis, ou seja, seus dados são armazenados em disco a partir de arquivos ou banco de dados. Isso permite que, uma vez finalizada a execução do programa, os dados do objeto possam ser recuperados na próxima execução. 3- Quando o programa a seguir é executado, resulta em erro quando digitamos “ABC”. Reescreva o programa implementando o tratamento do erro para o caso FormatException cujo resultado é: Resposta: class Programa { static void Main(string[] args) { String var = Console.ReadLine(); try { double i = Convert.ToDouble(var); Console.WriteLine("A variavel i vale {0}", i); } catch(FormatException) { Console.WriteLine("Não é possivel atribuir a string {0} a um objeto Double.\n", var); } } } 4- Considere o seguinte programa: class Program { static void Main(string[] args) { int a; for ( ) { Console.WriteLine(a); } } } Qual é o código que deve ser escrito no retângulo para que a saída gerada pelo programa seja a seguinte (imagem do console imprimindo de 10 até 5). a = 10; a > 4; a-- 5- Dado o programa a seguir: class Prova { private String disciplina; private int questoes; } class Program { static void Main(string[] args) { Prova p1 = new Prova(); Prova p2 = new Prova("POO1", 10); } } Monte na classe Prova um construtor sem parâmetros atribuindo os valores “LPT” para disciplinas e 8 questões, e um construtor que faça a inicialização conforme a instância p2. class Prova { private String disciplina; private int questoes; public Prova() { this.disciplina = "LTP"; this.questoes = 8; Console.WriteLine("Disciplina: " + this.disciplina + "\nQuestões: " + this.questoes); } public Prova(string disciplina, int questoes) { this.disciplina = disciplina; this.questoes = questoes; Console.WriteLine("Disciplina: " + this.disciplina + "\nQuestões: " + this.questoes); } } class Program { static void Main(string[] args) { Prova p1 = new Prova(); Prova p2 = new Prova("POO1", 10); } } 6- Quando o programa a seguir é executado, resulta em erro quando digitamos “ABC”. Reesscreva o programa implementando o tratamento do erro para o caso FormatException cujo resultado é: Resposta: class Programa { static void Main(string[] args) { String var = Console.ReadLine(); try { double i = Convert.ToDouble(var); Console.WriteLine("A variavel i vale {0}", i); } catch(FormatException) { Console.WriteLine("Não é possivel atribuir a string {0} a um objeto Double.\n", var); 7- Explique quais são os dois componentes de um paradigma de desenvolvimento de sistemas. Análise de sistemas, linguagens de programação. 8- O programa a seguir não apresenta encapsulamento: Resposta: namespace unip { public class Telefone { private String modelo; public void setNome(string nome) { this.modelo = nome; } public string getNome() { return this.modelo; } } public class Prova01 { public static void Main(String[] args) { Telefone telefone; telefone = new Telefone(); telefone.setNome("FPS01"); Console.WriteLine("Modelo......:" + telefone.getNome()); } } } 9- 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 dada a entrada. namespace unip { class Program { public static void Main(string[] args) { int[] v = new int[10]; for (int x = 0; x < 10; x++) { Console.WriteLine("Digite um numero"); v[x] = Convert.ToInt16(Console.ReadLine()); } for (int y = 9; y >= 0; y--) { Console.WriteLine(v[y]); } } } } 10- Faça um programa que leia na variável “nome”, o nome de uma pessoa, na variável “idade”, a sua idade, e na variável “peso”, o seu peso considerando uma casa depois da vírgula. Em seguida, o programa deve mostrar na tela as três informações conforme a saída a seguir, sendo que a saída das informações foi escrita em apenas uma linha utilizando-se técnica de formatação composta. namespace unip { class Programa { public static void Main(String[] args) { string nome = "Januario Stevens"; Console.WriteLine(nome); int idade = 23; Console.WriteLine(idade); double peso = 67.8; Console.WriteLine(peso); Console.WriteLine("Nome:{0} idade:{1} peso:{2}", nome, idade, peso.ToString("n1")); } } } 11- Considere a classe Produto abaixo: Considere também a classe ProdutoPerecivel abaixo: Escreva qual será a saida gerada pela execução do programa abaixo, que utiliza as classes ...ProdutoPerecivel: Tomatinho custa R$3 Cebolinha custa R$2,5 e é válido até 20/5/2016 Pressione qualquer tecla para continuar...
Compartilhar