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,8 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,8 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,8 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,3 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,3 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
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.