Foram encontradas 1.782 questões

Resolva questões gratuitamente!

Junte-se a mais de 4 milhões de concurseiros!

Q4071630 Não definido
Considere o seguinte trecho de código em Python, executado na versão 3.12.3 da linguagem:
Imagem associada para resolução da questão
Fonte: dados do elaborador

Com base nas regras de tratamentos de exceção em Python, assinale a alternativa que apresenta CORRETAMENTE a saída produzida pela execução do código:
Alternativas
Q4071629 Não definido
Scrum é um método ágil, iterativo e incremental para gerenciamento de projetos (SCHWABER E SUTHERLAND, 2020). Sobre o framework Scrum, avalie as seguintes assertivas:

I. São artefatos do Scrum o Backlog do produto, o Backlog da Sprint, o incremento e os testes de unidade.
II. São eventos do Scrum a Sprint, o planejamento da Sprint, as reuniões diárias, a revisão da Sprint e a retrospectiva da Sprint.
III. São pilares do Scrum a transparência, a inspeção e o compromisso.
IV. O Scrum é um método ágil voltado para projetos de desenvolvimento de software, e inclui um conjunto de práticas de programação como testes de unidade e design incremental.

Assinale a alternativa que contém apenas as afirmações CORRETAS.
Alternativas
Q4071628 Não definido

Code Smells são indicadores de código de baixa qualidade, isto é, código difícil de manter, entender, modificar ou testar (Valente, 2020). Avalie o trecho de código a seguir (em linguagem JAVA). 


Imagem associada para resolução da questão


Assinale a alternativa que representa o code smell melhor caracterizado no trecho de código. 

Alternativas
Q4071627 Não definido
Padrões de projeto descrevem objetos e classes que se relacionam para resolver um problema de projeto genérico em um contexto particular. Sobre padrões de projeto estruturais, assinale a alternativa CORRETA.
Alternativas
Q4071626 Não definido
Princípios de projeto são recomendações mais concretas que desenvolvedores de software podem seguir para garantir maior qualidade em propriedades esperadas de projeto, como integridade conceitual, ocultamento de informação, coesão e acoplamento.

Sobre os princípios S.O.L.I.D., selecione a alternativa INCORRETA.
Alternativas
Q4071625 Não definido
Em navegadores Web, o histórico de páginas visitadas pelo usuário pode ser implementado por meio de uma estrutura de dados do tipo pilha. Nesse contexto, ao visitar uma nova página, ela é colocada no topo da pilha. Quando o usuário aciona o botão voltar do navegador, a página atual é removida da pilha, e a página exibida passa a ser aquela que estiver no topo após a remoção.

Considere a seguinte sequência de ações realizadas por um usuário:
Entrou na página A;
Entrou na página B;
Entrou na página C;
Clicou em voltar;
Entrou na página D;
Clicou em voltar;
Clicou em voltar;

Com base nesse comportamento, assinale a alternativa que representa CORRETAMENTE a página que o usuário está visualizando no momento: 
Alternativas
Q4071624 Não definido

Em Programação Orientada a Objetos (POO), a sobrecarga de métodos ocorre quando um mesmo identificador representa várias implementações distintas (Deitel; Deitel, 2016). Embora os identificadores dos métodos sobrecarregados sejam os mesmos, suas assinaturas devem ser diferentes.


Considere o código Java a seguir: 


Imagem associada para resolução da questão


Todas as alternativas representam uma sobrecarga válida do método somar da classe Calculadora, EXCETO

Alternativas
Q4071623 Não definido
A Ordenação por Inserção (Insertion Sort) é um algoritmo eficiente para ordenar um número pequeno de elementos (Cormen et al., 2024). Em cada passo, a partir de i = 2, o i-ésimo elemento da sequência é transferido para o seu lugar apropriado no arranjo (vetor).

Sobre o método de ordenação por inserção, assinale a alternativa INCORRETA:
Alternativas
Q4071622 Não definido
No contexto da área de Algoritmos e Estruturas de Dados, o hashing consiste em um método de pesquisa, no qual os registros armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa (Ziviani, 2012). Uma possível função de transformação é K mod M, em que K é um inteiro correspondente à chave de pesquisa e M é o tamanho da tabela.
Considere que a i-ésima letra do alfabeto é representada pelo número i (A = 1, B = 2, C = 3, …) e que o valor da chave K é obtido pela soma dos valores das letras da palavra.

Dada a função de transformação h(K) = K mod 7, qual alternativa apresenta CORRETAMENTE os endereços gerados para as chaves CASA e BOLA, respectivamente?
Alternativas
Q4071621 Não definido
Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos recursivos permitem uma descrição mais clara e concisa dos algoritmos, especialmente quando o problema a ser resolvido pode ser definido em termos recursivos. No entanto, isso não significa que um método recursivo será sempre a melhor opção para resolver um problema (Ziviani, 2012).
O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3). 
Imagem associada para resolução da questão
Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem. 
Alternativas
Q4071620 Não definido
Considere a seguinte situação hipotética:
Uma universidade possui um sistema acadêmico desenvolvido em PHP com framework próprio. Atualmente, o deploy é feito manualmente via FTP (File Transfer Protocol) para o servidor de produção. Em períodos de matrícula, erros de publicação causam indisponibilidade do sistema. A equipe decidiu implementar um pipeline de CI/CD (Integração Contínua/Implantação Contínua). O repositório está no GitLab e os servidores utilizam Linux. É obrigatório garantir: versionamento rastreável, execução automática de testes antes do deploy e controle formal sobre liberações para produção.

Assinale a alternativa que atende de forma CORRETA aos requisitos técnicos e de governança para o novo processo de deploy:
Alternativas
Q4071619 Não definido
Considere a seguinte situação hipotética:
O sistema acadêmico de uma Universidade utiliza MySQL 8 como banco de dados principal. Durante o período de matrícula, o sistema começou a apresentar lentidão severa e, em alguns momentos, indisponibilidade. Em períodos anteriores de matrícula, foi necessário realizar reinicializações manuais diárias no servidor de banco de dados devido a instabilidades e degradação de desempenho.

Durante a análise, a equipe de Tecnologia da Informação identificou que:
a aplicação executa múltiplas consultas sequenciais ao banco dentro da mesma requisição HTTP (padrão N+1).
algumas transações permanecem abertas por vários segundos.
o número de conexões ativas atinge frequentemente o limite configurado (max_connections).
há aumento significativo de locks em tabelas de pedidos e estoque.

Assinale a alternativa que apresenta a abordagem CORRETA para prevenir o problema de travamento e alta contenção no MySQL, bem como otimizar o desempenho do servidor nesse cenário: 
Alternativas
Q4071618 Não definido
Considere a seguinte situação hipotética:
Uma equipe está desenvolvendo um sistema de pedidos, utilizando PostgreSQL. Existe uma tabela pedidos com as colunas:

id
cliente_id
valor_total
status
criado_em
atualizado_em

Durante uma auditoria interna, um analista de banco de dados identificou que o campo atualizado_em nem sempre reflete a última modificação do registro, pois a aplicação depende do backend para atualizar esse campo manualmente. Em alguns casos, desenvolvedores esqueceram de atualizar o timestamp em operações de UPDATE, gerando inconsistência nos relatórios.
A equipe decidiu resolver o problema no nível do banco de dados, garantindo que o campo atualizado_em seja atualizado automaticamente sempre que houver alteração no registro.

Assinale a alternativa que apresenta o comando que garante que o campo atualizado_em seja atualizado automaticamente sempre que um registro da tabela pedidos for modificado:
Alternativas
Q4071617 Não definido
Considere a seguinte situação hipotética:

Uma equipe de desenvolvedores está desenvolvendo uma API REST em Java (Spring Boot) que possui autenticação JWT, integração com banco relacional e deploy automatizado via CI/CD.
Após a identificação de uma vulnerabilidade de validação de entrada que resultou em SQL Injection em ambiente de homologação, a área de segurança recomendou integrar SAST e DAST no processo de desenvolvimento.
Durante a discussão da equipe, surgiram propostas diferentes sobre como combinar essas ferramentas ao pipeline existente.

Assinale a alternativa CORRETA, que implementa SAST e DAST dentro de um modelo DevSecOps:
Alternativas
Q4071616 Não definido
Considere a seguinte situação hipotética:

Uma equipe de desenvolvedores está convertendo uma aplicação monolítica para uma arquitetura baseada em microsserviços implantada em Kubernetes. Atualmente, os serviços se comunicam livremente dentro do cluster porque estão na mesma rede interna. Um dos desenvolvedores argumenta que, por estarem “dentro da rede corporativa”, não é necessário implementar autenticação mútua entre os serviços, apenas autenticação na API Gateway externa.
Durante uma revisão de segurança, verificou-se que, caso um único pod seja comprometido, um atacante poderia se movimentar lateralmente e acessar outras aplicações internas.

Considerando o modelo Zero Trust, assinale a alternativa que representa a ação CORRETA que a equipe deve implementar para prevenir o risco descrito: 
Alternativas
Q4071615 Não definido
Considere a seguinte situação hipotética:
Uma equipe de desenvolvedores é responsável por uma API Node.js utilizada em todas as aplicações da organização. Essa API utiliza diversas dependências do Node Package Manager (NPM), incluindo bibliotecas populares para autenticação e manipulação de dados.
Durante a execução automática da esteira de CI/CD, uma nova versão (minor) de uma dependência amplamente utilizada é instalada automaticamente após um npm install, pois o package.json está configurado com " ^ ". Horas depois, a equipe de segurança cibernética notifica que essa nova versão foi comprometida por um ataque à cadeia de suprimentos, contendo código malicioso que exfiltra variáveis de ambiente.
Sua equipe não possui política formal de versionamento fixo (version pinning) nem processo estruturado de verificação de integridade de dependências para o projeto da API.
A equipe deve adotar medida(s) para prevenir riscos relacionados à cadeia de suprimentos de software.

Assinale a alternativa que representa a decisão MAIS ADERENTE às recomendações da OWASP TOP 10: 
Alternativas
Q4071614 Não definido
Considere a seguinte situação hipotética:
Uma equipe de engenharia DevOps está implantando uma aplicação web em um cluster Kubernetes, utilizando objetos do tipo Deployment para garantir alta disponibilidade e atualização controlada da aplicação.
Imagem associada para resolução da questão
Durante a implantação, foi utilizado o seguinte manifesto Kubernetes:

Considerando os conceitos de Pods, Deployments e exposição de aplicações em Kubernetes, analise as afirmativas a seguir.
I. A partir do campo replicas: 3, o Kubernetes deverá manter três Pods derivados do template especificado em spec.template, cada um executando um contêiner com a imagem nginx:1.25.
II. O campo selector.matchLabels determina quais Pods pertencem ao Deployment, devendo corresponder aos rótulos definidos em spec.template.metadata.labels.
III. A definição containerPort: 80 faz com que o Kubernetes crie automaticamente um Service para permitir acesso externo à aplicação.
IV. O Deployment gerencia a execução dos Pods por meio de ReplicaSets, responsáveis por garantir que o número desejado de réplicas esteja em execução.
V. No Kubernetes, contêineres podem ser executados diretamente nos nós do cluster, sem necessidade de encapsulamento em Pods.

Assinale a alternativa CORRETA:
Alternativas
Q4071613 Não definido
Considere a seguinte situação hipotética:

Uma equipe de engenharia DevOps está implementando o processo de implantação automatizada de uma aplicação web como parte de um pipeline de entrega contínua. A aplicação é executada em um ambiente “conteinerizado”, composto por uma stack de serviços formada por um servidor NGINX, responsável pelo atendimento das requisições HTTP, um serviço PHP-FPM, que executa a lógica da aplicação, bem como por um banco de dados MySQL, responsável pela persistência das informações.
A orquestração desses componentes está sendo realizada por meio de um arquivo dockercompose.yml, no qual cada serviço é executado em um contêiner distinto.
Durante testes de inicialização do ambiente, a equipe observou que, em algumas execuções do comando docker compose up, o contêiner da aplicação tenta estabelecer conexão com o banco de dados antes que o serviço MySQL esteja completamente pronto para aceitar conexões, ocasionando falhas temporárias durante o bootstrap da aplicação.
Considere o trecho do arquivo docker-compose.yml utilizado pela equipe:

Fonte: dados do elaborador
Imagem associada para resolução da questão
Considerando o funcionamento do Docker Compose, bem como as boas práticas relacionadas à inicialização de serviços, resiliência de contêineres e gerenciamento seguro de credenciais, analise as afirmativas a seguir.

I. A diretiva depends_on presente no serviço app garante a ordem de inicialização dos contêineres, mas não assegura que o banco de dados esteja completamente pronto para aceitar conexões.
II. A utilização da variável ${MYSQL_ROOT_PASSWORD} no arquivo docker-compose.yml elimina os riscos de exposição de credenciais, sendo considerada equivalente ao uso de Docker Secrets em termos de segurança.
III. A política restart: on-failure definida no serviço app permite que o contêiner seja reiniciado automaticamente caso o processo principal termine com erro, contribuindo para a resiliência da aplicação em cenários de falhas transitórias.
IV. O uso de Docker Secrets é geralmente considerado mais seguro que variáveis de ambiente para armazenamento de credenciais sensíveis, pois os segredos podem ser gerenciados separadamente da configuração da aplicação e não ficam expostos diretamente no ambiente do contêiner.
V. A definição de um healthcheck no serviço db permite verificar periodicamente se o banco MySQL está operacional e possibilita identificar quando o serviço está efetivamente pronto para receber conexões.

Assinale a alternativa CORRETA:
Alternativas
Q4071612 Não definido
Em arquiteturas modernas baseadas em contêineres, aplicações web frequentemente são executadas em múltiplos serviços isolados. Um padrão comum consiste em utilizar NGINX como servidor web e proxy reverso, encaminhando requisições PHP para um contêiner que executa PHP-FPM, enquanto o banco de dados MySQL é executado em outro contêiner dentro da mesma rede Docker.
Considere o seguinte Dockerfile, utilizado para construir a imagem da aplicação PHP:
Imagem associada para resolução da questão
Considere ainda que o contêiner do NGINX está configurado para encaminhar requisições PHP ao serviço php na porta 9000, por meio de FastCGI, em uma rede Docker compartilhada.
Com base nos conceitos de contêineres Docker, comunicação entre serviços, volumes persistentes e boas práticas de construção de imagens, analise as afirmativas a seguir.

I. A instrução EXPOSE 9000 documenta a porta utilizada pelo contêiner e indica que o serviço escuta nessa porta, mas não publica automaticamente essa porta no host.
II. A comunicação entre os contêineres NGINX e PHP-FPM ocorre diretamente pelo nome do serviço (por exemplo, fastcgi_pass php:9000), desde que ambos estejam conectados à mesma rede Docker.
III. A declaração VOLUME ["/var/www/html/uploads"] permite que dados gerados pela aplicação, como arquivos enviados por usuários, sejam persistidos independentemente do ciclo de vida do contêiner.
IV. Para que o serviço php-fpm seja acessível a partir de outro contêiner na mesma rede Docker, é obrigatório que a porta seja publicada no host, utilizando a opção -p ou a diretiva ports no Docker Compose.
V. A instrução CMD ["php-fpm"] define o processo principal do contêiner, responsável por manter o contêiner em execução e processar requisições FastCGI encaminhadas pelo servidor NGINX.

Assinale a alternativa CORRETA:
Alternativas
Q4071611 Não definido
Considere a seguinte situação hipotética:
Uma equipe de desenvolvimento mantém um sistema corporativo, utilizando Git e pipelines CI/CD automatizados. O pipeline é definido em um arquivo YAML versionado no próprio repositório e contém as seguintes etapas: 
Imagem associada para resolução da questão
Fonte: dados do elaborador Durante o desenvolvimento, a equipe decide integrar um branch de funcionalidades (feature/login) no branch principal (main). Existem dois caminhos possíveis:
1. git merge feature/login : cria um commit de merge, preservando o histórico do branch de funcionalidades.
2. git rebase main feature/login : reaplica os commits do branch de funcionalidades sobre o branch main, criando um histórico linear.

Com base nesse cenário e nos conceitos de DevOps, CI/CD e controle de versão com Git, analise as afirmativas a seguir:
I. A configuração apresentada no arquivo YAML caracteriza um pipeline de integração contínua, pois alterações integradas ao repositório podem acionar automaticamente as etapas de build e testes, ainda que o deploy dependa de aprovação manual.
II. O uso de git merge preserva o histórico completo do branch de funcionalidades, incluindo divergências e commits paralelos, mas pode gerar múltiplos commits de merge que poluem o histórico. 
III. O uso de git rebase permite criar um histórico linear ao reaplicar commits sobre outro branch, porém essa operação reescreve o histórico dos commits, podendo causar inconsistências, caso o branch já tenha sido compartilhado com outros desenvolvedores.
IV. A configuração when: manual no job de deploy indica que a etapa de implantação depende de intervenção humana, caracterizando um processo típico de Continuous Deployment, e não de Continuous Delivery.
V. Definir pipelines CI/CD em arquivos YAML versionados no próprio repositório permite que o processo de automação seja rastreável e auditável, o que possibilita o controle de versões também sobre as mudanças no pipeline.

Assinale a alternativa CORRETA:
Alternativas
Respostas
1581: A
1582: B
1583: B
1584: C
1585: B
1586: C
1587: A
1588: D
1589: D
1590: D
1591: B
1592: C
1593: D
1594: C
1595: A
1596: A
1597: A
1598: C
1599: B
1600: B