ExameNormal Proposta POOI
ExameNormal Proposta POOI
ExameNormal Proposta POOI
Estudante:______________________
Parte I
Escolha a opção correcta (0.2 cada):
1. Uma classe:
a. É uma modelo a partir do qual objetos individuais sao criados. Uma classe pode conter campos e metodos
que descreve o comportamento de um objeto.
b. É um tipo de dados especial.
c. É utilizada para alocar memória para um tipo de dados.
d. Nenhuma das opções acima.
2. No que diz respeito à linguagem de programação Java, analise as afirmações abaixo.
i.Um método declarado como ‘static’ não pode acessar variáveis de instância da classe, pois o método pode ser chamado
mesmo quando não há nenhum objeto da classe instanciado.
ii.Java permite herança múltipla de classes, portanto uma nova classe pode ser herdeira de duas ou mais classes já
definidas.
iii.O operador ‘+’ só pode ser utilizado para dados de tipo numérico.
Está(ão) correta(s), apenas:
a. i. c. i e ii.
b. ii. d. i e iii.
3. Qual das alternativas abaixo apresenta um método que concatena dois objetos do tipo String em Java?
a. Método ‘endsWith’ em ‘String’ c. Sobrecarga do operador ‘+’
b. Método ‘charAt’ d. Método ‘substring’
4. Considere a compilação de um ou mais programas por meio da linha de comando, num ambiente Java. Nesse caso, o
comando que está corretamente formado para esse fim é:
a. compile teste.java –type java c. javac *.java
b. java teste.java d. jvm Teste1.java teste2.java
5. A linguagem de programação Java suporta:
a. passagem de parâmetros de tipos primitivos por c. herança múltipla
referência d. polimorfismo
b. sobrecarga de operadores
6. O tamanho do array é determinado ___________ e, uma vez definido, _______ ser alterado durante a execução do
programa.
a. exclusivamente durante a execução do programa – pode
b. exclusivamente durante a compilação do programa – não pode
c. exclusivamente durante a execução do programa – não pode
d. exclusivamente durante a compilação do programa – pode
7. Acerca do tratamento de exceções em Java, analise as afirmativas a seguir.
I. Toda vez que a estrutura try é utilizada, obrigatoriamente, em seu encerramento (na chave final), deve existir pelo
menos um catch, a não ser que ela utilize a instrução finally.
II. A estrutura try pode não conter nenhum bloco catch, porém o bloco finally torna-se obrigatório.
III. O objetivo do try é manter códigos para liberação de recursos adquiridos em seu bloco finally correspondente.
1
Nome:________________________________________Regime:______Cód.Estudante:______________________
IV. O finally é obrigatório e fornece um conjunto de códigos que é sempre executado, independentemente de uma
exceção ocorrer ou não.
Está(ão) correta(s) apenas a(s) afirmativa(s)
a. III. c. I e II.
b. IV. d. III e IV.
8. Acerca da linguagem de programação Java, “um método declarado _______________ não pode acessar as variáveis de
instância e os métodos de instância da classe, porque um método _______________ pode ser chamado mesmo quando
nenhum objeto da classe foi instanciado.” Assinale a alternativa que completa correta e sequencialmente a afirmativa
anterior.
a. static / static c. static / public
b. public / static d. public / public
9. Como qualquer linguagem de programação, a linguagem Java tem sua própria estrutura, regras de sintaxe e paradigma
de programação. Portanto, a estrutura try...catch...finally da linguagem Java tem o objetivo de controlar o fluxo de
execução do tipo:
a. Estrutura de desvio de fluxo. c. Estrutura de controle de erros.
b. Mecanismo de finalização. d. Estrutura de repetição condicional.
10. Qual função do ambiente de programação Java deve ser utilizada para se retornar o caractere de uma determinada
posição da string?
a. valueOf c. charAt
b. compateTo d. split
11. Acerca da programação orientada a objetos, usando Java, analise a seguinte assertiva: “O Java contém três tipos de
instruções de seleção”. Assinale-as.
a. if; for; while. c. while; switch; else.
b. if; while; do while. d. if; if ... else; switch.
12. Na serialização de objetos em Java, a classe
a. ObjectOutputStream é usada na recuperação de um objeto serializado.
b. a ser serializada deve herdar java.io.FileInputStream.
c. a ser serializada deve implementar java.io.Serializable.
d. ObjectInputStream é usada na serialização de um objeto.
13. Em Java, certo método da classe A deve poder ser invocado independentemente da criação prévia de uma instância de
A. O modificador obrigatório na declaração desse método é:
a. static; c. protected;
b. public; d. final.
14. Os programadores da linguagem Java concentram-se em criar seus próprios tipos definidos pelo usuário. Esses tipos
são conhecidos como:
a. métodos. c. bytecodes.
b. objetos. d. classes.
15. Java Virtual Machine (Máquina Virtual Java) é um programa que carrega e executa os aplicativos Java, convertendo:
a. os bytecodes em código executável de máquina
b. os microcódigos em código executável de máquina
c. os códigos encriptados em bytecodes
d. os microcódigos em códigos encriptados
Parte II
1. (0.15 val cada)Sobre identificadores de variáveis verifique se são aceites pelo Java. Responda Sim ou Não para cada uma das alienas.
a. j#2 d. m_2 g. J2P j. a x
b. abc e. endereco h. 3var
c. int f. $mon i. val*or
2
Nome:________________________________________Regime:______Cód.Estudante:______________________
Parte II
1. Analise os códigos escrito na linguagem Java e diga que será exibido na saída do programa:
a) (0.5 val) b) (0.5 val)
public class enigma {
public static void main(String args[]) {
int m=0, n=2;
do {
m=++m;
n--;
} while(n>0);
System.out.println(m);}}
Res:____________________________ (5):5 (7):13 Res:____________________________ 2
c) (1.5 val) d) (0.5 val)
public class X {
public static void main(String [] args){
try{
falha();
System.out.print("A1"); }
catch (RuntimeException ex){
System.out.print("A2"); }
catch (Exception ex1) {
System.out.print("A3"); }
finally {
System.out.print("A4"); }
System.out.print("A5"); }
public static void falha() {
throw new RuntimeException(); }}
Res:____________________________A2A4A5 Res:_______________________não compila
ParteIII:
1. (02.5 val)Dado um triângulo retângulo de catetos A e B e hipotenusa C, escreva um programa que leia o valor dos
catetos e determine o valor da hipotenusa, bem como o valor do ângulo (em graus) entre o lado A e a hipotenusa.
(utilize classes do Java para o quadrado e raiz quadrada)
class TrianguloRetangulo {
public static void main(String[] args) {
System.out.println(Operacoes.calculaHipotenusa(100, 130));;
System.out.println(Operacoes.calculaAngulo(100, 164)); }}
class Operacoes{
public static int calculaHipotenusa(float catetoA,float catetoB) {
float hipotenusa;
hipotenusa = (float) Math.sqrt(Math.pow(catetoA, 2)+Math.pow(catetoB, 2));
return (int) hipotenusa; }
public static int calculaAngulo(float catetoA,float hipotenusa) {
return (int) Math.toDegrees((Math.asin((catetoA/hipotenusa)))); }}
3
Nome:________________________________________Regime:______Cód.Estudante:______________________
2. (03.5 val)Escreva um programa que leia do teclado um número inteiro positivo e determine se o número introduzido
é um número primo. Um número natural é um número primo quando tem exatamente dois divisores naturais distintos:
o número 1 e ele mesmo. Repare que deve validar o valor de entrada repetindo a leitura se o valor não for válido
(positivo).
import java.util.Scanner;
public class TesteOperacao {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner entrada = new Scanner(System.in);
int num;
do{
System.out.println("Digite o valor a ser verificado: ");
num=entrada.nextInt();
}
while(!Operacao.validaLeitura(num));
if(Operacao.verificaPrimo(num))
System.out.println("O valor introduzido é primo");
else
System.out.println("O valor introduzido não é primo");
}}
public class Operacao {
public static boolean verificaPrimo(int numeroIntroduzido) {
for (int j = 2; j < numeroIntroduzido; j++) {
if (numeroIntroduzido % j == 0)
return false;
}
return true;
}
public static boolean validaLeitura(int numero) {
return numero>0?true:false;
}
}
3. (03.5 val) Implemente um programa que leia um parágrafo de texto da consola e:
- indica quantas frases tem o parágrafo (uma frase pode acabar com ‘.’, ‘?, ‘...’ ou ‘!’);
- imprime cada frase na linha nova (utilize a sintaxe foreach);
- deve usar métodos para cada operação pedida.
import java.util.Scanner;
4
Nome:________________________________________Regime:______Cód.Estudante:______________________
int frases = novaFrase.length;
if(tamanhoMatriz>=2) {
mat1 = new int[tamanhoMatriz][tamanhoMatriz];
System.out.println("Introduza o valor dos elementos da
matriz");
for (int i = 0; i < mat1.length; i++) {
for (int j = 0; j <mat1[i].length; j++) {
System.out.println("Introduza o elemento j:"+(j+1)+"
i:"+(i+1));;
mat1[i][j]=sc.nextInt();
}}}
return mat1;}
5
Nome:________________________________________Regime:______Cód.Estudante:______________________
}
public static int[][] transposta(int [][] mat){