Questões de Concurso
Para if sul rio-grandense
Foram encontradas 2.173 questões
Resolva questões gratuitamente!
Junte-se a mais de 4 milhões de concurseiros!
Considere o seguinte trecho de código que implementa essa funcionalidade.
var express = require('express'); var app = express();
const auth = (req, res, next) => { try { const token = req.headers.authorization.split(' ')[1]; if (token !== 'XXX') { throw new Error('ERROR!');
} next(); } catch (err) { res.status(401).send({ message: 'Unauthorized' }); } } app.use('/login', auth); app.post('/login', (req, res) => { res.send('Hello World'); });
app.use((req, res) => { res.status(404).send({ message: 'Not Found' }); });
app.listen(3000);
Com base no comportamento deste código, considere as seguintes requisições HTTP feitas ao servidor:
I. POST /login/auth HTTP/1.1 Authorization: Bearer XXX
II. GET /login HTTP/1.1 Authorization: XXX
III. POST /login HTTP/1.1 Authorization: Bearer XXX
IV. POST /login HTTP/1.1 Authorization: XXX
Dado o código apresentado, qual é o status de resposta esperado para cada uma das requisições listadas acima?
function authRoleMiddleware(role) { return (req, res, next) => { if (req.user.role !== role) { return res.status(403).send('Access forbidden: Insufficient permissions'); } next(); } }
Este middleware é utilizado da seguinte forma para restringir o acesso de rotas a usuários com o papel de “admin”:
var express = require('express'); var app = express();
app.use('/admin', authRoleMiddleware('admin')); app.get('/admin', (req, res) => { res.send('Welcome, admin!'); });
app.listen(3000);
Considerando o funcionamento desse middleware, qual seria um problema que poderia surgir ao aplicá-lo em rotas que utilizam diferentes middlewares, e como esse problema pode ser resolvido?
var express = require('express'); var app = express();
app.put('/users/:id', (req, res) => { const userId = req.params.id; const userName = req.body.name; const isActive = req.query.active;
if (!userId || !userName) { return res.status(400).send('Missing required parameters.'); } res.send(` User ${userId} updated. Name: ${userName}, Active: ${isActive} `); });
app.listen(3000);
Com base no código acima, qual das afirmativas abaixo descreve corretamente como os diferentes tipos de parâmetros devem ser usados para obter o comportamento esperado?
Os scripts definidos na seção “scripts” do package.json permitem automatizar tarefas comuns, como a execução de testes, a construção de projetos e a inicialização do servidor. Esses scripts podem ser executados usando o comando npm run . Além disso, o npm permite a instalação de pacotes como dependências de produção ou de desenvolvimento.
Considerando o uso correto do npm e do arquivo package.json, analise as afirmativas a seguir:
I. O comando npm run é utilizado para executar scripts personalizados definidos na seção “scripts” do package.json, permitindo a automação de tarefas como testes e construção de projetos. O npm executa esses scripts em um ambiente isolado, onde as dependências do projeto são acessíveis.
II. O arquivo package.json é opcional em projetos pequenos, pois o npm pode gerenciar pacotes instalados globalmente sem a necessidade de um manifesto local.
III. Ao instalar um pacote com o comando npm install --save-dev , o pacote será adicionado à seção “devDependencies” do package.json, indicando que é uma dependência de desenvolvimento e não deve ser incluído em builds de produção.
IV. O diretório node_modules, onde os pacotes instalados pelo npm são armazenados, deve ser incluído no controle de versão para garantir que todas as dependências sejam restauradas em ambientes de desenvolvimento e produção.
Estão corretas apenas as afirmativas
Agora, considere o seguinte trecho de código, onde um CRUD básico para produtos está implementado.
var express = require('express'); var app = express();
app.get('/products', (req, res) => { // implementação da rota });
app.post('/products', (req, res) => { // implementação da rota });
app.put('/products/:id', (req, res) => { // implementação da rota });
app.delete('/products/:id', (req, res) => { // implementação da rota });
app.listen(3000);
Com base no comportamento esperado das rotas HTTP em um CRUD para produtos, qual das afirmativas está INCORRETA?
Com base no código em questão, é correto afirmar que
Considerando o suporte nativo da linguagem, analise o script em PHP que segue.
<?php $data = [ "nome" => "João", "idade" => 30, "habilidades" => ["PHP", "JavaScript", "SQL"], "ativo" => true, "saldo" => null ];
$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); echo $json; ?>
Qual das opções apresenta a saída do código acima?
Considere que, em um script PHP, é executada a linha de código a seguir:
setcookie(‘xxx’, ‘yyy’, time()+30);
Considere as seguintes asserções:
I. A linha cria um cookie com o nome ‘xxx’ armazenando nele a string ‘yyy’.
II. O cookie definido pela linha de código em questão irá expirar em 30 minutos após a sua criação.
III. O valor armazenado no cookie pode ser acessado, utilizando a seguinte chamada de função: getcookie(‘xxx’).
IV. O valor armazenado no cookie pode ser acessado através da superglobal $_COOKIE, da seguinte forma: $_COOKIE[‘yyy’].
Está(ão) correta(s) apenas a(s) seguinte(s) asserção(ões)
Considere que, em um script PHP, uma conexão com o banco de dados é aberta utilizando o seguinte trecho de código:
... $db = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘Livros’); if (mysqli_connect_errno()) { echo ‘<p>Erro: Não foi possível conectar ao BD.</p>’; exit; }
Qual opção apresenta o trecho de código capaz de exibir a quantidade de livros cadastrados no banco de dados?
Em PHP, as funções include e require são usadas para incluir o conteúdo de um arquivo em outro.
Sobre o comportamento dessas duas funções, é correto afirmar que
A respeito do conceito apresentado, avalie as asserções a seguir e a relação proposta entre elas:
I. O polimorfismo por sobrecarga em Java permite que métodos com o mesmo nome executem diferentes comportamentos com base no número ou no tipo de parâmetros fornecidos.
II. No polimorfismo por sobrecarga, a escolha de qual método será invocado é feita em tempo de execução, permitindo maior flexibilidade no comportamento dinâmico dos objetos.
Após feita a análise, é correto afirmar que
Sobre o tema modificadores, associe os termos às descrições, utilizando os códigos a seguir:
I. static. II. public. III. private. IV. protected.
( ) Ao ser definido em um elemento, significa que pode ser acessado apenas dentro da mesma classe.
( ) Ao ser definido em um elemento, significa que pode ser acessado apenas entre classes que se relacionam em uma hierarquia de herança.
( ) Ao ser definido em um elemento, significa que pertence à classe, em vez de pertencer a instâncias individuais dessa classe.
( ) Ao ser definido em um elemento, significa que pode ser acessado por qualquer classe, seja dentro ou fora do pacote da classe.
A associação correta, de cima para baixo, é:
Tendo como referência o tema classes concretas, classes abstratas e métodos abstratos, analise as afirmativas abaixo, assinalando V, para as Verdadeiras, e F, para as Falsas.
( ) As classes concretas atuam como modelos que definem um conjunto de características e comportamentos que suas subclasses devem seguir, sem estarem diretamente associadas a objetos.
( ) Superclasses abstratas obrigam suas subclasses a sobrescrever e implementar os métodos declarados como abstratos.
( ) Uma subclasse concreta deve fornecer implementações concretas de todos os métodos abstratos herdados da superclasse; caso contrário, será considerada abstrata também.
A sequência correta, de cima para baixo, é:
Com relação ao tema apresentado, analise as afirmativas a seguir:
I. Na ligação dinâmica, um método será executado sempre da mesma maneira, independentemente do objeto ou da interação.
II. Na ligação dinâmica, a vinculação tardia é realizada com base na referência armazenada na variável da superclasse, selecionando o método correspondente em tempo de execução.
III. A ligação dinâmica permite determinar, em tempo de execução, qual versão de um método será chamada com base no objeto.
IV. A ligação dinâmica permite que classes, que compartilham a mesma interface, forneçam suas próprias implementações de um mesmo método.
Estão corretas apenas as afirmativas
I- Private Torna a variável visível apenas para sua classe.
II- Protected A variável só é visível para a classe que foi criada e suas herdeiras.
III- Public Pode ser acessada de qualquer classe.
IV- Sem modificadores A variável pode ser usada por todas as classes do programa.
Estão corretas apenas as afirmativas
Texto publicado no XXXVI Congresso da Sociedade Brasileira de Computação diz que
“A Programação Orientada a Objetos (POO) mostra-se um paradigma de programação, influente, pelo qual a maior parte dos cursos da área de computação incluem a POO como parte de seus currículos. No entanto, o ensino de POO não é uma tarefa trivial.
Há alertas sobre as dificuldades encontradas por alunos e professores no ensino de POO; os autores apontam que é difícil para os alunos entenderem conceitos abstratos como classes, instâncias, encapsulamento, herança e construtores.
Apesar de muitos esforços terem sido feitos desde então, as disciplinas de programação ainda são responsáveis por um alto índice de reprovação nos cursos de computação.”
Considerando os conceitos de Programação Orientada a Objetos, avalie as seguintes asserções e a relação proposta entre elas:
I. A herança de classes é uma das principais características da Programação Orientada a Objetos (POO). Por meio dessa característica do paradigma POO, um objeto recebe características e comportamentos de outro objeto. Quando estiver criando classes, você vai perceber que essa possibilidade permite o reaproveitamento de código e torna o trabalho mais racional e otimizado.
PORQUE
II. Novas classes podem ser definidas em termos das classes existentes, usando-se herança de classe. Quando uma subclasse herda de uma classe-mãe, ela inclui as definições de todos os dados e operações que a classe-mãe define. Os objetos que são instâncias das subclasses conterão todos os dados definidos pela subclasse e suas classes mãe, e eles serão capazes de executar todas as operações definidas por esta subclasse e seus “ancestrais”.
A respeito dessas asserções, qual é a opção correta?
Os padrões de criação abstraem o processo de instanciação. Eles ajudam a tornar um sistema independentemente de como seus objetos são criados, compostos e representados.
Um padrão de criação de classe usa a herança para variar a classe que é instanciada, enquanto que um padrão de criação de objeto delegará a instanciação para outro objeto. Os padrões de criação se tornam importantes à medida que os sistemas evoluem no sentido de depender mais da composição de objetos do que da herança de classes.
Algumas vezes, os padrões de criação competem entre si. Por exemplo, há casos em que tanto Prototype (121) como Abstract Factory (95) podem ser usados proveitosamente.
Em outras ocasiões, eles são complementares: Builder (104) pode usar um dos outros padrões para implementar quais componentes são construídos. Prototype (121) pode usar Singleton (130) na sua implementação.
Dessa forma, é importante identificar as características de cada padrão.
Faça a associação correta entre as colunas, relacionando o tipo de padrão e suas características.
1-Abstract Factory (95). 2-Builder (104). 3-Factory Method (112). 4-Prototype (121). 5-Singleton (130).
A- Fornece uma interface para criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas.
B- Garante que uma classe tenha somente uma instância e fornece um ponto global de acesso para ela.
C- Especifica os tipos de objetos a serem criados, usando uma instância prototípica, e cria novos objetos copiando este protótipo.
D- Separa a construção de um objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações.
E- Define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe a ser instanciada. Permite a uma classe postergar (defer) a instanciação às subclasses.
Qual é a associação correta entre números e letras?
As palavras que preenchem a sentença, completando-a corretamente, são:
class BombaDeCombustivel{ int id; private float qtde; private float precoTotal; public static precoPorLitro = 6.10;
public void setQtde(float qtde){ this.qtde = qtde; this.precoTotal = qtde*this.precoPorLitro; } }
Sobre o(os) atributo(s) da classe BombaDeCombustivel, é correto afirmar que
A restrição apresentada na classe "Colaborador" é um exemplo de qual conceito de programação orientada a objetos?