Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 de 6 CADERNO DE PERGUNTAS Avaliação Regular CURSO Engenharia de Computação/Produção TURMA 2018.2 APLICAÇÃO 2º bim/2019 CÓDIGO DA PROVA P001 DISCIPLINA ILP001 – Programação de Computadores INSTRUÇÕES AO ALUNO 1. É obrigatória a devolução deste caderno de questões ao término da prova. 2. Está autorizada a entrada de alunos até 1 hora depois do início marcado da prova (início da prova: 18h). 3. Você só poderá sair depois de transcorridas 1 hora e 15 minutos do início marcado da prova. QUESTÕES OBJETIVAS Questão 1 (1,5 pontos) Dado o programa a seguir, assinale V (verdadeiro) ou F (falso): class Questao { public static void main(String[] args) { int x, y, z, res; x = 2; y = 4; z = 6; res = z + y/x; System.out.println("Resultado: " + res); } } (___) O código possui erro de sintaxe. (___) O programa irá imprimir a mensagem "Resultado: 5". (___) O programa irá imprimir a mensagem "Resultado: 7". (___) O programa não cria nenhum objeto. A sequência correta é: a) V – V – V – F b) V – V – F – F c) V – F – F – V d) F – F – V – V e) F – V – F – V Questão 2 (1,5 pontos) Dado o programa a seguir, assinale V (verdadeiro) ou F (falso): 2 de 6 class Questao { public static void main(String[] args) { int num = 225; if(num % 2 == 0) { System.out.print("a"); } if(num % 3 == 0) { System.out.print("b"); } if(num % 5 == 0) { System.out.print("c"); } if(num % 7 == 0) { System.out.print("d"); } else { System.out.print("e"); } (___) O programa acima irá imprimir: bce (___) O programa acima irá imprimir: c (___) O programa acima irá imprimir: b A sequência correta é: a) V – V – V b) V – V – F c) V – F – F d) F – F – V e) F – V – F Questão 3 (1,5 pontos) Dado o programa a seguir, assinale V (verdadeiro) ou F (falso): class Localizacao { float latitude, longitude; Localizacao() { this(0,0); } Localizacao(float lat, float lon) { latitude = lat; longitude = lon; } } (___) Ao criarmos um objeto com: Localizacao loc1 = new Localizacao(), teremos loc1.latitude = loc1.longitude. (___) O comando this(0,0) faz com que o objeto seja criado sem inicialização de atributos. 3 de 6 (___) A classe Localizacao tem dois atributos e dois construtores. (___) A palavra-chave this no código refere-se ao próprio objeto criado. A sequência correta é: a) V – F – V – V b) V – V – F – V c) V – F – F – V d) F – F – V – V e) F – V – F – V Questão 4 (1,5 pontos) Dado o programa a seguir, assinale V (verdadeiro) ou F (falso): class Questao { public static void main(String[] args) { String str1 = new String("string1"); String str2 = "string1"; String str3 = "string1"; if(str1 == str2) System.out.print("a"); if(str2 == str3) System.out.print("b"); if(str1.equals(str2)) System.out.print("c"); } } (___) O programa acima irá imprimir: a (___) O programa acima irá imprimir: c (___) O programa acima irá imprimir: bc A sequência correta é: a) V – V – F b) V – F – F c) F – F – V d) F – V – V e) V – F – V QUESTÕES DISSERTATIVAS Questão 5 (2,0 pontos) Crie uma classe em Java para representar um retângulo. Defina um construtor que deverá verificar se os lados são positivos. Caso não sejam, inicialize os atributos com valores padrão. Crie um método que calcula e retorna a área desse retângulo. Questão 6 (2,0 pontos) Considere a classe que você implementou na questão anterior. Deseja-se ordenar uma quantidade de retângulos pela sua área. Adicione um método estático na classe que recebe como parâmetro um vetor de retângulos, e ordene esse vetor pela área de cada retângulo. 4 de 6 GABARITO CURSO Engenharia de Computação/Produção TURMA 2018.2 APLICAÇÃO 2º bim/2019 CÓDIGO DA PROVA P001 DISCIPLINA ILP001 – Programação de Computadores QUESTÕES OBJETIVAS Questão 1 – ANULADA (pontuação atribuída a todos os alunos) Não há resposta correta (ordem das respostas: F – F – F - V). Questão 2 A resposta correta é: c) V – F – F Justificativa O número é divisível por 3 e por 5. Como não é divisível por 7, a execução entra no else, que fará imprimir a letra e. Questão 3 A resposta correta é: a) V – F – V – V Justificativa this(0, 0) faz com que ambos atributos sejam inicializados com 0. Questão 4 A resposta correta é: c) F – F – V Justificativa No primeiro caso, a comparação irá retornar falso, pois tanto str1 como str2 apontam endereços diferentes na memória, apesar de possuírem o mesmo conteúdo. No segundo caso, a resposta será verdadeira, pois ambos objetos str2 e str3 apontam para a mesma área de memória (denominada String Pool). Por fim, no terceiro caso, a resposta será verdadeira, pois está sendo comparado o conteúdo das strings. 5 de 6 QUESTÕES DISSERTATIVAS Questão 5 Uma solução para essa questão seria: class Retangulo { float a, b; Retangulo(float x, float y) { if(x > 0 && y > 0) { a = x; b = y; } else { a = 1; b = 1; } } public float area() { return a * b; } } Rubricas | critérios de correção Sintaxe correta: 25% da pontuação Classe correta: 25% da pontuação Construtor correto: 25% da pontuação Método para calcular área: 25% da pontuação 6 de 6 Questão 6 Usando a implementação da questão anterior, temos: class Retangulo { float a, b; Retangulo(float x, float y) { if(x > 0 && y > 0) { a = x; b = y; } else { a = 1; b = 1; } } public float area() { return a * b; } float compara(Retangulo r) { if(r == null) return 1; return (this.area()-r.area()); } static void ordena(Retangulo[] v) { for (int ult = v.length-1; ult>0; ult--) { for (int i=0; i<ult; i++) { if (v[i].compara(v[i+1]) > 0) { Retangulo aux = v[i]; v[i] = v[i+1]; v[i+1] = aux; } } } } } Rubricas | critérios de correção Sintaxe correta: 25% da pontuação Método para comparar objetos: 25% da pontuação Algoritmo de ordenação: 50% da pontuação Observação: o aluno poderá usar qualquer outro método de ordenação. Na solução acima usamos o BubbleSort.
Compartilhar