Questões sobre Programação

Um programador construiu uma função para ordenar vetores de inteiros por meio do algoritmo de ordenação por inserção (insertion sort). A versão iterativa desse algoritmo possui dois loops aninhados. Suponha que esse programador tenha inserido, imediatamente antes do incremento da variável de controle do loop mais externo, uma chamada de uma função para percorrer e exibir o conteúdo do vetor que está sendo ordenado. O trecho de código a seguir ilustra como essa chamada é feita.

O que será exibido no console quando o valor da variável i for igual a 3?

  • A. 1 1 11 12 17 4 17 35 43 78
  • B. 1 12 4 17 11 17 1 35 43 78
  • C. 1 1 4 78 17 35 43 11 17 12
  • D. 1 12 35 78 17 4 43 11 17 1
  • E. 1 1 4 11 17 35 43 78 17 12
Clique em uma opção abaixo para responder a questão:
Para ordenar um vetor com N elementos, o método de ordenação Seleção (Selection Sort) faz o seguinte número de comparações:
  • A. (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N.
  • B. log2(N2 + N) no melhor caso.
  • C. (N2 + N −1)/2 no caso médio, ficando lento para valores grandes de N.
  • D. (N − 1) quando o vetor já está originalmente ordenado.
  • E. (N2 + N)/4 no pior caso, sendo melhor que o pior caso do Bolha (Bubble Sort) pois faz menos trocas.
Clique em uma opção abaixo para responder a questão:
Considere que na Defensoria há uma lista ordenada com o nome de 1000 cidadãos amazonenses. Utilizando o método de pesquisa binária para localizar o nome de um destes cidadãos, serão necessárias, no máximo,
  • A. 1.000 comparações.
  • B. 10 comparações.
  • C. 500 comparações.
  • D. 200 comparações.
  • E. 5 comparações.
Clique em uma opção abaixo para responder a questão:

Considere a definição de algumas práticas da eXtreme Programming − XP.

I. Todo o código desenvolvido pelo time é incorporado em um repositório comum várias vezes ao dia. Isso garante que qualquer problema de integração ao longo do projeto possa ser notado e corrigido rapidamente.

II. Qualquer programador do time pode alterar qualquer seção do código, se necessário. Por mais que esta prática pareça perigosa, ela aumenta a velocidade do desenvolvimento e problemas em potencial podem ser detectados pelos testes de unidade.

III. Traz a ideia de que qualquer pessoa do time seja capaz de verificar o código sendo desenvolvido em alto nível e ter uma compreensão clara de qual funcionalidade do sistema está sendo trabalhada.

IV. Permite aplicar melhorias ao código sem mudar sua funcionalidade, visando sua simplificação. Se o cliente deseja alterar alguma coisa no produto final, o time pode fazer os ajustes rapidamente, e esta prática contribui para alcançar este objetivo.

As práticas de I a IV são, correta e respectivamente,

  • A. pair programming – test-driven development – system metaphor – continuous integration.
  • B. planning game – pair programming – system simplicity – continuous integration.
  • C. planning game – test-driven development – system simplicity – refactoring.
  • D. continuous integration – pair programming – feedback – planning game.
  • E. continuous integration – collective code ownership – system metaphor – refactoring.
Clique em uma opção abaixo para responder a questão:

Considere o trecho em pseudocódigo abaixo.

Utilizando as métricas de software de Halstead, o tamanho do vocabulário do trecho em pseudocódigo é

  • A. 20.
  • B. 8.
  • C. 14.
  • D. 6.
  • E. 84.
Clique em uma opção abaixo para responder a questão:

Suponha que um Técnico Programador da Defensoria está trabalhando no projeto de um software que será desenvolvido. Após a análise do escopo do software, suas funções principais foram identificadas. Em seguida, um intervalo de estimativa de Linhas de Código − LOC foi desenvolvido para cada função. Esse intervalo considera as estimativas como otimista (Tot), mais provável (Tmp) e pessimista (Tpess). Os valores das estimativas para cada função, como mostrado abaixo, foram obtidos utilizando a expressão:

Considerando que para a função “Tutela” foram obtidos: Tot=3800 LOC, Tmp=6500 LOC; e TPess=8600 LOC, as lacunas I e II devem ser preenchidas, correta e respectivamente, com

  • A. 6600 e 23900
  • B. 3150 e 20450
  • C. 6200 e 23500
  • D. 6400 e 23700
  • E. 6000 e 23300
Clique em uma opção abaixo para responder a questão:
Com relação à arquitetura de computadores e a sistemas operacionais, julgue os itens de 66 a 83. Em ambientes computacionais que utilizam a multiprogramação, a quantidade de comutações de contexto é importante, ou seja, é desejável que a capacidade de comutações seja alta se o interesse é a execução de uma grande quantidade de programas concorrentes.
  • C. Certo
  • E. Errado
Clique em uma opção abaixo para responder a questão:

Considere o fragmento de código abaixo de uma classe de acesso a dados que utiliza JPA, onde em é um objeto do tipo EntityManager gerado em uma conexão com um banco de dados aberto e em condições ideais.

Para que esse fragmento realize uma consulta na tabela chamada Acusado, procurando pelo id de número 1, as lacunas I e II devem ser preenchidas, correta e respectivamente, com

  • A. Query e createNamedQuery
  • B. ResultSet e createQuery
  • C. Result e executeQuery
  • D. RecordSet e createQuery
  • E. Query e createNativeQuery
Clique em uma opção abaixo para responder a questão:

Considere o fragmento de código abaixo em uma classe de acesso a dados que utiliza JDBC com objetivo de conectar a aplicação Java a um Banco de Dados PostgreSQL denominado bdaction.

Nesse fragmento,

  • A. a falta da classe Driver ocasionará uma exceção do tipo SQLException.
  • B. a classe Statement deve ser trocada por EntityManager, que permite acesso a métodos para execução de comando SQL.
  • C. como o Banco de Dados ao qual se deseja conectar é o bdaction, ocorrerá uma exceção do tipo SQLException.
  • D. a porta de comunicação com o PostgreSQL deve ser mudada de 5432 para a porta padrão, que é 336.
  • E. não é necessário tratamento de exceção, pois isso é feito automaticamente pela API JDBC.
Clique em uma opção abaixo para responder a questão:

Em uma análise realizada em um servidor comprometido, observaram-se as seguintes linhas nos logs de acesso:

Quais estão corretas?

  • A. Apenas I.
  • B. Apenas II.
  • C. Apenas III.
  • D. Apenas I e II.
  • E. I, II e III.
Clique em uma opção abaixo para responder a questão: