Magna Concursos

Foram encontradas 57.604 questões.

4178684 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

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:

class Calculadora {
    public int somar(int a, int b) {
        return a + b;
    }
}


Fonte: dados do elaborador

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

 

Provas

Questão presente nas seguintes provas
4178683 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:
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:
 

Provas

Questão presente nas seguintes provas
4178682 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:
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?
 

Provas

Questão presente nas seguintes provas
4178681 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

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). 

def fib(n):
    if n < 2:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

Fonte: Dados do elaborador

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.

 

Provas

Questão presente nas seguintes provas
4178674 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

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.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80

Fonte: dados do elaborador

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:

 

Provas

Questão presente nas seguintes provas
4178672 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

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:

FROM php:8.2-fpm
WORKDIR /var/www/html
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader
COPY . .
VOLUME ["/var/www/html/uploads"]
EXPOSE 9000
CMD ["php-fpm"]


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:

 

Provas

Questão presente nas seguintes provas
4178671 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

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: 

stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Compilando aplicação..."
    - ./build.sh

test-job:
  stage: test
  script:
    - echo "Executando testes unitários..."
    - ./run_tests.sh

deploy-job:
  stage: deploy
  script:
    - echo "Publicando artefato em ambiente de homologação..."
    - ./deploy.sh
  when: manual

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:

 

Provas

Questão presente nas seguintes provas
4178670 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:
Considere a seguinte situação hipotética:

Uma equipe de desenvolvimento adotou práticas de DevOps em um sistema corporativo. O fluxo definido estabelece que todo o código é versionado em Git, e que a cada push para o repositório remoto é executado automaticamente um pipeline de CI/CD.
Nesse pipeline são realizadas etapas de build, testes automatizados e análise estática de código. Caso todas as etapas sejam concluídas com sucesso, o artefato gerado é automaticamente implantado em ambiente de homologação.
Com base nos conceitos de integração contínua, entrega contínua e automação de pipelines, analise as afirmativas a seguir.

I. A integração contínua (continuous delivery) consiste na prática de integrar alterações de código com frequência em um repositório compartilhado, em que builds e testes automatizados são executados para detectar falhas precocemente no processo de desenvolvimento.
II. A entrega contínua (continuous delivery) pressupõe que o sistema esteja sempre em um estado potencialmente implantável em produção, embora a liberação final para produção dependa de uma aprovação manual.
III. Em pipelines de CI/CD, ferramentas como GitHub Actions e GitLab CI/CD permitem definir workflows ou pipelines automatizados por meio de arquivos de configuração versionados no próprio repositório do projeto.
IV. A cultura DevOps enfatiza a automação de processos de build, teste e deploy, reduzindo a necessidade de interação entre equipes de desenvolvimento e operações ao longo do ciclo de entrega de software.

Assinale a alternativa CORRETA:
 

Provas

Questão presente nas seguintes provas
4178667 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

Em sistemas Web utilizados por universidades, como Sistemas Integrados de GestãoAcadêmica, o protocolo HTTP é utilizado para comunicação entre navegadores dos usuários eservidores da aplicação. Métodos HTTP como GET e POST são empregados para envio dedados, enquanto cookies e sessões são utilizados para manter informações entrerequisições. Cookies podem incluir atributos de segurança adicionais, como HttpOnly e SameSite.

Considere o seguinte trecho de código em PHP, utilizado em um módulo de autenticação de umsistema acadêmico:

<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $matricula = $_POST['matricula'];
    $_SESSION['aluno_logado'] = $matricula;
    setcookie(
        "ultimo_acesso",
        date("Y-m-d H:i:s"),
        [
            'expires' => time() + 3600,
            'httponly' => true,
            'samesite' => 'Strict'
        ]
    );
    echo "Acesso registrado para o aluno: " . htmlspecialchars($matricula);
} else {
    echo '<form method="POST">
        Matrícula: <input type="text" name="matricula">
        <input type="submit" value="Entrar no sistema">
        </form>';
}
?>


Fonte: dados do elaborador
Com base no funcionamento do protocolo HTTP, no uso de sessões e cookies e nos atributos desegurança aplicados no código apresentado, analise as afirmações a seguir.

I. O atributo HttpOnly, configurado no cookie ultimo_acesso, impede que scriptsexecutados no navegador, como JavaScript, acessem diretamente o valor desse cookie.
II. O atributo SameSite=Strict restringe o envio do cookie em requisições originadas deoutros domínios, contribuindo para reduzir ataques de CSRF.
III. Uma vez criada, a variável de sessão $_SESSION['aluno_logado'] pode ser acessada apenas em requisições HTTP do tipo POST, pois foi definida em uma requisição desse tipo.
IV. Caso o formulário utilizasse o método GET em vez de POST, o valor da matrícula poderia aparecer na URL da requisição, o que pode ser indesejável em cenários em que o programador não quer deixar explícitos os valores dos parâmetros que estão sendo passados no formulário.

Assinale a alternativa CORRETA:

 

Provas

Questão presente nas seguintes provas
4178665 Ano: 2026
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFLA
Orgão: UFLA
Provas:

Em sistemas distribuídos, middleware é uma camada de software intermediária responsável por facilitar a comunicação e integração entre aplicações, sistemas e serviços. Essa camada oferece recursos como troca de mensagens, gerenciamento de APIs, autenticação e integração entre componentes de sistemas distribuídos, permitindo que diferentes aplicações interajam, mesmo estando executando em ambientes distintos.
Entre as soluções utilizadas para comunicação assíncrona estão os message brokers, que implementam o modelo de fila de mensagens, no qual produtores enviam mensagens para uma fila e consumidores as processam posteriormente.

Considere o seguinte código em Python, que utiliza a biblioteca pika para consumir mensagens de uma fila em um broker implementado com RabbitMQ.

 1    import pika
 2    connection = pika.BlockingConnection(
 3        pika.ConnectionParameters('localhost')
 4    )
 5    channel = connection.channel()
 6    channel.queue_declare(queue='tarefas')
 7    def callback(ch, method, properties, body):
 8        print("Mensagem recebida:", body.decode())
 9    channel.basic_consume(
10        queue='tarefas',
11        on_message_callback=callback,
12        auto_ack=True
13    )
14    print("Aguardando mensagens...")
15    channel.start_consuming()

Fonte: dados do elaborador

Esse código ilustra um consumidor de mensagens que se conecta a um broker RabbitMQ e recebe mensagens publicadas em uma fila.
Com base no conceito de middleware e no funcionamento de sistemas de mensageria em arquiteturas distribuídas, analise as afirmações a seguir:
I. O programa estabelece uma conexão com um servidor de mensageria e passa a atuar como consumidor de mensagens da fila denominada “tarefas”.
II. Para toda mensagem entregue ao consumidor a partir da fila tarefas, a função callback será executada para processar o conteúdo recebido.
III. A utilização de um middleware de mensageria como o RabbitMQ implica que produtores e consumidores precisam estar em execução simultaneamente para que a comunicação ocorra de maneira síncrona.

Assinale a alternativa CORRETA.

 

Provas

Questão presente nas seguintes provas