Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 AVALIAÇÃO PRESENCIAL CADERNO DE PERGUNTAS curso: Engenharia de Produção/ Engenharia de Computação bimestre: 4 o bimestre ano: 2018 | 1sem P5 • Preencha atentamente o cabeçalho de TODAS AS FOLHAS DE RESPOSTA que você utilizar. • Ao término da prova, entregue apenas a folha de resposta ao aplicador. Leve este caderno de perguntas consigo. Boa prova! disciplina ILP001 - Programação de computadores Questão 1 (1,0 ponto) O que o seguinte método retorna? int misterio(int[] arr) { int x = 0; for (int i=arr.length-1; i>=0; i--) if (arr[i] > arr[x]) x = i; return(x); } a) O índice da primeira ocorrência do maior elemento no arranjo arr. b) O índice da primeira ocorrência do menor elemento no arranjo arr. c) O índice da última ocorrência do maior elemento no arranjo arr. d) O índice da última ocorrência do menor elemento no arranjo arr. e) O índice da última ocorrência do primeiro elemento do arranjo arr. Questão 2 (1,0 ponto) Qual a saída do seguinte código: public class ClasseX { public int x = 0; public int y = 0; public ClasseX(int x, int y) { x = x; y = y; } public static void main(String[] args) { ClasseX x = new ClasseX(2,3); System.out.println(x.x+" e "+x.y); } } a) 0 e 0 b) 2 e 3 c) 0 e 3 d) 2 e 0 e) Nenhuma das alternativas. CÓDIGO DA PROVA 2 Questão 3 (1,0 ponto) Que expressão matemática o código abaixo implementa? class Q3 { static double misterio(double x, double y) { double aux; aux = Math.pow(x,2); aux *= 2; aux += Math.pow(y,2); return(aux); } } a) �𝑥𝑥2 + 𝑦𝑦2 b) �2𝑥𝑥2 + 𝑦𝑦2 c) �𝑥𝑥2 − 𝑦𝑦2 d) �𝑥𝑥2 − 2𝑦𝑦2 e) 2𝑥𝑥2 + 𝑦𝑦2 Questão 4 (1,0 ponto) Considere duas matrizes A e B de iguais dimensões. Que código deve estar nas lacunas para que o método retorne o resultado de A - B? ______ codigo(int[][] A, int[][] B) { int[][] resp = new int[______][______]; for (int i=0; i<A.length; i++) for (int j=0; j<A[0].length; j++) ________________________________ return(resp); } a) int A.length A[0].length resp[i][j] = A[i][j] + B[i][j]; b) int[][] A.length A[0].length resp[i][j] = A[i][j] - B[i][j]; c) int[][] A.length B.length resp[i][j] = A[i][j] + B[i][j]; d) int[][] A.length A[0].length resp[i][j] = A[i][j] + 2*B[j][i]; e) int[][] A.length A[0].length resp = A[i][j] - B[i][j]; 3 Questão 5 (1,0 ponto) Qual o resultado impresso na tela pelo seguinte código? class Teste { static double x1(int x) { return(Math.pow(x,2)); } static double x2(int y) { return(2*Math.sqrt(y) + x1(y)); } public static void main(String[] args) { int z = 4; System.out.println(x2(z)); } } a) 28.0 b) 20.0 c) 25.0 d) 18.0 e) 22.0 Questão 6 (1,0 ponto) Que valor deve ser colocado no lugar de X para que o código abaixo escreva “passou” na tela? class B { static boolean x1(int a, int b, int x) { return(!(a>=b) || (2*a>3*b) && (x==a)); } public static void main(String[] args) { if (x1(3,2,X)) System.out.println("passou"); } } a) 3 b) 2 c) Qualquer valor serve. d) 4 e) Não há valor possível. Questão 7 (1,0 ponto) Considere o método da bolha, para ordenação de arranjos. Complete o código abaixo de modo que o arranjo passado por parâmetro seja ordenado de modo crescente. static void bolha(int[] arr) { for (int ult = arr.length-1; ult>0; ult--) for (int i=0; i<_____; i++) if (____________) { _______________ arr[i] = arr[i+1]; _______________ } } 4 a) ult arr[i] > arr[i+1] int aux = arr[i+1]; arr[i+1] = arr[i]; b) ult-1 arr[i] < arr[i+1] arr[i] = aux; arr[i+1] = aux; c) ult arr[i] > arr[ult] arr[i] = arr[i+1]; arr[i+1] = arr[ult]; d) ult+1 arr[i] < arr[i+1] int aux = arr[ult]; arr[i+1] = arr[i]; e) ult arr[i] > arr[i+1] int aux = arr[i]; arr[i+1] = aux; Questão 8 (1,0 ponto) Considere a seguinte classe e complete o código faltante, de modo que o método faça o que se pede em sua documentação (comentário acima dele). class Palavra { String palavra; // a palavra em si int letras; // número de letras /** Constrói o objeto. Recebe a palavra e seu número de letras, atualizando os parâmetros do objeto. */ Palavra(String palavra, int letras) { _________________; __________________; } /** Retorna versão string do objeto, na forma: <palavra> (<letras> letras) */ String str() { return(______________); } } a) palavra = palavra letras = letras palavra+" (letras "letras")" b) this.palavra = palavra letras = letras palavra+" ("+letras+" letras)" c) palavra = this.palavra letras = this.letras palavra+" (letras letras)" 5 d) this.palavra = palavra this.letras = letras palavra+" ("+letras+" letras)" e) palavra = palavra letras = letras palavra+" (letras "+letras)" Questão 9 (1,0 ponto) Com relação a construtores, assinale as afirmações corretas: I. this(), se usado, deve ser o primeiro comando do construtor. II. this() é uma referência ao próprio construtor de onde this() é chamado. III. Não há como usar this() e super() dentro do mesmo construtor. IV. this() pode ser chamado em qualquer lugar da classe. V. Uma classe pode conter quantos construtores se desejar. Questão 10 (1,0 ponto) Sobre buscas em arranjos, assinale as afirmações corretas: I. Busca binária é pelo menos tão boa quanto a sequencial. II. Busca binária e sequencial são equivalentes. III. Buscas binárias funcionam com qualquer tipo de arranjo. IV. Buscas sequenciais funcionam com qualquer tipo de arranjo. V. Buscas binárias funcionam apenas com arranjos ordenados. 6 GABARITO curso: Engenharia de Produção/ Engenharia de Computação bimestre: 4 o bimestre P5 Disciplina: ILP001 - Programação de computadores Questão 1 C Questão 2 A Questão 3 E Questão 4 B Questão 5 B Questão 6 E Questão 7 E Questão 8 D Questão 9 I, III e V. Questão 10 I, IV e V.
Compartilhar