Buscar

Revisão Antecipada CNU Bloco 2 - Tecnologia, Dados e Informação - Parte II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 262 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 262 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 262 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Língua Espanhola
Prof. Adinoél Sebastião
Língua Espanhola
Prof. Adinoél Sebastião
1
2
Língua Espanhola
Prof. Adinoél Sebastião
REVISÃO DE VÉSPERA
CNU
BLOCO 2 - TECNOLOGIA, DADOS E INFORMAÇÃO - PARTE II
EIXO TEMÁTICO 4 –
DESENVOLVIMENTO DE SOFTWARE
3
4
Língua Espanhola
Prof. Adinoél Sebastião
PROGRAMAÇÃO E ESTRUTURAS
DE DADOS
Prof. Raphael Lacerda
DICAS E AGENDA!
@canetas.pretas
@canetaspretas
https://www.youtube.com/@canetaspretas
5
6
AGORA EM ÁUDIO TBM!
SEU LUGAR É AQUI!!!
@canetas.pretas
7
8
CESGRANRIO
DEV - QUESTÕES
https://www.instagram.com/p/B74PyOzj5V3/
https://www.estrategiaconcursos.com.br/blog/prazer-um-eterno-estudante/
Prof. Raphael Lacerda
ESSE CURSO É PARA VOCÊ?
Prof. Raphael Lacerda
9
10
#PROGRAMACAO
Prof. Raphael Lacerda
É uma característica distintiva das linguagens de programação funcionais a(o)
A ênfase em mutabilidade de variáveis, para otimizar o uso de memória.
B prioridade na otimização de uso de memória, para aumentar a eficiência.
C dependência de estruturas de controle de fluxo imperativas.
D uso exclusivo de programação orientada a objetos, ou classes. 
E paradigma baseado em expressões e funções puras, ou seja, o valor de cada 
expressão e aplicação de função é determinado unicamente pelos valores dos seus 
argumentos.
CESGRANRIO/UNEMAT/2024
11
12
Várias abordagens que apoiam o reúso estão disponíveis a gerentes de projeto. Entre elas está a 
abordagem usada quando componentes compartilhados são entrelaçados em uma aplicação em diferentes 
lugares durante a compilação do programa.
A abordagem descrita é a de
A padrões de projeto
B padrão de arquitetura
C frameworks de aplicação
D integração de sistemas de aplicação
E desenvolvimento de software orientado a aspectos
CESGRANRIO/UNEMAT/2024
Ao construir uma aplicação para web, um programador decidiu projetar a arquitetura do 
software, seguindo o modelo Model-View-Controller (MVC).
Nesse modelo, a função do Controller inclui
A apresentar a view escolhida e incorporar os estados da aplicação.
B encapsular o conteúdo dos objetos e gerenciar requisições do usuário.
C gerenciar requisições do usuário e preparar dados do modelo.
D selecionar a resposta da view e encapsular funcionalidade.
E selecionar comportamento do modelo e selecionar a resposta da view. 
CESGRANRIO/UNEMAT/2024
13
14
O Ipea resolveu fazer uso de um método de desenvolvimento de web services que usa componentes de software, 
chamados de serviços, para criar aplicações associadas à obtenção de dados de saneamento básico, de modo a 
melhorar a parte dinâmica de seus sites.
Considerando-se essa decisão e o requisito de que as respostas aos requerimentos dos usuários externos devem 
ser resolvidas mais rapidamente, o método de desenvolvimento indicado é o
A EDA
B SOA
C WSA
D Adapter
E Singleton
CESGRANRIO/IPEA/2024
Em uma arquitetura orientada a serviços, SOA, é encontrada a seguinte 
característica:
A alto acoplamento
B baixa escalabilidade
C baixa disponibilidade
D menor confiabilidade
E fácil manutenibilidade
CESGRANRIO/IPEA/2024
15
16
A área de TI do Ipea pretende utilizar uma arquitetura orientada em eventos para o software que formata dados 
oriundos do IBGE. A proposta indica que essa arquitetura deve ter uma infraestrutura de mensageria baseada em 
subscrições em um fluxo de eventos, na qual, após um evento ocorrer ou ser publicado, ele é enviado aos 
subscritores que precisam ser informados.
Qual é a arquitetura baseada em eventos que possui uma infraestrutura com essas características descritas?
A pub/sub
B serv/arch
C web services/DL
D bussines process
E event transmission
CESGRANRIO/IPEA/2024
Considere uma necessidade do Ipea de construir uma API que sirva para interfacear seu sistema de cadastro de 
usuários internos e seu sistema de funcionários terceirizados, de modo a garantir melhor segurança e 
confiabilidade. Para isso, será utilizado um modelo de API apropriadamente baseado no REST.
Considerando o contexto apresentado, qual deverá ser o modelo de API utilizado?
A MVC
B Zope
C Grovy
D Laravel
E RESTful
CESGRANRIO/IPEA/2024
17
18
@canetas.pretas
#O.O
CESGRANRIO/IPEA/2024
19
20
CESGRANRIO/IPEA/2024
Um banco de investimento extrai informações do Ipeadata e as envia para seus 
principais clientes corporativos. Os dados devem ser enviados, preferencialmente, 
no formato XML, porém, caso não seja possível, podem ser enviados no formato 
JSON. Se ainda assim não for possível enviá-los, o formato de texto deve ser 
utilizado.
As classes inicialmente criadas para solucionar esse problema são as seguintes:
Qual princípio SOLID é violado no design da solução apresentada?
A Dependency inversion B Interface segregation C Liskov substitution D Open–closed 
E Single responsibility
CESGRANRIO/UNIRIO/2019
Em orientação a objetos, uma classe abstrata é uma classe que
A possui apenas métodos estáticos.
B não pode ser instanciada.
C não possui métodos.
D não possui variáveis de instância.
E não pode ter subclasses.
21
22
CESGRANRIO/UNIRIO/2019
Qual a propriedade, típica da orientação a objeto, que habilita uma quantidade 
de operações diferentes a ter o mesmo nome, diminuindo o acoplamento entre 
objetos?
A Encapsulamento
B Especialização
C Herança
D Padrões de projeto
E Polimorfismo
CESGRANRIO/UNIRIO/2016
Em linguagens orientadas a objetos (OO), classes representam a descrição da implementação de tipos 
abstratos a partir dos quais instâncias podem ser criadas. Cada instância, depois de criada, guarda seu 
estado próprio independente das demais instâncias. Esse estado pode ser alterado de acordo com 
operações definidas pela classe, mas, ao serem executadas, as operações atuam individualmente sobre 
cada instância. Na nomenclatura OO, instâncias e operações são conhecidas, respectivamente, como
A Métodos e Funções
B Objetos e Heranças
C Objetos e Métodos
D Tipos e Objetos
E Tipos e Heranças
23
24
CESGRANRIO/UNIRIO/2014
Considere que um programa orientado a objeto possui 5 classes: Máquina, Motor, MotorExplosão, MotorVapor e Gerador. 
MotorExplosão e MotorVapor são especializações de Motor. Motor e Gerador são especializações de Máquina. Todas as classes 
respondem a uma mensagem chamada “calcularPotencia”, sem argumentos, que calcula e retorna um número real que indica 
potência do objeto, em watts, de acordo com os valores de alguns atributos, com um algoritmo diferente em cada classe. O exemplo
acima caracteriza a capacidade de enviar a mesma mensagem para vários objetos e que cada objeto responda a essa mensagem de 
acordo com sua classe.
Tal característica é conhecida como:
A Polimorfismo
B Refatoração
C Herança Múltipla
D Independência de Dados
E Tratamento de Exceção
CESGRANRIO/UNIRIO/2012
A modelagem de casos de uso é uma técnica adequada para detalhar requisitos funcionais de um sistema de software orientado a 
objetos através da decomposição funcional do comportamento desse sistema.
PORQUE
Na modelagem orientada a objetos, um modelo de classes conceituais apresenta classes que correspondem a conceitos do domínio 
do problema e que são compostas de atributos e métodos resultantes do processo de decomposição funcional.
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.
25
26
CESGRANRIO/UNIRIO/2012
Um dos objetos da fase de projeto de sistemas de software é definir e organizar as 
partes desse sistema da maneira mais adequada possível. Relativamente a essas 
partes, devem ser maximizada e minimizada, respectivamente, as medidas
A encapsulamento e coesão
B encapsulamento e acoplamento
C acoplamento e coesão
D acoplamento e encapsulamento
E coesão e encapsulamento
#JAVA
Prof. Raphael Lacerda27
28
Na linguagem Java, para impedir que um método criado em uma classe J não possa ser 
sobrescrito por alguma outra classe K que herde de J, deve-se usar a palavra
Alternativas
A extends
B final
C implements
D super
E void
CESGRANRIO/UNEMAT/2024
Em um projeto desenvolvido na linguagem Java, considere um método P que chama um método Q. Existe 
uma palavra que, quando colocada na assinatura do método Q, faz com que, caso ocorra uma exceção 
nesse método, o tratamento dessa exceção seja da responsabilidade do método P.
Qual é essa palavra?
A catch
B Exception
C finally
D throws
E try
CESGRANRIO/UNEMAT/2024
29
30
É uma característica da linguagem Java conseguir representar a
A codificação de métodos completos em interfaces
B herança múltipla de interface
C herança múltipla de classe
D instanciação de classes abstratas
E instanciação de interfaces
CESGRANRIO/UNEMAT/2024
Em linguagem de programação Java, polimorfismo é
A relacionado, apenas, à alteração de valores de variáveis durante a execução do programa.
B relacionado, apenas, à sobrecarga de métodos, onde várias versões do mesmo método 
podem ser definidas na mesma classe. 
C relacionado, apenas, à capacidade de ocultar a implementação de um método em uma 
classe filha, tornando-o acessível apenas na classe base.
D a capacidade de uma classe estender múltiplas classes pai, simultaneamente.
E a capacidade de uma classe ter várias formas, permitindo que um objeto seja tratado como 
uma instância de sua classe base ou de qualquer uma de suas subclasses.
CESGRANRIO/UNEMAT/2024
31
32
No processo de geração de código executável em Java, a etapa crucial que envolve a 
transformação do código- -fonte Java em bytecode e o componente responsável por 
executar esse bytecode são, respectivamente,
A bytecode e JIT Compiler
B compilação e JRE
C compilação e JVM
D interpretacão e JRE
E intermediário e Bytecode Engine
CESGRANRIO/UNEMAT/2024
O garbage collector (coletor de lixo) gerencia automatica- mente as solicitações de alocação 
dinâmica de memória das aplicações. O Java HotSpot VM inclui diferentes tipos de coletores, 
cada um com características de desempe- nho diferentes. Um desses coletores foi projetado 
espe- cificamente para grandes heaps, variando, normalmente, de alguns gigabytes a vários 
terabytes. Ele se concentra em minimizar o impacto das pausas na coleta de lixo, tor- nando-o 
adequado para aplicações sensíveis à latência. Esse coletor é usado em cenários em que as 
aplicações exigem tempos de resposta consistentes e têm requisitos de latência rigorosos.
O coletor descrito é o
(A) Serial (B) Parallel (C) G1
(D) CMS (E) ZGC
CESGRANRIO/IPEA/2024
An Introduction to ZGC: A Scalable and 
Experimental Low-Latency JVM Garbage 
Collector | Baeldung
33
34
CESGRANRIO/IPEA/2024
Sejam as seguintes classes Java, que ocupam, cada qual, o seu próprio 
arquivo:
Qual classe poderá ser inserida em um projeto, juntamente com as 
classes acima, sem produzir erros de compilação?
CESGRANRIO/IPEA/2024
35
36
CESGRANRIO/IPEA/2024
Um desenvolvedor pretende criar um artefato que permita definir quais métodos obrigatoriamente deverão ser desenvolvidos por 
classes que o implementem. Tais métodos deverão ser capazes de criar, recuperar, atualizar e deletar (CRUD) dados persistidos que 
poderão ser fornecidos por diferentes fontes, como, por exemplo, diferentes tipos de banco de dados. Esse artefato irá funcionar
como um contrato a ser respeitado por cada classe que o implementar.
O tipo de artefato mencionado é a(o)
A Interface
B Enumeração
C Classe concreta
D Objeto
EConstrutor de classe
CESGRANRIO/Transpetro/2023
37
38
CESGRANRIO/Transpetro/
2023
Suponha que a seguinte sequência de números inteiros tenha sido digitada por um usuário quando da 
execução do método main acima: 
4 16 8 12 7 14 9 15 -1 
O que foi exibido no console pelo método main?
A 7 4 9 16 15 8 12 14
B 7 4 9 16 15 8
C 15 14 9 12 7 8
D 15 14 9 12 7 8 16 4
E 4 7 16 9 8 15
CESGRANRIO/Transpetro/2023
39
40
Um programador foi instruído pelo seu gerente a implementar, em Java, uma classe MemoriaCalculoVenda que 
implementasse a interface MemoriaCalculo, já criada pela organização e que representa as exigências da 
organização para classes que implementam memórias de cálculo. 
Nesse cenário, com que fragmento de código o programador deve começar, de forma correta, a implementação da 
classe?
A class MemoriaCalculoVenda extends MemoriaCalculo 
B class MemoriaCalculoVenda implements MemoriaCalculo 
C class MemoriaCalculoVenda imports MemoriaCalculo 
D class MemoriaCalculoVenda inherits MemoriaCalculo
E class MemoriaCalculoVenda uses MemoriaCalculo 
CESGRANRIO/BB/2023
CESGRANRIO/ELETRO/2022
41
42
A função acima não está completa. É preciso substituir os comentários // 1 e // 2 por comandos que façam 
com que a função execute a troca de vogais minúsculas por vogais maiúsculas e retorne a string resultante.
Quais comandos completam a função de acordo com o objetivo definido acima? 
A
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return troca ( str.substring ( 1 ) ); 
B
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return c + troca ( str.substring ( 0 ) );
CESGRANRIO/ELETRO/2022
CESGRANRIO/ELETRO/2022
C
// 1 deve ser substituído por return c ;
// 2 deve ser substituído por return c + troca ( str.substring ( 1 ) ); 
D
// 1 deve ser substituído por return c ;
// 2 deve ser substituído por return c + troca ( str.substring ( 0 ) );
E
// 1 deve ser substituído por return c + troca ( str.substring ( 1 ) );
// 2 deve ser substituído por return c + troca ( str.substring ( 1 ) );
43
44
CESGRANRIO/Banco Amazonia/2022
Qual definição de interface Java NÃO produz erro de compilação?
Alternativas
A interface P { int x; int y;
public void op1(String x); }
B abstract interface Q { public int x; public int y;
public default void op1() { System.out.println(x+y); } }
C final interface R { int x=10; int y=20;
public static void op1() { System.out.println(x+y); } }
D public interface S { public static int x=10; public static int y=20;
public static void op1() { x++; y++; System.out.println(x+y); } }
E public abstract interface T { static int x=20; public int y=20;
static void op1() { System.out.println(x+y); } }
Java Interface (w3schools.com)
● Interface attributes are by 
default public, static and 
final
CESGRANRIO/Banco Amazonia/2022
Admita que as duas classes Java a seguir pertençam ao pacote default e ocupem arquivos separados.
public class Va { private int a=0,b=2,c=4; private static int sb; 
public Va() { a*=2; b*=3; c*=4; } 
public Va(int x) { this(); sb+=x; }
{ sb*=2; a+=1; } 
static { sb+=8; } 
public void print() { System.out.print(a+b+c+sb); } }
public class Main { public static void main(String[] args) { new Va(1).print(); } }
O que será exibido no console quando o método main for executado?
Static vs. Instance Initializer Block in Java | 
Baeldung
45
46
CESGRANRIO/ELETRO/2022
O encapsulamento é um dos quatro conceitos fundamentais da orientação a objetos. Seu objetivo é tratar os dados (variáveis) e as operações sobre esses dados 
(métodos), de forma unitária. De acordo com esse princípio, as variáveis de uma classe ficam ocultas de outras classes, de forma que só possam ser acessadas 
pelos métodos públicos da classe em que se encontram.
Entretanto, a maioria das linguagens de programação orientadas a objetos disponibilizam um mecanismo para que o encapsulamento possa ser atenuado sob 
certas condições. Por exemplo, as variáveis de instância de uma classe podem ser livrementeacessadas pelos métodos de instância de todas as suas subclasses.
Esse acesso é possível, caso essas variáveis sejam declaradas como
A protegidas
B estáticas
C globais
D automáticas
E virtuais
CESGRANRIO/BANCO AMAZONIA/2021
Considere a classe Java abaixo.
O que o console exibirá quando o método main() for executado?
47
48
CESGRANRIO/BANCO AMAZONIA/2021
CESGRANRIO/BANCO AMAZONIA/2021
O que o console exibirá quando o método main() for executado?
A .i.a..
B ..a.i.
C l.s.rB
D Br.s.l
E Brasil
49
50
CESGRANRIO/PETRO/2014
O que imprimirá esse programa quando executado?
A oirnrgsevorp
B provegrnrio
C oirnrgsecvorp
D ac a
E a a
How to Compare Characters in Java | Java 
Hungry
EJB
Prof. Raphael Lacerda
Cada tipo de enterprise bean passa por diferentes fases durante seu ciclo de vida. Um
desses tipos possui um estado denominado Passivo. Quando um bean entra nesse estado, o
container EJB o desloca da memória principal para a memória secundária.
Qual tipo de bean se comporta dessa maneira?
A Stateless Session Bean
B Stateful Session Bean
C Web Service Bean
D Singleton Session Bean
E Message-Driven Bean
Cesgranrio/BNDES/2013
51
52
EJB
Prof. Raphael Lacerda
Entity EJB e o statement SQL "SELECT FOR UPDATE" são técnicas para se
implementar o padrão arquitetural
A Estado da sessão no cliente (Client Session State).
B Bloqueio offline otimista (Optimistic Offline Lock).
C Bloqueio offline pessimista (Pessimistic Offline Lock).
D Objeto de transferência de dados (data transfer object).
E Mapeador (mapper).
Cesgranrio/BNDES/2009
EJB
Prof. Raphael Lacerda
Cesgranrio/PETRO/2010
53
54
EJB
Prof. Raphael Lacerda
O código acima apresenta um(a)
A EJB padrão 2.1 com informação de estado.
B bean de entidade para a tabela Produto.
C classe POJO que segue o padrão JavaBean.
D classe que utiliza JMS.
E classe que implementa o padrão FrontController
Cesgranrio/PETRO/2010
JSP - questões
Prof. Raphael Lacerda
Cesgranrio/Petro/2012
Em aplicações Java Enterprise Edition 6, é comum o uso da API JPA. Nessa API, há o
conceito de classe de entidade (entity class).
Por definição, uma classe de entidade deve, obrigatoriamente, cumprir os seguintes
requisitos, EXCETO
A estar anotada com a anotação Entity ou representada em um descritor XML.
B não ser qualificada com final.
C ter as variáveis de instância persistentes qualificadas com private, protected, ou
package-private.
D ter ao menos um construtor, este sem argumentos (no-arg constructor).
E ter o mesmo nome da tabela correspondente do banco de dados
55
56
JSP - questões
Prof. Raphael Lacerda
Cesgranrio/Petro/2011
I - EJB fornece ao programador Java EE os seguintes tipos fundamentais: Entity Beans,
Session Beans e Message Driven Beans.
II - JPA é parte integrante da especificação EJB e serve para definir as interfaces de acesso
local e/ou remoto de um componente EJB.
III - Um servidor de aplicações Java EE oferece vários recursos ao desenvolvedor como
pool de conexão, controle de transação, segurança e gerenciamento de recursos.
IV - Uma diferença entre as tecnologias Servlets e JSP é que, ao contrário da segunda, a
primeira permite o armazenamento do estado da aplicação em variáveis de sessão
assinale a afirmativa INCORRETA.
A A arquitetura J2EE Connector define um conjunto de contratos no nível de
sistema entre um servidor de aplicação e o EIS (Enterprise Information
System), entre os quais, o Connection Management, que permite que um pool
de servidores de aplicação se conecte a um EIS subjacente e que
componentes da aplicação se conectem a um EIS.
B Uma prática que pode melhorar o desempenho de EJBs consiste em
empacotar beans de entidade em um bean de sessão para transformar
chamadas EJB remotas em uma chamada de bean de sessão remota e várias
locais (pattern conhecido como fachada de sessão).
EJB
Prof. Raphael Lacerda
Cesgranrio/PETRO/2006
57
58
EJB
Prof. Raphael Lacerda
C Um descritor de instalação, localizado dentro de um arquivo Java Archive (JAR), permite que as
propriedades de um EJB sejam mantidas fora do código Java e que o desenvolvedor do bean torne as
informações sobre o bean disponíveis para o montador da aplicação e para o instalador do bean.
D Para se garantir a entrega de uma mensagem para um único destinatário, o modelo de troca de
mensagens publish/subscribe do JMS com o modo de entrega persistente e um assinante durável é mais
indicado, enquanto que se a mensagem for para vários destinatários, pode-se utilizar o modelo ponto a
ponto do JMS com um modo de entrega persistente.
E Na persistência gerenciada por contêiner (CMP), os dados do bean de entidade são mantidos
automaticamente pelo contêiner, como, por exemplo, um contêiner implementando persistência sobre
um banco de dados relacional (RDBMS) pode gerenciar a persistência armazenando os dados de um
bean como uma linha em uma tabela.
Cesgranrio/PETRO/2006
59
60
CESGRANRIO/Caixa/2021
As classes Java a seguir pertencem ao pacote default e foram incluídas no arquivo Main.java.
O que será exibido no console quando o método main for executado?
A 3
B 4
C 19
D 27
E 31
CESGRANRIO/Caixa/2021
As classes Java a seguir pertencem ao pacote default. class A1 { protected int va1=1,va2=2; public 
A1(int x) { va1+=x; va2*=x; } } class A2 extends A1 { protected int vb1=10; } class A3 extends 
A2 { protected int vc1=0; public A3(int y) { vc1=(va1+va2)*y; } } public class Main { public 
static void main(String[] args) { A3 o=new A3(2); System.out.println(o.vc1); } } Qual construtor 
poderá ser inserido na classe A2, sem que um erro de compilação seja gerado?
A public A2() { vb1=va1+va2; }
B public A2(int z) { super(z); vb1=va1+va2; }
C public A2() { vb1=va1+va2; super(vb1); }
D public A2() { super(0); vb1=va1+va2; }
E public A2() { super(vb1); }
61
62
CESGRANRIO/BB/2021
Sejam as seguintes classes Java:
public class Va1 {
public static String getStr() {
return “abcdefghijklmnop“; }
public String ini(String s, int cpr) {
return s.substring(0, cpr);
}
public String fin(String s, int cpr) {
return ini(s, cpr)+s.substring(s.length()-cpr, s.length());
}
}
Can We Override Static Method in Java -
Javatpoint
A Single Java Program Can Contain How 
many Classes? - Scaler Topics
Online Java Compiler - Online Java Editor -
Java Code Online (jdoodle.com)
CESGRANRIO/BB/2021
public class Va2 extends Va1 {
public static String getStr() {
return “0123456789ABCDEF“; }
public String ini(String s, int cpr) {
return s.substring(s.length()-cpr, s.length());
}
public static void main(String[] args) {
Va1 o=new Va2();
System.out.println(o.fin(o.getStr(), 5));
}
}
63
64
CESGRANRIO/BB/2021
O que será exibido no console quando o método main for executado?
(A) 0123BCDE
(B) BCDEFBCDEF 
(C) 01234BCDEF
(D) abcdelmnop 
(E) lmnoplmnop
CESGRANRIO/BB/2021
65
66
CESGRANRIO/BB/2021
As classes Java a seguir são públicas e ocupam arquivos separados.
O que será exibido no console quando o método main for executado?
(A) 0 (B) 10 (C) 24 (D) 25 (E) 33
https://www.geeksforgeeks.org/ord
er-execution-initialization-blocks-
constructors-java/
CESGRANRIO/B.A/2018
A linguagem de programação Java suporta
Alternativas
A
passagem de parâmetros de tipos primitivos por referência
B
sobrecarga de operadores
C
herança múltipla
D
polimorfismo
E
ponteiros
67
68
#ESTRUTURA DE DADOS
#ORDENACAO
Prof. Raphael Lacerda
Mas isso cai em prova?
Prof. Raphael Lacerda
Questão Discursiva 91582 | FGV | TI -
Desenvolvimento de Sistemas | 
(voceconcursado.com.br)
69
70
Mas isso cai em prova?
Prof. Raphael Lacerda
Mas isso cai em prova?
Prof. Raphael Lacerda
71
72
CESGRANRIO/IPEA/2024
Quando a função main for executada, será exibido no console o valor
A 47
B 49
C 100
D 150
E 200
CESGRANRIO/IPEA/2024
Suponha que uma função percorra essa árvore em ordem simétrica e exibaos valores de seus 
nós no console.
Qual será o sexto valor a ser exibido por essa função?
A 20
B 30
C 60
D 70
E 80
73
74
CESGRANRIO/BB/2021
Dentre os problemas identificados pela gerência de um banco comercial, está a localização das contas dos seus 
titulares nas listagens e nos relatórios impressos em diferentes situações. Um especialista de TI sugeriu ordenar as 
contas por meio dos CPF dos seus n titulares antes das impressões.
Dentre alguns algoritmos pré-selecionados para essa ordenação, o especialista escolheu o algoritmo de ordenação 
por inserção, no qual o consumo de tempo é, no melhor caso, proporcional a
(A) n log n
(B) log n
(C) n2
(D) n
(E) 1
CESGRANRIO/BB/2021
Em uma agência bancária, as filas de atendimento são ordenadas da esquerda para a direita, e o gerente 
dessa agência percebeu a presença equivocada de um idoso, com a senha 52, na fila de atendimento não 
preferencial. Visando a sanar o equívoco, o gerente resolveu que, na primeira oportunidade, faria uma 
busca no sistema para saber se a senha 52 ainda estava ativa, indicando a presença do idoso na fila de 
atendimento não preferencial. Em caso de resposta positiva, procu- raria o cliente para trocar sua senha 
por outra de atendimento preferencial; se não, apenas registraria o fato para posterior discussão no grupo 
de qualidade de atendimento.
Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e 
as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação, 
segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de 
comparações para o gerente conhecer o resultado de sua busca ocorre em
75
76
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As agências bancárias negociam seguros residenciais com seus clientes e, muitas 
vezes, precisam arquivar cópias de forma ordenada para que consultas 
eventuais sejam facilitadas. O gerente de uma agência precisava ordenar um 
vetor de documentos referentes a esses seguros, e o seu adjunto, da área de TI, 
o aconselhou a usar o algoritmo de ordenação chamado Bubble Sort.
Utilizando-se o algoritmo sugerido, qual será a quantidade de trocas de posições 
realizadas para ordenar, de modo cres- cente, o vetor de números de contrato 
(77, 51, 11, 37, 29, 13, 21)?
(A) 14 (B) 15 (C) 16 (D) 17 (E) 18
77
78
CESGRANRIO/BB/2021
Uma das formas de o gerente de uma agência bancária acompanhar a qualidade dos serviços prestados aos seus clientes é verificar o 
estado da ordem de atendimento em vários instantes ao longo do expediente. O sistema que a gerência utiliza para tal fim é a 
estrutura de dados conhecida como FILA, que mostra a situação da ordem de atendimento no instante da verificação.
Nesse contexto, implementa-se uma estrutura de FILA de números inteiros com suas duas operações tradicionais: ENFILEIRAR(Z), que
ocorre no instante em que um cliente recebe uma senha Z e entra na FILA; e DESENFILEIRAR( ), que ocorre quando um cliente sai da
FILA, caso em que DESENFILEIRAR( ) retorna o número da senha. Sabe-se, tam- bém, que a representação do estado da FILA em um 
instante qualquer é realizada listando os elementos, de forma que o primeiro elemento, da esquerda para a direita, é o mais antigo 
presente na FILA.
Nas condições apresentadas, considere uma FILA que começa vazia e realiza as seguintes operações:
ENFILEIRAR(8) → ENFILEIRAR(9) → DESENFILEIRAR( ) → ENFILEIRAR(10) → ENFILEIRAR(11) → ENFILEIRAR(DESENFILEIRAR ( )) → 
ENFILEIRAR(12) → DESENFILEIRAR( ) → ENFILEIRAR(13) → DESENFILEIRAR( )
Após realizar as operações acima, a FILA estará no estado
(A)10–11 –12 (B) 9 – 12 – 13 (C) 9 – 10 – 11 (D) 8 – 10 – 11 (E) 8 – 9 –10
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos 
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan 
Academy
79
80
CESGRANRIO/BB/2023
Admita que um método Java, chamado exibePilha, receba essas três pilhas como parâmetros e execute os seguintes passos:
1. Cria duas pilhas auxiliares, A1 e A2, inicialmente vazias;
2. Remove um elemento de P1 e o insere em A1. Em seguida, remove um elemento de P2 e o insere em A1. Repete esses dois procedimentos até que P1 e P2 fiquem, ambas, 
vazias;
3. Remove um elemento de P3 e o insere em A1. Repete esse procedimento até que P3 fique vazia;
4. Remove um elemento de A1 e o insere em A2. Repete esse procedimento até que A1 fique vazia;
5. Remove um elemento de A2 e o exibe no console. Repete esse procedimento 4 vezes.
O que será exibido no console, quando o método exibePilha for executado, tendo P1, P2 e P3 sido passadas como parâmetros?
A 10 15 25 28 
B 10 25 30 40
C 15 10 28 25
D 20 35 34 40
E 40 34 30 60
CESGRANRIO/ELETRO/2022
Os tipos abstratos de dados (TAD) Fila e Pilha foram implementados em uma linguagem orientada a objetos por 
meio de um array de inteiros. As classes criadas para a implementação desses TADs contêm os seguintes métodos:
Classe Pilha
int pop ( ) – retorna o número inteiro retirado da pilha. push ( int x ) – insere o número inteiro x na pilha.
Classe Fila
int deq ( ) – retorna o número inteiro retirado da fila. enq ( int x ) – insere o número inteiro x na fila.
Admita que o estado inicial de uma pilha (p) seja um array vazio, e que o estado inicial de uma fila (f) seja 
caracterizado pelo array [ 15, 90, 40 ].
Após a execução de uma sequência de operações sobre p e f, a fila assumiu o seguinte estado final: [ 35, 90, 40, 15 
]
Qual sequência de comandos levou f do estado inicial para o estado final?
81
82
Pilha vs Fila
CESGRANRIO/ELETRO/2022
83
84
CESGRANRIO/BB/2018
O programa a seguir, em Python, implementa o algoritmo do método de bolha, imprimindo o 
resultado de cada passo.
Qual será a quarta linha impressa para a chamada bolha([ 4, 3, 1, 9, 8, 7, 2, 5]) ?
A [3, 1, 4, 8, 7, 2, 5, 9]
B [1, 3, 4, 7, 2, 5, 8, 9]
C [1, 2, 3, 4, 5, 7, 8, 9]
D [1, 3, 2, 4, 5, 7, 8, 9]
E [1, 3, 4, 2, 5, 7, 8, 9]
CESGRANRIO/BB/2018
def bolha(lista):
cont = 1
for passo in range (len(lista)-1,0,-1):
for i in range (passo):
print(f"i: {i} - lista[i] {lista[i]} - lista[i+1] {lista[i+1]}") 
if lista[i] > lista[i+1]:
print(f"trocando") 
lista[i],lista[i+1]=lista[i+1],lista[i]
print(f"===========> {cont} - lista: {lista}")
cont = cont+1
bolha([4,3,1,9,8,7,5,2])
85
86
CESGRANRIO/BB/2021
Um programador escreveu uma função para percorrer, em pós-ordem, 
uma árvore binária e exibir, no console, os valores referentes aos nós 
dessa árvore.
Após essa função ter sido executada, foi exibido o seguinte resultado:
41 44 33 47 55 52 36 30
Que árvore essa função percorreu para exibir o resultado acima?
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/BB/2021
AVL Tree Visualzation (usfca.edu)
87
88
Como Percorrer?
Prof. Raphael Lacerda
Uma árvore binária completa com 15 nós tem altura igual a
A 1
B 2
C 3
D 4
E 5
Prof. Raphael Lacerda
Como calcular altura?
89
90
Prof. Raphael Lacerda
E agora?
Estratégia Concursos (estrategia.com)
Estratégia Questões (estrategia.com)
Como calcular a 
ALTURA de uma 
árvore binária de 
busca? –
Wagner Gaspar
Aula-arvores-1.pdf (uff.br)
Árvore 
binária –
Wikipédia, a 
enciclopédia 
livre(wikipedia.or
g)
uma árvore com um único nó tem 
altura 1
listaDeExercicios_1 (unicamp.br)
Árvores e Árvores Binárias (usp.br)
Considere uma árvore AVL que possui 12 nós. A altura dessa árvore é
A 3
B 4
C 5
D 6
E 7
Prof. Raphael Lacerda
CESGRANRIO/transpetro/2023
91
92
CESGRANRIO/BB/2023
Um estudante de computação decidiu escrever um método Java para exibir, no console, em 
pré-ordem, os valores dos nós de uma árvore binária recebida como parâmetro. Ao executar 
esse método, os seguintes valores foram exibidos no console:
80 84 55 76 72
Considerando os valores exibidos, qual árvore foi recebida como parâmetro?
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/BB/2023
93
94
CESGRANRIO/Transpetro/2018
Uma árvore binária foi percorrida em ordem simétrica, e os valores de seus nós 
exibidos no console. O resultado desse procedimento foi o seguinte:
15 12 10 19 20 13 34
Dentre as árvores apresentadas, a única capaz de produzir o resultado acima é
AVL Tree Visualzation (usfca.edu)
CESGRANRIO/Transpetro/2018
95
96
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos 
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan 
Academy
CESGRANRIO/BB/2023
Para entender como o algoritmo de busca binária se comporta, um estudante de computação resolveu inserir um comando 
System.out.printf() em um método chamado busca. Esse método, escrito em Java, realiza uma busca binária em um array de números 
inteiros, ordenados de forma ascendente. O objetivo do printf é exibir, no console, o valor de cada elemento do array visitado pelo 
algoritmo de busca binária. 
Para testar o código que criou, o estudante escreveu o método main a seguir. 
public class Main { public static void main(String[] args) { int lista[]={5,18,27,33,44,49,54,67,69,72,79,86,87,92}; 
// o array lista possui 14 elementos 
busca(78, lista); } public static int busca(int val,int lista[]) { 
// código relativo ao algoritmo de busca binária } } 
O que será exibido no console quando o método main for executado?
A 54 79 69 72 B 49 72 86 79 C 54 86 69 72 79 D 67 86 72 79 E 54 79 67 69 72
Busca binária (artigo) | Algoritmos | Khan 
Academy
97
98
Um método que implementa um algoritmo de busca binária recebe como parâmetros um vetor de inteiros ordenados 
descendentemente, o comprimento desse vetor e um número inteiro que se deseja localizar no vetor. O cabeçalho desse método é o 
seguinte:
public int buscaBin(int vet[], int n, int val)
Admitindo-se que o vetor passado como parâmetro tenha 750 elementos, qual será o número máximo de iterações que o algoritmo 
irá realizar até que o valor (val) seja localizado ou que seja detectado que esse valor não se encontra no vetor?
A 8
B 9
C 10
D 11
E 12
CESGRANRIO/Transpetro/2018
Busca binária (artigo) | Algoritmos | Khan 
Academy
CESGRANRIO/BB/2021
Um professor preparou uma série de experimentos para avaliar, juntamente com seus alunos, três 
algoritmos de ordenação: o da bolha, o de ordenação por inser- ção e o de ordenação por seleção. Para tal, 
ele escre- veu três métodos Java, um para cada algoritmo. Todos eles recebem como único parâmetro um 
array de inteiros (int vet[ ] = {81,15,4,20,7,47,14,20,4}), que será ordenado em ordem crescente.
Para acompanhar a evolução desse array sendo ordena- do, cada um dos três métodos exibe a 
configuração dos elementos do array ao término de cada iteração do co- mando de repetição mais externo. 
Vale lembrar que es- ses três algoritmos de ordenação são compostos por dois comandos de repetição 
aninhados (dois comandos for ou dois comandos while).
Terminada a codificação, o professor executou os méto- dos relativos aos três algoritmos de ordenação e 
projetou no quadro as configurações do array relativas às três pri- meiras iterações de cada um dos 
algoritmos de ordena- ção, conforme mostrado a seguir.
99
100
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As configurações 1, 2 e 3, exibidas acima, correspondem, 
respectivamente, aos algoritmos
(A) da bolha, de seleção e de inserção 
(B) da bolha, de inserção e de seleção 
(C) de seleção, de inserção e da bolha 
(D) de seleção, da bolha e de inserção 
(E) de inserção, de seleção e da bolha
101
102
Prof. Raphael Lacerda
Selection Sort
Prof. Raphael Lacerda
Selection Sort
103
104
Prof. Raphael Lacerda
Insertion Sort
Prof. Raphael Lacerda
Insertion Sort
105
106
Prof. Raphael Lacerda
Bubble Sort
Prof. Raphael Lacerda
Bubble Sort
107
108
In a nutshell
Prof. Raphael Lacerda
https://www.treinaweb.com.br/blog/conheca-os-principais-algoritmos-de-ordenacao/
estrategia/algoritmos-ordenacao at main · 
raphaelLacerda/estrategia · GitHub
CESGRANRIO/IPEA/2024
Seja um array de inteiros de 32 bits com 10.000 elementos, gerados e posicionados aleatoriamente nesse 
array.
Nessas condições, qual algoritmo irá ordenar esse array com um consumo de tempo, em seu caso médio, 
proporcional ao consumo de tempo do pior caso do Quick sort?
A Bucket sort
B Heap sort
C Insertion sort
D Merge sort
E Tree sort 
109
110
CESGRANRIO/BB/2021
Dentre os problemas identificados pela gerência de um banco comercial, está a localização das contas dos seus 
titulares nas listagens e nos relatórios impressos em diferentes situações. Um especialista de TI sugeriu ordenar as 
contas por meio dos CPF dos seus n titulares antes das impressões.
Dentre alguns algoritmos pré-selecionados para essa ordenação, o especialista escolheu o algoritmo de ordenação 
por inserção, no qual o consumo de tempo é, no melhor caso, proporcional a
(A) n log n
(B) log n
(C) n2
(D) n
(E) 1
CESGRANRIO/BB/2021
Em uma agência bancária, as filas de atendimento são ordenadas da esquerda para a direita, e o gerente 
dessa agência percebeu a presença equivocada de um idoso, com a senha 52, na fila de atendimento não 
preferencial. Visando a sanar o equívoco, o gerente resolveu que, na primeira oportunidade, faria uma 
busca no sistema para saber se a senha 52 ainda estava ativa, indicando a presença do idoso na fila de 
atendimento não preferencial. Em caso de resposta positiva, procu- raria o cliente para trocar sua senha 
por outra de atendimento preferencial; se não, apenas registraria o fato para posterior discussão no grupo 
de qualidade de atendimento.
Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e 
as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação, 
segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de 
comparações para o gerente conhecer o resultado de sua busca ocorre em
111
112
CESGRANRIO/BB/2021
CESGRANRIO/BB/2021
As agências bancárias negociam seguros residenciais com seus clientes e, muitas 
vezes, precisam arquivar cópias de forma ordenada para que consultas 
eventuais sejam facilitadas. O gerente de uma agência precisava ordenar um 
vetor de documentos referentes a esses seguros, e o seu adjunto, da área de TI, 
o aconselhou a usar o algoritmo de ordenação chamado Bubble Sort.
Utilizando-se o algoritmo sugerido, qual será a quantidade de trocas de posições 
realizadas para ordenar,de modo cres- cente, o vetor de números de contrato 
(77, 51, 11, 37, 29, 13, 21)?
(A) 14 (B) 15 (C) 16 (D) 17 (E) 18
113
114
CESGRANRIO/BB/2021
Uma das formas de o gerente de uma agência bancária acompanhar a qualidade dos serviços prestados aos seus clientes é verificar o 
estado da ordem de atendimento em vários instantes ao longo do expediente. O sistema que a gerência utiliza para tal fim é a 
estrutura de dados conhecida como FILA, que mostra a situação da ordem de atendimento no instante da verificação.
Nesse contexto, implementa-se uma estrutura de FILA de números inteiros com suas duas operações tradicionais: ENFILEIRAR(Z), que
ocorre no instante em que um cliente recebe uma senha Z e entra na FILA; e DESENFILEIRAR( ), que ocorre quando um cliente sai da
FILA, caso em que DESENFILEIRAR( ) retorna o número da senha. Sabe-se, tam- bém, que a representação do estado da FILA em um 
instante qualquer é realizada listando os elementos, de forma que o primeiro elemento, da esquerda para a direita, é o mais antigo 
presente na FILA.
Nas condições apresentadas, considere uma FILA que começa vazia e realiza as seguintes operações:
ENFILEIRAR(8) → ENFILEIRAR(9) → DESENFILEIRAR( ) → ENFILEIRAR(10) → ENFILEIRAR(11) → ENFILEIRAR(DESENFILEIRAR ( )) → 
ENFILEIRAR(12) → DESENFILEIRAR( ) → ENFILEIRAR(13) → DESENFILEIRAR( )
Após realizar as operações acima, a FILA estará no estado
(A)10–11 –12 (B) 9 – 12 – 13 (C) 9 – 10 – 11 (D) 8 – 10 – 11 (E) 8 – 9 –10
Pilha
Prof. Raphael Lacerda
115
116
Fila
Prof. Raphael Lacerda
CESGRANRIO/Caixa/2021
Qual árvore binária pode ser classificada como árvore binária de busca?
117
118
CESGRANRIO/BANCO AMAZONIA/2021
A classe Java ArvNo, exibida abaixo, é usada para representar os nós de 
uma árvore binária.
Ela é usada na implementação de uma árvore binária pela classe Arv, 
exibida a seguir.
Que árvore terá os valores de seus nós exibidos em ordem descendente 
quando for percorrida pelo método percorre(), definido na classe Arv?
CESGRANRIO/BANCO AMAZONIA/2021
119
120
CESGRANRIO/BANCO AMAZONIA/2021
CESGRANRIO/BANCO AMAZONIA/2021
121
122
CESGRANRIO/BB/2021
Desejam-se realizar buscas nas seguintes coleções de dados, representadas na linguagem Java:
I - Um array de 1.000 números inteiros ordenados de forma decrescente;
II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó);
III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó)
ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectiva- mente, em cada um dos três casos 
acima?
(A) I – sequencial; II – sequencial; III – binária
(B) I – binária; II – sequencial; III – sequencial
(C) I – binária; II – sequencial; III – binária
(D) I – sequencial; II – sequencial; III – sequencial (E) I – sequencial; II – binária; III – binária
Busca binária (artigo) | Algoritmos | Khan 
Academy
CESGRANRIO/B.A/2018
Em uma árvore AVL com grande quantidade de nós, o custo para inclusão de um nó no meio 
da árvore é proporcional a
A log(n)
B n
C n log(n)
D n2
E n2 log(n)
123
124
#PYTHON
Prof. Raphael Lacerda
Prof. Raphael Lacerda
Strings
125
126
Prof. Raphael Lacerda
Quais métodos devo 
saber?
https://www.w3schools.com/python/python_ref_string.asp
Prof. Raphael Lacerda
e mais
https://www.w3schools.com/python/python_ref_string.asp
127
128
Prof. Raphael Lacerda
Prof. Raphael Lacerda
O que mais?
129
130
Prof. Raphael Lacerda
Concatenação
https://realpython.com/python-f-strings/
Prof. Raphael Lacerda
LISTAS
131
132
Prof. Raphael Lacerda
Quais devo saber?
Prof. Raphael Lacerda
133
134
Seja o seguinte programa Python:
a = [1, 4, 8]
b = [-1, 6, 2]
c = a*2+b*0
print(c)
O que será exibido no console quando esse programa for executado?
A [2, 8, 16] 
B [1, 4, 8, 1, 4, 8]
C [2, 8, 16, 0, 0, 0]
D [1, 4, 8, 1, 4, 8, 0, 0, 0]
E TypeError: unsupported operand type(s) for +: 'list' and 'list' 
CESGRANRIO/IPEA/2024
CESGRANRIO/IPEA/2024
135
136
Admita que o módulo pilha contém as funções push(pil, e), pop(pil), e 
empty(pil), que implementam as operações usuais sobre uma pilha.
O que será exibido no console quando esse programa for executado?
A 8 45 76 80 23
B 8 45 80 23 76
C 23 80 45 8 76
D 45 8 23 80 76
E 80 23 8 45 76
CESGRANRIO/IPEA/2024
Seja o seguinte programa Python:
def contagem(s):
if len(s)==0: return 0
return len(s[0])+contagem(s[1:])
txt = [ 'hoje', [ ['é', 'dia', 'de', 'prova' ] ], 'eu', [ [ 'vou', 'me', 'sair' ] ], [ 'bem' ] ]
print(contagem(txt))
O valor que será exibido no console quando esse código for executado é
A 5 B 9 C 10 D 16 E 29
CESGRANRIO/IPEA/2024
137
138
resolvendo
Seja o seguinte código Python:
str = 'America do Sul'
s1 = ( str.split ( ';' ) ).pop().upper()
print ( str )
O que será exibido no console quando esse código for executado?
A America do Sul B AMERICA DO SUL C Sul D SUL E AMERICA
CESGRANRIO/TRANSPETRO/2023
139
140
Seja o seguinte programa Python:
l = ['abc', ['a', 'b', 'c'], 'd', ['a', ['abc', 'd']]] 
c = 0
for e in l: 
c+=len(e)
print( c )
O que será exibido no console quando esse programa for executado?
CESGRANRIO/TRANSPETRO/2023
Pilhas podem ser implementadas em Python por meio de listas em que o último elemento é o topo da pilha, como 
no exemplo abaixo:
pilha01 = ['a4', 'a3', 'a2', 'a1'] # o elemento 'a1' está # no topo da pilha
pilha02 = ['b2', 'b1'] # o elemento 'b1' está no topo da pilha
Considere uma função Python, chamada unifica, que recebe duas pilhas como parâmetros e retorna uma terceira, 
que é o resultado da intercalação dos elementos das duas pilhas recebidas como parâmetros. Um programa 
Python chamou essa função unifica, passando como parâmetros as duas pilhas do exemplo acima (pilha01 e 
pilha02). O resultado da intercalação foi a pilha
['a4', 'a3', 'b2', 'a2', 'b1', 'a1']
Qual implementação da função unifica realiza o que foi descrito acima?
CESGRANRIO/TRANSPETRO/2023
141
142
Alternativas
A
def unifica(p1, p2): p3 = [ ]
while len(p1) > 0: p3.append(p1.pop())
while len(p2) > 0: p3.append(p2.pop())
return p3
B
def unifica(p1, p2): p3 = [ ]
while len(p1) > 0 and len(p2) > 0 : p3.append(p1.pop()) 
p3.append(p2.pop())
return p3
CESGRANRIO/TRANSPETRO/2023
CESGRANRIO/TRANSPETRO/2023
C
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) > 0 and len(p2) > 0 : p3.append(p1.pop()) p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop())
return p4
D
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) > 0 or len(p2) > 0 : if len(p1) != 0: p3.append(p1.pop()) if len(p2) != 0: 
p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop()) return p4
E
def unifica(p1, p2): p3 = [ ] p4 = [ ]
while len(p1) != 0: if len(p1) != 0: p3.append(p1.pop())
while len(p2) != 0: if len(p2) != 0: p3.append(p2.pop())
while len(p3) > 0: p4.append(p3.pop())
return p4
143
144
CESGRANRIO/TRANSPETRO/2018
Python | yield Keyword - GeeksforGeeks
def x(u):
for i in range(u):
yield(i**i)
def z(n): 
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(z(k)(k))
print(w)
Que resultado será impresso por esse programa?
A 30 B 33 C 256 D 289 E 3414
Decodificando…
def x(u):
for i in range(u):
yield i
for i in x(5):
print(i)
Python | yield Keyword - GeeksforGeeks
145
146
Decodificando…
def x(u):
for i in range(u):
yield i**i
for i in x(5): 
print(i)
Python | yield Keyword - GeeksforGeeks
Decodificando…
Python | yield Keyword - GeeksforGeeks
def z(n): 
return lambda x:x+nprint(z(3)(2))
print(z(5)(1))
147
148
Decodificando…
def x(u):
for i in range(u):
yield i**i
def z(n): 
return lambda x:x+n
for k in x(5):
print(k)
Python | yield Keyword - GeeksforGeeks
Decodificando…
def x(u):
for i in range(u):
yield i**i
def z(n): 
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(4)
print(w)
Python | yield Keyword - GeeksforGeeks
Python Operators (w3schools.com)
149
150
Decodificando…
def x(u):
for i in range(u):
yield i*i
def z(n): 
return lambda x:x+n
w=0
for k in x(5):
w+=(lambda x:x//2)(z(k)(k))
print(w)
Python | yield Keyword - GeeksforGeeks
Python Operators (w3schools.com)
Cesgranrio/UNIRIO/2019
Um programador tentou executar o programa a seguir em um 
interpretador Python
O que aconteceu?
A Houve um erro de sintaxe.
B Houve um erro na execução.
C Imprimiu o número 7.
D Imprimiu o número 12.
E Imprimiu o número 17.
151
152
def f(x):
def g(y):
z = sum(range(x))
return z+y
return g 
k = f(5)
print(k(2))
Decodificando
def f(x):
def g(y):
y = y+x
return y
return g 
print(f(2)(3))
Decodificando
153
154
def f(x):
def g(y):
y = sum(range(x))
return y
return g 
print(f(5)(2))
Decodificando
def f(x):
def g(y):
z = sum(range(x))
return z+y
return g 
k = f(5)
print(k(2))
Decodificando
155
156
Considere-se o código Python abaixo.
O que será impresso?
A 2
B 8
C 13
D 16
E -3
Cesgranrio/UNIRIO/2019
Cesgranrio/UNIRIO/2019
157
158
Cesgranrio/UNIRIO/2019
O código a seguir exibe parte de um programa Python que tem por objetivo retirar um elemento de uma pilha (variável stack) de
strings e exibir no console o valor do elemento retirado.
A pilha foi concebida de modo que o seu topo é o primeiro elemento de uma lista (variável stack).
Qual versão da função pop(s) fará com que o programa acima alcance o seu objetivo?
Alternativas
A
def pop(s): return s.pop()
B
def pop(s): temp=s[0] s.remove(s[0]) return temp
C
def pop(s): return s.pop(-1)
D
def pop(s): temp=s[0] s=s[1:] return temp
E
def pop(s): temp=s[-1] s=s[-1:1:-1] return temp
pq nao pop()?
A pilha foi concebida de modo que o seu topo é o primeiro elemento de 
uma lista (variável stack).
stack = [1,2,4,5,6]
print(stack)
stack.pop()
print(stack)
159
160
qual problema da D?
def pop(s): 
temp=s[0] 
s=s[1:] 
return temp
stack = [1,2,4,5,6]
print(pop(stack))
Duas pilhas, p1 e p2, foram implementadas em Python, por meio de listas em que o último 
elemento da lista é o topo da pilha. As configurações iniciais dessas pilhas são as seguintes: 
p1=[50,40,30,20,10] p2=[ ] Qual função irá transferir os elementos de p1 para p2, de modo 
que p1 passe a ser uma pilha vazia, e p2 passe a ter a mesma configuração que p1 tinha, antes 
da chamada da função?
A def fa(p1,p2): if(len(p1)==0): return x=p1[len(p1)-1] fa(p1,p2) p2.append(x)
B def fb(p1,p2): if(len(p1)==0): return x=p1[len(p1)-1] del p1[len(p1)-1] 
fb(p1,p2) p2.append(x)
C def fc(p1,p2): if(len(p1)==0): return p2.append(p1.pop()) fc(p1,p2)
D def fd(p1,p2): for i in range(len(p1)): p2.append(p1.pop())
E def fe(p1,p2): for i in range(len(p1)): p2.append(p1[i])
CESGRANRIO/CAIXA/2021
161
162
p1=[50,40,30,20,10] 
p2=[ ] 
def fb(p1,p2):
if(len(p1)==0):
return
x=p1[len(p1)-1]
print(x)
del p1[len(p1)-1]
print(p1)
fb(p1,p2)
p2.append(x)
fb(p1,p2)
print(p1)
print(p2)
decodificando
O que será exibido pelo comando print(v3) quando esse programa for
executado por meio do IDLE?
A
['Ri de Janeir']
B ["]
C ['rienaJ ed ']
D ['Rio de Janeiro']
E ['orienaJ ed oiR']
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
163
164
Considere-se uma lista L, criada em Python, da seguinte forma:
L=[-20,-10,0,10,20,30]
O comando print(L[-1::-2]) apresentará o resultado
A [30, 10, -10]
B [30, 20]
C [-20, 10]
D [30]
E [20]
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
Código:
1 a = ['UF'] + [ 'RN']
2 len(a)
3 b = ['4']*4
4 len(b)
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
165
166
A saída correta correspondente às linhas 2 e 4 do código é
A
2 e 4.
B
4 e 16.
C
2 e 16.
D
4 e 4.
Prof. Raphael Lacerda
Cesgranrio/UNIRO/2019/
Prof. Raphael Lacerda
A saída na tela após a execução será
A Fulano m
B Fulano 2500.0
C Fulano de Tal m
D Fulano de Tal 2500.0
E Fulano de Tal m 2500.0
Cesgranrio/UNIRIO/2016
167
168
#ENGENHARIA DE SOFTWARE
Prof. Raphael Lacerda
@canetas.pretas
#ÁGIL
169
170
CESGRANRIO/BASA/2021
“O Scrum é um arcabouço que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas 
complexos.” 
SCHWABER, K. ; SUTHERLAND, J. O Guia do Scrum, O Guia Definitivo para o Scrum: As Regras do Jogo. Nov. 2020. p 3. Adaptado.
Para cumprir seu objetivo, o Scrum se baseia em quatro eventos formais, contidos dentro de um evento de maior duração: a Sprint. 
Tais eventos formais implementam os três pilares empíricos do Scrum, que são
a) compromisso, abertura e adaptação
b) respeito, coragem e foco
c) respeito, inspeção e adaptação
d) transparência, compromisso e respeito
e) transparência, inspeção e adaptação
CESGRANRIO/B.A/2018
O Manifesto Ágil se tornou um marco da Engenharia de Software, chamando a atenção de que vários processos 
propostos de forma independente tinham valores em comum. Além disso, foram definidos 12 princípios.
Entre eles, figura o seguinte princípio:
A cada pessoa em um projeto deve ter sua função predeterminada para acelerar o desenvolvimento em conjunto.
B a contínua atenção à simplicidade do trabalho feito aumenta a agilidade.
C software funcionando é a medida primária de progresso.
D os indivíduos, clientes e desenvolvedores, são mais importantes que processos e ferramentas.
E o software funcional emerge de times auto-organizáveis.
171
172
CESGRANRIO/B.A/2018
No SCRUM, o Backlog da Sprint é “um conjunto de itens do Backlog do Produto selecionados para Sprint, 
juntamente com o plano para entregar o incremento do produto e atingir o objetivo da Sprint” (Schwaber e 
Sutherland, 2017).
Durante a Sprint, quem pode alterar o Backlog da Sprint?
A Product Owner, apenas
B Scrum Master, apenas
C Time de Desenvolvimento, apenas
D Time de Desenvolvimento e o Product Owner, apenas
E Time de Desenvolvimento e o Scrum Master, apenas
CESGRANRIO/UNIRIO/2019
“O Scrum é um arcabouço que ajuda pessoas, times e organizações a gerar valor por meio de soluções adaptativas para problemas 
complexos.” 
SCHWABER, K. ; SUTHERLAND, J. O Guia do Scrum, O Guia Definitivo para o Scrum: As Regras do Jogo. Nov. 2020. p 3. Adaptado.
Para cumprir seu objetivo, o Scrum se baseia em quatro eventos formais, contidos dentro de um evento de maior duração: a Sprint. 
Tais eventos formais implementam os três pilares empíricos do Scrum, que são
a) compromisso, abertura e adaptação
b) respeito, coragem e foco
c) respeito, inspeção e adaptação
d) transparência, compromisso e respeito
e) transparência, inspeção e adaptação
173
174
CESGRANRIO/UNIRIO/2019
Uma das principais práticas de XP (Extreme Programming) é o Iteration Planning Game.
Entre as atividades realizadas em uma sessão de Iteration Planning, está a
a) definição, pelos programadores, de quais story cards serão implementados em uma 
iteração.
b) estimação do esforço que será necessário para implementar cada story card.
c) estimação da data de entrega de um release baseado na estimativa de esforço de cada 
story card.
d) estimação, feita por cada programador, do tempo que será necessário para realizar cada 
tarefa sob sua responsabilidade.
e) designação, por parte do coach, dos programadores que irão realizar as tarefas contidas na 
lista de tarefas.
CESGRANRIO/UNIRIO/2019
O modelo de processo incremental é iterativo por natureza e produz a cada incremento uma versão operacional 
do produto, diferente de outros modelos, como, por exemplo, a prototipagem.
Esse modelo incremental
a) gera incrementos logo nas primeiras etapas, masestes não podem ser entregues ao cliente.
b) possui unicamente atividades de codificação e teste nos seus incrementos.
c) deve ter, no máximo, 1 a 5 sprints quando planejados e gerenciados com métodos ágeis.
d) possui atividades de teste fora do incremento, realizadas por outra equipe que vai integrando 
incrementalmente o produto a cada etapa do teste.
e) combina elementos do modelo cascata, aplicado de maneira iterativa, sendo também essa filosofia incremental 
usada em processos ágeis.
175
176
CESGRANRIO/UNIRIO/2019
O ciclo de vida de um projeto em cascata, para desenvolvimento de software de gestão de almoxarifado, 
teve escopo, prazo e custo rigidamente determinados, nas suas fases iniciais, pelo gestor de projeto e sua 
equipe, stackeholders e área solicitante.
Dessa forma, conclui-se que esse projeto tem um ciclo de vida
a) ágil
b) iterativo
c) integrado
d) incremental
e) preditivo
CESGRANRIO/Transpetro/2018
O Processo Unificado de desenvolvimento de software é dividido em quatro fases: concepção 
(inception), elaboração, construção e transição.
Um dos objetivos da fase de elaboração é
a) definir a arquitetura
b) estimar o custo total
c) estabelecer o escopo do projeto
d) minimizar custos de desenvolvimento
e) converter bancos de dados operacionais
177
178
CESGRANRIO/Transpetro/2018
A etapa do projeto unificado e a sua correspondente característica são, 
respectivamente:
a) Concepção – levantamento de requisitos sistêmicos primários do ciclo
b) Construção – implementação dos elementos de maior risco e criticidade
c) Elaboração – mitigação dos problemas de alto risco do projeto
d) Incremento – diferenciação entre as entregas de duas etapas subsequentes
e) Transição – geração de um subconjunto executável do produto final
CESGRANRIO/Transpetro/2018
O processo unificado consiste em um conjunto de diretrizes que visam a aumentar as chances de um bem sucedido projeto de 
desenvolvimento de software.
Uma de suas características é
a) apresentar-se como uma alternativa aos métodos ágeis, tais como Scrum e Feature-Driven development.
b) combinar boas práticas de desenvolvimento de software, como ciclo de vida em cascata evolutivo e documentação de processo
coesa e precisa.
c) gerar como produto de cada etapa de tempo definido e curto um sistema parcial, testável e integrável.
d) partir de um conjunto perene de requisitos previamente aferidos, cujas partes serão implementadas por etapas.
e) produzir, ao final de cada etapa de desenvolvimento, um protótipo do sistema, com vistas à validação de um subconjunto de
requisitos.
179
180
CESGRANRIO/Transpetro/2018
De acordo com o Processo Unificado (RUP), que resultado deve ser alcançado ao 
término da fase de elaboração?
a) A integração do sistema nas plataformas definidas pelo cliente.
b) A descrição da arquitetura do sistema.
c) A disponibilização das versões finais dos manuais do usuário.
d) A disponibilização da versão inicial do documento de visão do sistema.
e) O encerramento dos testes para validar o sistema em relação às expectativas de 
seus usuários.
CESGRANRIO/Transpetro/2018
O Processo Unificado, originalmente proposto pela Rational, é um processo moderno baseado no uso de 
UML. Nesse processo, existem quatro fases, sendo que uma delas é conhecida como Elaboração.
Um dos objetivos previstos nessa fase é
a) avaliar a contribuição do sistema ao negócio.
b) desenvolver um entendimento do domínio do problema.
c) estabelecer um caso de negócio para o sistema.
d) identificar todas as entidades externas que irão interagir com o sistema.
e) realizar o projeto físico do sistema.
181
182
#MOBILE
Prof. Raphael Lacerda
Um desenvolvedor de aplicativos para dispositivos móveis, utilizando o framework Ionic, deseja operar com 
Splash Screens no desenvolvimento de aplicações com Ionic nas páginas do Ipea. Contudo, as Splash 
Screens, para funcionarem, devem ser inseridas em um diretório de projeto Ionic específico.
Em qual diretório do projeto Ionic essas Splash Screens devem ser inseridas?
A icons
B splash
C dtbase
D resources
E configuration
CESGRANRIO/BB/2024
183
184
Um programador recebeu a incumbência de desenvolver uma aplicação móvel segundo a API 30 do Android, 
correspondente ao Android 11. Seguindo as melhores práticas, cada tela dessa aplicação, incluindo sua 
funcionalidade, foi construída como um módulo único e autônomo, totalmente independente de outros módulos 
similares. 
Esse módulo único e autônomo é conhecido como
A activity
B content provider
C fragment
D intent
E manifest
CESGRANRIO/BB/2023
O React Native 0.59 introduziu o conceito de Hooks.
Entre os Hooks, tem-se o usestate, que permite
A calcular o estado de um CEP ou ZIP de acordo com o Locale.
B chamar estados específicos do engine React para alterar seu comportamento.
C declarar uma classe que segue o padrão de design state.
D criar uma enumeration que representa estados. 
E manter um estado local em uma função de um componente funcional.
CESGRANRIO/BB/2023
185
186
O código abaixo está em linguagem TypeScrip, cuja tipagem é estática. 
let fraseLegal = 'Bom dia!';
fraseLegal = 9.5;
Analisando o código apresentado, tem-se que a TypeScrip 
A não realiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
B realiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
C realiza a inferência de tipo, por isso, aceita a atribuição do tipo number para um tipo string sem gerar erro de compilação do código apresentado.
D realiza a inferência de tipo, por isso, não aceita a atribuição do tipo number para um tipo string, o que vai gerar um erro de compilação do código apresentado.
E não diferencia valores ponto flutuante (decimal) de valores inteiros, por isso, o código apresentado vai rodar sem erro.
CESGRANRIO/BB/2023
Kotlin é uma linguagem de programação usada no desenvolvimento Android. 
Entre suas características, está um grau de compatibilidade com Java, que permite
A chamar funções feitas em Java, apenas, mas não permite que suas funções Kotlin sejam chamadas por 
Java.
B ler dados que foram salvos por apps Java, apenas. 
C ler e escrever dados que podem ser lidos e escritos por apps Java, apenas.
D ter suas funções chamadas por Java, apenas, mas não consegue chamar funções feitas em Java.
E construir apps com código parcialmente em Java e parcialmente em Kotlin, sem restrições.
CESGRANRIO/BB/2023
187
188
Em um programa em Swift, o programador deseja incluir o resultado de uma operação dentro de uma string. Nesse contexto, considere o seguinte código: 
let quantidade = 4 let valor = 10 
Dado o código acima, o programador deseja uma string saida cujo valor seja 
"valor total = 40" 
Para isso, o programador deve utilizar o seguinte fragmento de código Swift:
A let saida := "valor total = \(quantidade*valor)" 
B let saida := "valor total = \{quantidade*valor}"
C let saida = "valor total = %[quantidade*valor]" 
D let saida = "valor total = \(quantidade*valor)" 
E let saida = "valor total = \[quantidade*valor]" 
CESGRANRIO/BB/2023
Um programador de aplicativos para dispositivos Apple com iOS recebeu a seguinte parte de um código, escrito na 
linguagem swift:
var i:Int var texto:String var num:Int=0 var frase:String=”” for i in 1...3 { num = num+1+i*2 switch num{ case 
2...6: texto = “a “ case 7...9: texto = “casa “ case 10...13: texto = “carro “ case 14...16: texto = “eh “ case 
17...20: texto = “o “ case 21...23: texto = “forte “ default: texto = “não eh “ } frase = frase+texto } print 
(frase)
A execução dessa parte do código produz como resposta
A o carro eh
B a casa eh
C o carro não eh 
D a casa eh forte 
E o carro eh forte 
CESGRANRIO/BB/2021
189
190
CESGRANRIO/Caixa/2021
Na linguagem de programação Kotlin, é possível criar uma variável cujo valor nunca pode ser 
mudado, na prática, uma constante, com o nome idademinima, do tipo básicointeiro de 32 
bits, com o valor 18. Para que isso aconteça, qual das seguintes instruções deve ser usada?
A val idademinima : Int = 18
B val idademinima : Integer = 18
C val idademinima = 18 : Integer 
D var idademinima : Int = 18
Evar idademinima : Integer = 18
CESGRANRIO/BB/2021
O desenvolvimento de um aplicativo bancário para dis- positivos móveis exige 
que se dedique atenção à parte visual do mesmo, que vai depender, também, 
do modelo do aparelho e do tipo de sistema operacional (SO) que esteja 
rodando nele.
Caso um desenvolvedor de aplicativos para um iPhone com SO iOS precise fazer 
a programação visual das telas desses aplicativos, que ferramenta do Xcode 10 
ele deve utilizar?
(A) Interface Builder (B) Bundle Identifier (C) Organizer Interface (D) Apple LLVM
(E) Instruments
191
192
CESGRANRIO/BB/2021
Xcode 14 Overview - Apple DeveloperInterface Builder - Wikipedia
Prof. Raphael Lacerda
Ciclo
de
Vida
https://medium.com/good-morning-
swift/ios-view-controller-life-cycle-
2a0f02e74ff5
193
194
Prof. Raphael Lacerda
Equatable
#NOSQL
Prof. Raphael Lacerda
195
196
CESGRANRIO/BB/2023
Considere um cenário no qual uma empresa de investimentos financeiros tenha realizado uma campanha para que seus 
colaboradores indicassem outras pessoas que pudessem vir a estar interessadas em seus produtos e serviços. Esses colaboradores 
também foram estimulados a informar a sua ligação com as pessoas indicadas (ex: amigo, irmão, primo) e as eventuais ligações entre 
as pessoas indicadas. Estes relacionamentos são importantes para a definição da próxima campanha dessa empresa. 
O banco de dados NoSQL mais indicado para representar esses dados é o que utiliza o modelo
A chave/valor
B orientado a colunas
C orientado a documentos
D orientado a grafos
E relacional
CESGRANRIO/Transpetro/2023
Na implementação de sistemas de Big Data, é comum a utilização de tecnologias de Bancos de Dados NoSQL, que 
têm como característica principal não seguir ou ir além do Modelo Relacional e da linguagem SQL. 
Duas dessas tecnologias são os Bancos de Dados orientados a documentos e orientados a colunas, exemplificados, 
respectivamente, pelos softwares
A ArangoDB e MongoDB
B HBase e ArangoDB 
C HBase e MongoDB
D MongoDB e ArangoDB
E MongoDB e HBase
197
198
CESGRANRIO/BB/2021
Um banco comercial deseja obter um tipo de banco de dados NoSQL que trate os dados extraídos de redes 
sociais, de modo a formar uma coleção (collection) interconectada. Nessa coleção (collection), os dados são 
organizados em vértices ou objetos (O) e em relacionamentos, que são relações (R) ou arestas.
Nesse modelo de banco de dados NoSQL, os dados seriam apresentados da seguinte forma:
O:Usuario{u1:Joao, u2:Jose, u3:Maria, u4:Claudio} O:Escola{e1:UFRJ, e2:URGS, e3:IFB} 
R:Estudaem{re1=u1:e2;re2=u2:e2;re3=u3:e1;re4=u4:e3} R:Amigode{ra1=u1:u2;ra2=u1:u3;ra3=u2:u3}
O banco de dados NoSQL que representa essa situação deve ter uma estrutura do tipo
(A) Distribuided Hashing (B) Consistent Hashing (C) Document Oriented (D) Graph Oriented
(E) Vector Clock
CESGRANRIO/CAIXA/2021
Os Sistemas de Gerenciamento de Banco de Dados (SGBD) foram afetados pelas demandas trazidas pelo 
Big Data. Uma das formas de tratar essas demandas são os Sistemas de Gerenciamento de Banco de Dados 
Distribuídos (SGBDD), nos quais os dados podem estar armazenados em vários servidores, conectados por 
uma rede de computadores. Um SGBDD que usa softwares middleware, de forma que os SGBDs que o 
compõem estejam fracamente acoplados, é conhecido como
A Baseado em Grafos
B Hierárquico
C Federado
D Orientado a objetos 
E NOSql 
199
200
Prof. Raphael Lacerda
NoSQL
Prof. Raphael Lacerda
Melhor Escalabilidade
201
202
Prof. Raphael Lacerda
Relacional vs NoSQL
NoSQL Tutorial: What is, Types of NoSQL 
Databases & Example (guru99.com)
Prof. Raphael Lacerda
BASE vs ACID
NoSQL Tutorial: What is, Types of NoSQL 
Databases & Example (guru99.com)
203
204
Prof. Raphael Lacerda
e esses SGBD's?
Prof. Raphael Lacerda
NoSQL
https://medium.com/permalink-univesp/nosql-o-que-s%C3%A3o-onde-habitam-do-que-se-alimentam-2ccd4cc39571
205
206
Prof. Raphael Lacerda
NoSQL
https://micreiros.com/tipos-de-bancos-de-dados-nosql/
Prof. Raphael Lacerda
Exemplos
https://autociencia.blogspot.com/2020/01/scylladb-um-banco-de-dados-nosql-big-data.html
207
208
Prof. Raphael Lacerda
Grafos
Prof. Raphael Lacerda
Documentos
209
210
Prof. Raphael Lacerda
Colunar
Prof. Raphael Lacerda
Chave/Valor
Redis - DB4Beginners - O blog da Dani Monteiro
211
212
Prof. Raphael Lacerda
Teorema
CAP
https://autociencia.blogspot.com/2020/01/scylladb-um-banco-de-dados-nosql-big-data.html
https://blog.caelum.com.br/nosql-do-teorema-cap-para-paccl/
CESGRANRIO/BB/2021
Um administrador de um banco de dados construído por meio do MongoDB inseriu dados em uma coleção 
(collection) de dados da seguinte forma:
db.fornecedores.insert( { codigo: “thx1138“,
nome: “Roupas Syfy ltda“, pais: “Arabia Saudita“ } )
Posteriormente, esse administrador construiu uma consulta que retornou apenas o nome, sem repetição, de todos 
os países que fazem parte dessa coleção (collection).
O comando utilizado para tal consulta foi
(A) db.fornecedores.find("pais")
(B) db.fornecedores.find().pretty({"pais":1}) (C) db.fornecedores.find().sort({"pais":1}) (D) 
db.fornecedores.distinct({"pais":0})
(E) db.fornecedores.distinct( "pais" )
213
214
dicas do mongo
Document Database
Collections (tables)
Views e Materialized Views
High Performance
Rich Query Language
High Availability
Scalability
https://docs.mongodb.com/manual/introduction/
CRUD! https://docs.mongodb.com/manual/r
eference/method/db.collection.inser
tMany/#mongodb-method-
db.collection.insertMany
215
216
CRUD! https://docs.mongodb.com/manual/r
eference/method/db.collection.inser
tMany/#mongodb-method-
db.collection.insertMany
217
218
CESGRANRIO/BB/2018
Uma das características inerentes ao modelo chave-valor de bancos de dados 
NoSQL é a(o)
A suporte à compreensão da semântica do valor associado à chave
B favorecimento à evolução de esquemas conceituais
C dependência de linguagem de consulta específica
D estrutura de armazenamento interna complexa
E falta de suporte à concorrência
O termo NoSQL refere-se
A a uma abordagem teórica que segue o princípio de não utilização da linguagem SQL em bancos de dados 
heterogêneos.
B à renúncia às propriedades BASE (Basically Available, Soft state, Eventual consistency), potencializando seu 
espectro de uso.
C ao aumento da escalabilidade das bases de dados neles armazenados, aliado a um desempenho mais satisfatório 
no seu acesso.
D à facilidade de implementação de bases de dados normalizadas, com vistas a minimização de redundâncias no 
conjunto de dados.
E à implementação simultânea das três componentes do modelo CAP: consistência, disponibilidade e tolerância ao 
particionamento.
CESGRANRIO/BB/2018
219
220
Organizações modernas estão sujeitas a uma grande quantidade de dados, principalmente se tratam com grandes 
quantidades de clientes. Muitas das demandas de tecnologia de informação a que essas organizações estão 
submetidas passaram a ser organizadas e tratadas dentro do conceito de Big Data. 
Além do grande volume de dados, o Big Data, em sua definição original, considera também a(s) seguinte(s) 
propriedade(s): 
A falta de qualidade, apenas 
B variedade, apenas 
C velocidade, apenas
D variedade e velocidade
E velocidade e falta de qualidade
CESGRANRIO/BB/2023
Considere uma empresa que possui dados de clientes, todos bem definidos e estruturados (ex: CPF, nome, e-mail, endereço), 
armazenados em um banco de dados relacional. Uma oportunidade surge para a empresa enriquecer esse banco de dados com dados 
de outra natureza, porém não muito bem definidos e pouco estruturados. 
Uma solução pode ser adotar um banco de dados NoSQL, de tal forma que:
A a ausência de um esquema de dados bem definido para os dadosnecessários de um cliente possa ser corretamente modelada e 
implementada em um gerenciador de banco de dados adequado. 
B a linguagem SQL utilizada para acesso aos dados dos clientes possa ser substituída por outra linguagem de acesso a dados 
organizados em tabelas segundo o modelo relacional, porém com maior eficiência.
C esse novo banco de dados relacional possa ser melhorado, com os dados não muito bem definidos, sem um esquema rígido.
D o gerenciador de banco de dados relacional utilizado possa ser atualizado para uma versão mais recente, que não utilize a 
linguagem SQL.
E os atributos que hoje representam chaves primárias e estrangeiras sejam mais bem controlados.
CESGRANRIO/BB/2023
221
222
#JAVASCRIPT
Prof. Raphael Lacerda
Para que um pacote (package) cujo nome é pk01 possa ser publicado no registro 
npm (registry npm), ele deve conter um arquivo chamado
A package.xml
B pk01.xml
C pk01.js
D package.json 
E pk01.json
CESGRANRIO/IPEA/2024
223
224
Analise com atenção o código a seguir, escrito em TypeScript 4.0.
function segredo(a: number[]) { return a.map(x=>x*2);}
console.log(segredo([1,2,3]));
O que será exibido no console quando o código acima for executado?
A "Executed JavaScript Failed:" 
B [2, 4, 6]
C [6]
D 6
E 12
CESGRANRIO/BB/2023
JSP
Prof. Raphael Lacerda
Cesgranrio/BB/2018
225
226
CESGRANRIO/BB/2018
A página HTML com Javascript que 
apresenta esse comportamento é:
REST, ou Representational State Transfer, é um protocolo de comunicações sem estado.
Que alternativa melhor representa o corpo de uma chamada REST que deseja saber o saldo de um cliente bancário identificado como 
cliente 23232?
A { cliente (id: "23232") { saldo } }}
B {"cliente"=23232 "saldo"="?"}
C http://app.banco.com/contascorrentes/saldo/cliente/23232
D <QUERY><SALDO/><CLIENTE ID="23232"/><QUERY>
E <?xml version="1.0"?> <soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope 
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <b:getSaldo 
xmlns:b="http://app.banco.com/contascorrentes "> <m:cliente>23232</m:cliente></m:getSaldo> </soap:Body></soap:Envelope>
CESGRANRIO/BB/2018
227
228
Um formulário HTML é usado para coletar entradas do usuário e pode conter elementos 
<input> de vários tipos. Se o desenvolvedor Web desejar incluir um campo no formulário com 
dados que não fiquem visíveis na interface do usuário, ele deve usar o elemento <input> do 
tipo
A blocked
B secret
C hidden
D encrypted
E invisible
CESGRANRIO/UNIRIO/2019
AngularJS segue um modelo MVC. Qual a diretiva correta em AngularJS para ligar um 
elemento de entrada de dados da visão, como um campo input do tipo texto, a um 
elemento do modelo, como uma variável do tipo string?
A ngView
B ngValue
C ngBind
D ngModel
E ngLink
CESGRANRIO/BB/2018
229
230
CESGRANRIO/B.A/2018
É um exemplo de uma expressão Angular (Angular Expression) em AngularJS:
Alternativas
A
<p>Candidato aprovado: {{ candidato.nome }}</p>
B
<p>Candidato aprovado: [[ candidato.nome ]]</p>
C
<p>Candidato aprovado: <%= candidato.nome %></p>
D
<p>Candidato aprovado: <?= candidato.nome ?> </p>
E
<p>Candidato aprovado: <js:angular value="candidato. nome"/></p>
CESGRANRIO/B.A/2018
Considere o código HTML com CSS listado a seguir:
Qual deve ser o estilo utilizado para que o texto seja mostrado na cor azul?
A #texto { color: #0000FF; }
B #texto { font-color: #0000FF; }
C .texto { color: #0000FF; }
D .texto { font-color: #0000FF; }
E .texto { text-color: #0000FF; }
231
232
A hora não irá aparecer no <div> porque
A o append em jQuery não pode ser utilizado para containers vazios; deveria ter sido substituído por html.
B o objeto identificado por idLugar ainda não existe quando o script é executado.
C o símbolo de # está faltando na frente da identificação na definição do <div>
D a variável data está escrita erradamente (está escrita em português).
E os métodos getHours e getMinutes estão escritos no plural, quando deveriam ser, respectivamente, getHour e getMinute.
CESGRANRIO/BANCO amazonia/2018
Um arquivo, contendo um documento XML, contém exatamente a seguinte informação: <?xml 
version=”1.0”?> <PEDIDOS> <PEDIDO> <TITULO>Pedido de Empréstimo</TITULO> <REQUERENTE>José da 
Silva</REQUERENTE> <CPF>999.999.999-99</CPF> <VALOR>20000</VALOR> <PEDIDO> <PEDIDOS> A 
partir desse documento apenas, um processador XML pode garantir que o arquivo é
A bem-formado, apenas
B bem-formado e normalizado 
C bem-formado e válido
D normalizado, apenas
E válido, apenas
CESGRANRIO/CAIXA/2021
233
234
Um profissional de Informática está trabalhando em um projeto que envolve a manipulação de 
documentos XML. Ele precisa garantir que os documentos XML estejam bem- -formados e válidos, de 
acordo com as especificações do XML 1.1.
Uma das regras que ele deverá seguir para garantir que um documento XML 1.1 seja válido é que o(s)
A documento pode ter um ou mais elementos raiz. 
B documento deve começar com uma declaração XML.
C nomes dos elementos são insensíveis a maiúsculas e minúsculas. 
D atributos devem ter o mesmo nome se estiverem no mesmo elemento. 
E comentários XML devem aparecer como atributos de uma etiqueta (tag).
CESGRANRIO/Transpetro/2023
Muitas vezes é necessário adicionar um link, em uma página HTML, de modo a criar um vínculo com outro 
documento ou recurso.
Para adicionar um link com essa finalidade, utiliza-se
Alternativas
A
<h1></h1>B <p></p>
C <a></a>
D <head></head>
E <br></br>
CESGRANRIO/Transpetro/2023
235
236
Um desenvolvedor web está trabalhando em uma aplicação que envolve a coleta de dados numéricos dos 
usuários, e, para isso, está usando HTML e JavaScript (ECMAScript 2020) para criar um campo de entrada de texto 
e um botão. Quando um usuário clicar nesse botão, o valor inserido será processado. Nesse cenário, considere que 
esse desenvolvedor quer obter o valor atual do campo de texto HTML com o ID idade.
Para obter esse valor, ele deve utilizar o seguinte fragmento de código JavaScript: 
A document.getElementById(“idade”).getText()
B document.getElementById(“idade”).innerHTML
C document.getElementById(“idade”).value
D document.getElementByName(“idade”).value
E document.querySelector(“#idade”).text
CESGRANRIO/Transpetro/2023
Um profissional de Informática está desenvolvendo uma aplicação web e deseja implementar uma 
interface de usuário que permita que os usuários, ao clicar em um botão, acionem uma função JavaScript 
chamada processar.
Qual das seguintes opções de código HTML5 esse profissional deve usar?
A <button action=”processar()”>Clique Aqui</button>
B <button execute=”processar()”>Clique Aqui</button>
C <button onclick=”processar()”>Clique Aqui</button>
D <button onsubmit=”processar()”>Clique Aqui</button>
E <button trigger=”processar()”>Clique Aqui</button>
CESGRANRIO/Transpetro/2023
237
238
AJAX (do inglês Asynchronous Javascript And XML) tem sido largamente utilizado no desenvolvimento de 
aplicações WEB. Um dos conceitos centrais do AJAX é a possibilidade de serem feitas requisições ao servidor 
através de código Javascript, rodando no navegador do usuário. Esse recurso é empregado principalmente para 
permitir que
A o processamento das regras de negócio da aplicação seja distribuído aos clientes, minimizando a carga do 
servidor.
B o usuário envie uma requisição assíncrona e verifique o resultado da mesma mais tarde, sem precisar aguardar 
pela resposta imediata do servidor.
C as páginas carreguem mais rapidamente, pois as requisições são paralelizadas e compactadas durante o trânsito.
D as páginas compostas diretamente em XML, ao invés de XHTML ou HTML, sejam apresentadas no navegador do 
usuário.
E partes de uma página web sejam atualizadas, sem que o browser recarregue a página inteira do servidor, 
proporcionando uma interface com melhor usabilidade.
CESGRANRIO/Transpetro/2023
CESGRANRIO/BB/2021
Considere o código HTML a seguir.
<!doctype html>
<html lang=”pt-br”>
<head>
<script src=”script.js”></script>

Continue navegando