Questões de Concurso sobre Linguagens de Programação

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
7.241 questões encontradas
Questões por página
20
Mais recentes
 

Em “orientação a objetos” o encapsulamento, tem por um de seus conceitos:


A

Criar uma classe pai


B

Evitar ocorrências de stack overflows


C

Não permitir acesso direto de métodos fora da classe


D

Permitir métodos com as mesmas assinaturas na mesma classe


E

Evitar que se tenha conflitos de variáveis do mesmo tipo, mas de objetos diferentes

Em uma aplicação Java web que utiliza JPA, em condições ideais, considere o método genérico abaixo em uma classe chamada

EmpresaDao. java.


public <T> List listar (String queryNomeada, Class<T> classe) {

conectar ();

try {

return manager. createNamedQuery (queryNomeada, classe) .getResultList();

} catch (NoResultException erro) {

return null;

}

}


Sabendo que existe uma classe de entidade do banco de dados chamada Departamento, e uma query nomeada chamada Departamento.findAll que seleciona todos os departamentos cadastrados, a partir de uma servlet Java da aplicação, para chamar o método listar e obter os departamentos cadastrados utiliza-se o comando


A

List<Departamento> departamentos = new EmpresaDao () . listar ("Departamento. findAll", Departamento) ;


B

List<Departamento> departamentos = new EmpresaDao() . listar ("Departamento.findall", new Class (Departamento.java));


C

List<Departamento> departamentos = new EmpresaDao() . listar ("Departamento.findAll", Departamento.class);


D

List<T> departamentos = new EmpresaDao() . listar ("Departamento. findAll", Departamento.class);


E

List<Departamento> departamentos = new EmpresaDao () . listar("Departamento.findAll", Departamento.java);

Analise as seguintes asserções referentes à linguagem de programação Java e a relação proposta entre elas:


I. Um componente criado para uma aplicação Java J2EE deve ser instalado no container apropriado, que é um ambiente de execução padronizado que provê serviços específicos a esse componente. Assim, um componente pode esperar que em qualquer plataforma J2EE implementada por qualquer fornecedor esses serviços estejam disponíveis.


PORQUE


II. A arquitetura proposta para a plataforma Java J2EE (Java 2 Enterprise Edition) surgiu com o objetivo de padronizar e simplificar a criação de aplicações, propondo um modelo em que componentes J2EE escritos pelos usuários da plataforma podem fazer uso de serviços providos por esta, os quais simplificam sua implementação e possibilitam maior foco no negócio.


A respeito dessas asserções, assinale a alternativa correta.


A

As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.


B

As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.


C

A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.


D

A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.


E

As asserções I e II são proposições falsas.

Existe uma gama de definições sobre a orientação a objetos. No sentido da relação das classes e dos acessos aos métodos, preencha as lacunas abaixo.


Muitas classes podem ter acesso __________, porém, __________ esse método ____________.


A sequência de palavras que preenche corretamente as lacunas é:


A

a um mesmo método / cada classe executa / de maneira diferente


B

a um mesmo método / outras classes executam / da mesma maneira


C

somente a um método / outras classes executam / de maneira diferente


D

somente a um método / cada classe executa / da mesma maneira

Examine o programa em C abaixo.


#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>


#define NUM_ADVOGADOS 3


void advogado(int id) (

printf("Advogado %d: Preparando argumentos\n", id);

usleep(rand() % 2000000 + 1000000); // Simula o tempo de preparação

printf("Advogado %d: Apresentando o caso ao tribunal\n", id) ;

usleep(rand() % 2000000 + 1000000); // Simula o tempo de apresentação

printf("Advogado %d: Caso resolvido\n", id);

}


int main() {

srand(time(NULL));

for (int i = 1; i <= NUM_ADVOGADOS; i ++) (

if (fork() == 0) (

}

}

// Código do processo pai (tribunal)

for (int i = 1; i <= NUM_ADVOGADOS; i ++) (

wait(NULL); // aguarda todos os processos filhos terminarem

}

printf("Todos os casos foram resolvidos.\n");

return 0;

}


Considerando que uma das saídas do programa acima, compilado e executado em condições ideais, seja:


Advogado 1: Preparando argumentos

Advogado 3: Preparando argumentos

Advogado 2: Preparando argumentos

Advogado 3: Apresentando o caso ao tribunal

Advogado 2: Apresentando o caso ao tribunal

Advogado 1: Apresentando o caso ao tribunal

Advogado 1: Caso resolvido

Advogado 3: Caso resolvido

Advogado 2: Caso resolvido

Todos os casos foram resolvidos.


A lacuna I deve ser corretamente preenchida com:


A

advogado(i);


B

advogado(i); exit(0);


C

advogado(i+1);


D

advogado(i+1); break(1);


E

advogado((fork(i)); exit(1);

Um código orientado a objetos contém classes/objetos que se relacionam. O relacionamento “todo/parte” entre classes, no qual um objeto maior (todo) é formado ou outros objetos parte é chamado de:


A

Herança.


B

Coesão.


C

Associação.


D

Acoplamento.


E

Agregação.

É uma geração de linguagem orientada à aplicação, em geral são projetadas para atender a classes específicas de aplicações. Seus principais objetivos estão apresentados abaixo:

  1. Facilitar a programação de tal maneira que usuários finais possam resolver seus problemas.
  2. Apressar o processo de desenvolvimento de aplicações.
  3. Facilitar e reduzir o custo de manutenção de aplicações.
  4. Minimizar problemas de depuração.
  5. Gerar código sem erros a partir de requisitos de expressões de alto nível.

As características acima referem-se a qual geração?


A

Primeira.


B

Segunda.


C

Terceira.


D

Quarta.


E

Quinta.

Imagine a seguinte situação hipotética:


Um restaurante está passando por uma expansão de seus negócios e o proprietário aproveitou a oportunidade para melhorar o sistema informatizado, que era limitado e não atendia a todos os requisitos do negócio, e o(a) contratou para esta atividade. No desenvolvimento, foi observado que todo o acesso aos dados contidos nos objetos é realizado por métodos, e que não é preciso conhecer os detalhes internos dessas operações para utilizar as suas saídas no aprimoramento do software. Que conceito de orientação a objetos está descrito na situação hipotética acima? Assinale a alternativa CORRETA.


A

Herança.


B

Polimorfismo.


C

Relacionamento.


D

Encapsulamento.

Atualmente, ainda empregada na manutenção de sistemas legados, a linguagem de programação COBOL, em sua versão publicada em 2002 (ISO COBOL 2002), inclui diversos recursos, entre eles o suporte à orientação de objetos.


C

Certo


E

Errado

Analise as afirmativas abaixo com relação aos conceitos da programação orientada a objetos.


1. Uma subclasse pode ser descendente de mais de uma superclasse, o que caracteriza a herança múltipla.

2. O polimorfismo ocorre quando se utiliza o mesmo nome de método com os mesmos argumentos para causar ações diferentes de acordo com cada classe que instancia cada objeto a partir do qual o método é invocado.

3. A generalização é uma característica do polimorfismo que reutiliza o mesmo nome para referenciar métodos ou atributos distintos.


Assinale a alternativa que indica todas as afirmativas corretas.


A

É correta apenas a afirmativa 1.


B

São corretas apenas as afirmativas 1 e 2.


C

São corretas apenas as afirmativas 1 e 3.


D

São corretas apenas as afirmativas 2 e 3.


E

São corretas as afirmativas 1, 2 e 3.

O seguinte código Java de um servlet possui uma lacuna indicada pelo trecho vazio sublinhado denotado por “___________”.


import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;


public class DemoServlet extends HttpServlet {

public void doGet(HttpServletRequest req,

HttpServletResponse res)

throws ServletException, IOException

{

res.setContentType("text/html");

PrintWriter pw =

pw.println("<html><body>");

pw.println("Resposta do servlet");

pw.println("</body></html>");

pw.close();

}}


Para o seu correto funcionamento, com o objetivo de devolver a resposta à requisição recebida, a lacuna deve ser substituída por:


A

res.getOutputPrinter();


B

req.getWriter();


C

res.getWriter();


D

req.getResponse();


E

res.getResponse();

Analise o seguinte trecho de código Java:


import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

public class Iteracao {

public static void main(String[] args) {

Map<Integer, String> produto = new HashMap<Integer, String>();

produto.put(1, "Camisa");

produto.put(2, "Calça");


Analise as assertivas abaixo e assinale a alternativa correta para imprimir, na saída padrão, a relação apenas dos nomes dos produtos do HashMap produto.


I.

for (Map.Entry p:produto.entrySet()) {

System.out.println(p.getValue());

}


II.

Iterator<Map.Entry<Integer, String>> produtos = produto.entrySet().iterator();

while (produtos.hasNext()) {

Map.Entry<Integer, String> p = produtos.next();

System.out.println(p.getValue());

}


III.

produto.forEach((value) -> {

System.out.println(value);

});



A

Todas estão corretas.


B

Todas estão incorretas.


C

Apenas I e II estão corretas.


D

Apenas I e III estão corretas.


E

Apenas II e III estão corretas.

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]"

Durante o desenvolvimento de uma aplicação mobile em Java para Android, um programador detectou a necessidade de alterar o texto de um widget da classe TextView, chamado resultado, para "Sucesso!".


Para realizar essa ação, esse programador deve usar o seguinte fragmento de código:


A

TextView resultado = "Sucesso!";


B

resultado := "Sucesso!";


C

resultado.setValue("Sucesso!");


D

resultado.setText("Sucesso!");


E

resultado = TextView.setValue("Sucesso!");

As linguagens de programação Web são utilizadas por programadores para o desenvolvimento FrontEnd (parte visual) e Back-End (estrutura que possibilita a operação) de sites, sistemas e aplicações Web em geral. Em relação às principais linguagens de programação Web assinale a afirmativa CORRETA.


A

JavaScript: linguagem de script que não precisa ser traduzida em código de máquina antes de ser executada, ou seja, executa de forma direta no código-fonte.


B

HTML: linguagem de marcação declarativa utilizada no desenvolvimento Back-End de sites dinâmicos.


C

PHP: linguagem interpretada de código aberto utilizada no desenvolvimento Back-End. Além disso, permite o desenvolvimento de sites estáticos.


D

CSS: linguagem de estilo declarativa que determina como o código HTML deve ser exibido na tela. No entanto, não suporta que o estilo de uma página seja replicado a outras páginas.


E

Python: linguagem de propósito geral eficiente, utilizada no desenvolvimento Web Back-End. No entanto, é uma linguagem limitada por não permitir integração com outras linguagens de programação tais como: C, C# e Java.

Em uma base de dados (dataset) com avaliações sobre a qualidade de um determinado produto, o campo stars tem um valor de 1 a 5. Na fase de pré-processamento, decidiu-se criar o campo sentimento com valores bom ou ruim, e utilizando-se da biblioteca NumPy, escreveu-se o comando abaixo:


dataset['sentimento'] = np.where(dataset['stars'] >= 4, 'bom', 'ruim')


Quanto aos valores do campo sentimento, o referido comando atribuirá o valor


A

bom, para stars entre 2 e 5


B

bom, para stars 4 e 5


C

bom, para stars 3 e 4


D

ruim, para stars 4 e 5


E

ruim, para stars entre 1 e 4

   
Gerar simulado