Noções de Informática
Questões de Noções de Programação
20 questões de provas reais da FCC, Cesgranrio sobre Noções de Programação, com gabarito e comentário. Responda antes de abrir o gabarito.
322 questões desse assunto no acervo do Yatta. Esta página mostra uma amostra fixa.
Questão 1FCCDefensoria Pública do Estado do Rio Grande do SulAnalista - Informática2013
Classe Funcionario:
public class Funcionario {
private int id;
private String nome;
private double valorRef;
public Funcionario(int id, String nome, double valorRef) {...}
public double obterSalario(){ return valorRef; }
}
Classe Mensalista extends Funcionario:
private double horasExtras;
private double descontos;
@Override
public double obterSalario(){ return super.getValorRef() + horasExtras - descontos; }
Classe Diarista extends Funcionario:
public int diasTrabalhados;
@Override
public double obterSalario(){ return super.getValorRef() * diasTrabalhados; }
Classe Principal:
public static void main(String[] args) {
double sal01, sal02;
Funcionario fun01 = new Diarista(12, 1, "Maria Joaquina", 80.00);
Funcionario fun02 = new Mensalista(500.00, 200.00, 2, "Pedro Henrique", 1500.00);
sal01 = fun01.obterSalario();
sal02 = fun02.obterSalario();
}
Considere a existência de um projeto chamado Prova criado com a IDE NetBeans, contendo as classes Principal, Funcionário, Mensalista e Diarista, conforme código apresentado. Ao compilar e executar o projeto, as variáveis sal01 e sal02 receberão, respectivamente, os valores
- A 960.0 e 1800.0
- B 80.0 e 1500.0
- C 92.0 e 2200.0
- D 68.0 e 1200.0
- E 80.0 e 700.0
Ver gabarito e comentário
Gabarito: Letra APara Diarista, o salário é valorRef * diasTrabalhados = 80,00 * 12 = 960,0; para Mensalista, é valorRef + horasExtras - descontos = 1500,00 + 500,00 - 200,00 = 1800,0.
Questão 2FCCDefensoria Pública do Estado do Rio Grande do SulAnalista - Informática2013
Sobre as classes Principal, Funcionário, Mensalista e Diarista apresentadas anteriormente, é correto afirmar:
- A Quando o construtor de uma das superclasses recebem parâmetros, aqueles que são das subclasses são passados para os construtores das subclasses por meio da instrução super.
- B Na classe Principal, as instruções import classes.Diarista; e import classes.Mensalista; podem ser excluídas sem ocasionar erros, pois os objetos fun01 e fun02 são do tipo Funcionário e, por isso, apenas a classe Funcionário precisa ser importada.
- C Os objetos fun01 e fun02 são do mesmo tipo, porém, quando chamam o método obterSalario, recebem valores diferentes, logo, se comportam de maneiras diferentes. Essa constatação mostra o uso de um conceito da orientação a objetos chamado de polimorfismo.
- D As subclasses Mensalista e Diarista não podem possuir um construtor padrão sem argumentos, pois todos os objetos dessas classes precisam passar parâmetros para a superclasse Funcionário.
- E O fato das classes Diarista e Mensalista herdarem atributos e métodos da classe Funcionário demostra o uso de herança múltipla.
Ver gabarito e comentário
Gabarito: Letra CO fato de fun01 e fun02, declarados como Funcionário, produzirem resultados diferentes ao chamar obterSalario() demonstra o conceito de polimorfismo da orientação a objetos.
Questão 3FCCDefensoria Pública do Estado do Rio Grande do SulAnalista - Informática2013
Considerando as classes do projeto Prova apresentadas na questão anterior (Funcionário no pacote classes e Principal no pacote principal), se o método obterSalario fosse protected na classe Funcionário, a linha sal01 = fun01.obterSalario(); na classe Principal estaria
- A correta, pois métodos protected podem ser acessados de qualquer outra classe do projeto, inclusive da classe Principal.
- B correta, pois o método obterSalario chamado é da classe Diarista (que é public) e não da classe Funcionário.
- C incorreta, pois o método obterSalario chamado é da classe Mensalista e, na realidade, deveria ser da classe Diarista.
- D incorreta, pois como as classes Principal e Funcionário estão em pacotes diferentes, não é possível chamar o método obterSalario a partir da classe Principal.
- E correta, pois a classe Funcionário herda o método obterSalario (que é public) da classe Diarista.
Ver gabarito e comentário
Gabarito: Letra DComo as classes Principal e Funcionário estão em pacotes distintos e não há relação de herança entre elas, um método protected não poderia ser acessado diretamente pela classe Principal.
Questão 4FCCDefensoria Pública do Estado de São PauloAgente de Defensoria Pública - Analista de Sistemas2015
Em uma aplicação Java orientada a objetos um Analista precisa criar um tipo de classe que não pode ser instanciada diretamente e que deve possuir um conjunto de atributos privados, um construtor, métodos getter e setter, métodos implementados que deseja que várias subclasses compartilhem, e assinatura de métodos que deseja obrigar as subclasses a implementar de maneiras diferentes. O tipo de classe que o Analista deverá criar é
- A interface.
- B classe abstrata.
- C classe estática.
- D classe concreta.
- E bean gerenciado.
Ver gabarito e comentário
Gabarito: Letra BA classe abstrata em Java não pode ser instanciada diretamente, pode ter atributos, construtores e métodos concretos compartilhados pelas subclasses, além de métodos abstratos cuja implementação é obrigatória nas subclasses.
Questão 5FCCCompanhia de Saneamento Básico do Estado de São Paulo (Sabesp)Analista de Gestão I (Sistemas)2012
Considere as seguintes instruções, escritas utilizando na linguagem Java:
String i="20";
long v=120;
short y=30;
Para converter o conteúdo da variável i para int, da variável v para byte e da variável y para String pode-se utilizar, respectivamente,
- A int m = Integer.parseInteger(i);, byte n = v; e String o = String.convertTO(y);
- B int m = Int.parseInt(i);, byte n = (byte) v; e String o = String.IndexOf(y);
- C int m = Integer.parseInt(i);, byte n = (byte) v; e String o = String.valueOf(y);
- D int m =Integer.convertTo(i);, byte n= (long) v; e String o = String.valueOf(y);
- E int m =Int.convertTo(i);, byte n= (byte) v; e String o = String.IndexOf(y);
Ver gabarito e comentário
Gabarito: Letra CEm Java, Integer.parseInt(String) converte texto em int; um cast explícito (byte) é necessário para estreitar um long em byte; e String.valueOf(short) converte um valor numérico em String, sendo esse o único conjunto de instruções sintaticamente válido.
Questão 6Cesgranrio
Beto, estudante de programação, ao resolver um problema, testou diversos algoritmos e, com um deles, achou a seguinte impressão com o resultado correto: soma = 39. Esse resultado foi entregue ao professor. Indagado sobre com qual algoritmo tinha encontrado o resultado correto, Beto percebeu que não mais lembrava. E teve que repetir as experiências. Qual foi o algoritmo utilizado pelo estudante?
- A inicio
variável inteiro chave, soma
soma <- 0
chave <- 10
enquanto chave < 18 faz
soma <- soma + chave
chave <- chave + 3
fim enquanto
escrever "soma =", soma
fim
- B inicio
variável inteiro chave, soma
soma <- 0
chave <- 10
enquanto chave < 18 faz
escrever "soma =", soma
soma <- soma + chave
chave <- chave + 3
fim enquanto
fim
- C inicio
variável inteiro chave, soma
soma <- 0
chave <- 10
escrever "soma =", soma
enquanto chave < 18 faz
soma <- soma + chave
chave <- chave + 3
fim enquanto
fim
- D inicio
variável inteiro chave, soma
soma <- 0
chave <- 10
se chave < 18 então
soma <- soma + chave
chave <- chave + 3
fim se
escrever "soma =", soma
fim
- E inicio
variável inteiro chave, soma
soma <- 0
chave <- 10
se chave < 18 então
chave <- chave + 3
soma <- soma + chave
fim se
escrever "soma =", soma
fim
Ver gabarito
Gabarito: Letra A
Questão 7Cesgranrio
Considere que uma fila de prioridades para caracteres está armazenada em um vetor, através de um heap binário, conforme mostra a figura. Considere, também, que as posições desse vetor são indexadas a começar de um.
P Q R S T U V W X Y Z
Quais são, respectivamente, os caracteres armazenados no filho esquerdo, no filho direito e no pai do nó correspondente ao índice 2?
- A P, Q e S
- B P, Z e S
- C Q, S e U
- D S, T e P
- E U, T e Q
Ver gabarito
Gabarito: Letra D
Questão 8Cesgranrio
Considere o trecho de código que corresponde ao método principal de uma classe em linguagem Java.
public static void main(String[] args) {
int n = 1;
int x = 0;
int i;
while (n < 10) {
if (n % 2 != 0) {
for (i = 3; i * i <= n; i += 2) {
if (n % i == 0)
break;
}
if (i < n) {
x++;
}
}
n++;
}
System.out.println(x);
}
Qual o resultado produzido por esse método quando ele é corretamente executado?
- A 0
- B 1
- C 2
- D 3
- E 5
Ver gabarito
Gabarito: Letra D
Questão 9Cesgranrio
Na programação orientada a objetos, há dois mecanismos possíveis para criar relacionamentos entre classes: a composição e a herança. Em um programa orientado a objetos, suponha que entre duas classes X e Y exista um relacionamento de herança no qual X é subclasse de Y. Suponha também que Y seja uma subclasse de uma classe abstrata denominada Z. Por fim, suponha que existam apenas métodos públicos ou privados, tanto em Y quanto em Z.
Para alterar esse programa de tal forma que ele permaneça o mesmo, do ponto de vista funcional para os clientes da interface pública da classe X, e que o relacionamento de herança entre X e Y seja substituído pelo de composição, um passo necessário no caso geral é definir um atributo do tipo
- A X na classe Y
- B X na classe Z
- C Y na classe X
- D Y na classe Z
- E Z na classe X
Ver gabarito
Gabarito: Letra C
Questão 10Cesgranrio
Em uma aplicação Java EE, na substituição de uma solução que usa o Transparent Façade por outra que usa o Session Façade, os clientes devem ser refatorados para interagir com objetos Data Transfer Object eventualmente criados durante essa substituição. PORQUE Em uma aplicação Java EE, o uso do Transparent Façade em vez do Session Façade aumenta a granularidade das funções definidas na fachada resultante. Analisando-se as afirmações acima, conclui-se que
- A as duas afirmações são verdadeiras, e a segunda justifica a primeira.
- B as duas afirmações são verdadeiras, e a segunda não justifica a primeira.
- C a primeira afirmação é verdadeira, e a segunda é falsa.
- D a primeira afirmação é falsa, e a segunda é verdadeira.
- E as duas afirmações são falsas.
Ver gabarito
Gabarito: Letra C
Questão 11Cesgranrio
Analise o código em C a seguir.
#include <stdio.h>
int x(int n) {
int i;
for (i=2000;i<2010;i++)
n+=1;
if (n%2==0)
return 10;
else
return 20;
}
int y(int n) {
int j;
for (j=2010;j>2000;j—)
n+=2;
if (n>10)
return 2;
else if (n>20)
return 8;
else if (n>2010)
return 9;
else
return 1;
}
int main() {
printf(“%d”,x(2010)+y(2010)*2);
return 0;
}
Qual a saída impressa desse código?
- A 12
- B 14
- C 24
- D 26
- E 28
Ver gabarito
Gabarito: Letra D
Questão 12Cesgranrio
Os dados contidos num vetor V unidimensional com n2 posições, n > 2, são números inteiros e positivos tais que V[k] = k. Esses dados são transferidos, a partir de V[1], sequencialmente, para uma matriz M (nxn). A matriz é preenchida, linha por linha, de cima para baixo (de 1 a n). Cada linha é preenchida coluna por coluna, da esquerda para a direita (de 1 a n). Qual é o valor do conteúdo da célula M(p,q), conteúdo da p-ésima linha e da q-ésima coluna?
- A (p-1) . n + q
- B (p-1) . n - q
- C (p+1) . n + q
- D p . (n-1) + q
- E p . (n+1) - q
Ver gabarito
Gabarito: Letra A
Questão 13Cesgranrio
Considere uma estrutura do tipo árvore binária que começa vazia. Nela são introduzidos os números 2, 10, 5, 7, 1, 0 e 8, exatamente nessa ordem. Se essa árvore for lida em pré-ordem, que sequência de números será impressa?
- A 2, 1, 0, 8, 7, 5, 10
- B 2, 1, 0, 10, 5, 7, 8
- C 0, 1, 8, 7, 5, 10, 2
- D 0, 1, 2, 8, 7, 5, 10
- E 0, 1, 2, 10, 5, 7, 8
Ver gabarito
Gabarito: Letra B
Questão 14Cesgranrio
Em linguagens orientadas a objetos, existem dois conceitos fundamentais: I – a definição de uma estrutura, a partir da qual é possível especificar todas as características da implementação, operações e armazenamento de informações para instâncias que serão criadas posteriormente. II – instâncias específicas criadas a partir da definição das estruturas referentes ao conceito I. Esses conceitos correspondem, respectivamente, ao que se conhece pelos nomes de I II
- A Tipo Classe
- B Tipo Construtor
- C Classe Tipo
- D Classe Objeto
- E Classe Metaclasse
Ver gabarito
Gabarito: Letra D
Questão 15Cesgranrio
Considere o seguinte algoritmo de ordenação de elementos em uma lista: 1. Escolha um elemento que será chamado o pivot da lista. 2. Reordene a lista de tal forma que os elementos menores que o pivot venham antes dele e os elementos maiores ou iguais ao pivot venham depois dele. Essa operação é chamada de partição, e cria duas sublistas: a. a de menores que o pivot e b. a de maiores ou iguais ao pivot. 3. Aplique recursivamente os passos 1 e 2 às sublistas de menores e maiores que o pivot. O algoritmo acima corresponde ao
- A Quicksort, e faz, em média, O(n log n) comparações para ordenar n itens.
- B Quicksort, e faz, em média, O(n2) comparações para ordenar n itens.
- C Insertionsort, e faz, em média, O(n) comparações para ordenar n itens.
- D Insertionsort, e faz, em média, O(n log n) comparações para ordenar n itens.
- E Bublesort, e faz, em média, O(n2) comparações para ordenar n itens.
Ver gabarito
Gabarito: Letra A
Questão 16Cesgranrio
Considere o seguinte trecho de código em Java:
public class Dummy {
public static int a = 1;
public int b = 2;
}
Dummy x = new Dummy();
Dummy y = new Dummy();
x.a = 1 + y.a;
x.b = x.a + y.b;
System.out.println(“x.b = “ + x.b);
A saída na tela após a execução desse trecho será:
- A 4
- B 2
- C x.b = 2
- D x.b = + 2
- E x.b = 4
Ver gabarito
Gabarito: Letra E
Questão 17Cesgranrio
using System;
public class Prova
{
public static void Main()
{
int[] a=new int[10];
int i=0;
while (i<10) {
a[i] = i + (i>0 ? a[i-1] : 0);
i++;
}
Console.WriteLine(a[9]);
}
}
O que ocorre com o programa C#, apresentado acima, quando é compilado e posteriormente executado?
- A Compila corretamente, executa e imprime o número 45.
- B Compila corretamente, executa e imprime o número 9.
- C Compila corretamente e executa, mas nunca termina.
- D Compila corretamente, mas apresenta erro de execução.
- E Apresenta erro na compilação.
Ver gabarito
Gabarito: Letra A
Questão 18Cesgranrio
Os percursos em profundidade de uma árvore binária, conhecidos como pré-ordem e pós-ordem, são, respectivamente
- A Pré-ordem visitar a raiz, percorrer a subárvore esquerda em pré-ordem e depois percorrer a subárvore direita em pré-ordem. Pós-ordem percorrer a subárvore direita em pós-ordem, percorrer a subárvore esquerda em pós-ordem e, por último, visitar a raiz.
- B Pré-ordem visitar a raiz, percorrer a subárvore esquerda em pré-ordem e depois percorrer a subárvore direita em pré-ordem. Pós-ordem percorrer a subárvore esquerda em pós-ordem, percorrer a subárvore direita em pós-ordem e, por último, visitar a raiz.
- C Pré-ordem visitar a raiz, percorrer a subárvore direita em pré-ordem e depois percorrer a subárvore esquerda em pré-ordem. Pós-ordem percorrer a subárvore esquerda em pós-ordem, percorrer a subárvore direita em pós-ordem e, por último, visitar a raiz.
- D Pré-ordem visitar a raiz, percorrer a subárvore direita em pré-ordem e depois percorrer a subárvore esquerda em pré-ordem. Pós-ordem percorrer a subárvore direita em pós-ordem, percorrer a subárvore esquerda em pós-ordem e, por último, visitar a raiz.
- E Pré-ordem visitar a raiz, percorrer a subárvore esquerda em pré-ordem e depois percorrer a subárvore direita em pré-ordem. Pós-ordem visitar a raiz, percorrer a subárvore direita em pós-ordem, percorrer a subárvore esquerda em pós-ordem.
Ver gabarito
Gabarito: Letra B
Questão 19Cesgranrio
A função a seguir implementa um algoritmo de busca binária sobre um vetor de inteiros ordenado de modo ascendente.
int busca(int vet[], int elem, int ini, int fim) {
int m;
if(fim < ini)
return -1;
m=(ini + fim) / 2;
System.out.println(vet[m]);
if(vet[m] == elem)
return m;
if(vet[m] > elem)
return busca(vet, elem, ini, m-1);
return busca(vet, elem, m+1, fim);
}
Essa função recebe como parâmetros um vetor (vet), o elemento que se deseja procurar no vetor (elem), o índice do pri-meiro elemento do vetor (ini) e o índice do último elemento do vetor (fim).
O comando System.out.println(vet[m]) exibe no console o valor do elemento de índice m do vetor vet.
Seja o seguinte vetor (vt) de inteiros:
Suponha que a função busca seja chamada por meio do seguinte comando:
busca(vt, 39, 0, 14);
Qual será o 3o valor exibido no console?
Qual será o 3o valor exibido no console?
- A 65
- B 51
- C 57
- D 38
- E 27
Ver gabarito
Gabarito: Letra C
Questão 20Cesgranrio
Dentro dos conceitos de algoritmos estruturados, uma estrutura de repetição, onde o conjunto de comandos em seu interior é executado até satisfazer uma determinada condição, é conhecida como
- A Laço Contado
- B Laço Condicional
- C Estrutura de Decisão Simples
- D Estrutura de Decisão Composta
- E Estrutura de Junção
Ver gabarito
Gabarito: Letra B
Outros assuntos de Noções de Informática
Concursos abertos que cobram Noções de Informática
Ver todos os concursos abertos
Como treinar Noções de Programação
Resolva primeiro, confira depois, e anote o motivo de cada erro: a banca repete o mesmo tipo de pegadinha. No Yatta, as 322 questões desse assunto entram na sua sessão de estudo quando ele está no edital do seu concurso, e o Professor Yatta explica cada erro na hora.
Treine Noções de Programação com todas as questões da sua banca
Escolha o seu concurso e o Yatta monta a sessão com as questões que a sua banca já cobrou sobre Noções de Programação, com explicação de cada erro.
Começar 14 dias grátis
Sem cartão de crédito. Cancele com dois cliques.