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 uma linguagem de programação orientada a objetos, a habilidade de uma variável de objeto em assumir formas diferentes é chamada de:


A

Encapsulamento.


B

Abstração.


C

Herança.


D

Polimorfismo.


E

Interface.

Analise o seguinte trecho de código Java:


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class ArrayLista {

public static void main(String[] args) {

List<String> str = Arrays.asList("c", "a", "b");

str.sort();

System.out.println(str.toString());

}

}


O que será escrito na saída padrão após a execução?


A

[c, a, b]


B

[a, b, c]


C

['a', 'b', 'c']


D

["a", "b", "c"]


E

Mensagem de erro de compilação.

Analise as afirmativas abaixo a respeito de programação estruturada:


I. A programação estruturada exclui-se do conjunto de paradigmas de programação composto exclusivamente pelos modelos orientado a objetos, lógico e funcional.

II. A programação estruturada também pode ser denominada imperativa ou procedural.

III. No paradigma estruturado, o problema é dividido em problemas menores, de mais fácil solução, chamados de sub-rotinas ou funções.

IV. Toda sub-rotina ou função deve receber um ou mais parâmetros de entrada e deve retornar ao menos um valor de saída.


Marque a opção que contém as afirmativas CORRETAS.


A

I e II apenas.


B

II e III apenas.


C

I e III apenas.


D

II e IV apenas.


E

Todas as afirmações estão corretas.

A linguagem Java possui inúmeros pacotes que podem ser utilizados por desenvolvedores para diferentes propósitos. Um pacote utilizado para o desenvolvimento de interfaces gráficas no Java e que possui como um de seus componentes o JFrame é o:


A

java.lang


B

javax.swing


C

java.util


D

java.io


E

javax.xml

O código


[[x <- data.frame(“id” = 1:5, “idade” = c(33,50,47,51,54), “nome” = c(“Yeshua”, “Mariah”, “Paul”, “John”, “Peter”)) x[3]


apresentará, ao ser executado, o resultado a seguir.


-id idade nome

1 1 33 Yeshua

2 2 50 Mariah

3 3 47 Paul


C

Certo


E

Errado

Qual das seguintes afirmações sobre a classe std::unique_ptr, introduzida na versão 11 da linguagem de programação C++, é verdadeira?


A

O usuário é responsável por liberar a memória ocupada por objetos do tipo std::unique_ptr usando o comando delete para evitar um vazamento de memória.


B

Múltiplas cópias do mesmo objeto do tipo std::unique_ptr podem coexistir, o que é chamado de ponteiro compartilhado.


C

Um objeto do tipo std::unique_ptr pode ser nulo, assim como um ponteiro padrão da linguagem.


D

Um objeto do tipo std::unique_ptr não pode apontar para vetores ou listas.


E

Um objeto do tipo std::unique_ptr usa mais memória do que um ponteiro padrão da linguagem, já que precisa armazenar o número de referências ao objeto.

A Programação Orientada a Objetos baseia-se na definição de classes e na criação de objetos a partir dessas classes, durante a execução do programa. Neste contexto, considere a ilustração a seguir:


Imagem associada para resolução da questão


Com base na imagem e à luz dos fundamentos da orientação a objetos, considere as seguintes definições:


I- É possível observar o conceito do polimorfismo na figura, pois os três animais realizam o mesmo método, ainda que de modo distinto.

II- Os três objetos, apesar de serem de espécies distintas, possuem alguns atributos e métodos em comum, o que caracteriza o conceito de herança.

III- Ao desconhecer os detalhes internos da ação de falar nos animais, estamos diante de um exemplo de proteção.

IV- Através dos balões de diálogos presentes na figura e a forma como foram gerados, verifica-se o encapsulamento dos objetos.


Assinale a alternativa que traz os itens CORRETOS.


A

Somente as afirmações I e II.


B

Somente as afirmações I e III.


C

Somente as afirmações I e IV.


D

Somente as afirmações II e III.

A linguagem C possui um recurso denominado “ponteiro”. Este tipo de recurso funciona como uma variável que aponta para uma posição específica da memória.


Assinale a alternativa que apresenta, corretamente, a declaração de um ponteiro para um inteiro.


A

p = &pointer


B

int #p


C

int *p


D

pointer(int(p))


E

pointer.int = p

Uma das principais diferenças entre linguagens de programação interpretadas e compiladas é a forma como o código é processado e executado. Enquanto as linguagens compiladas passam por um processo de compilação, que transforma o código fonte em código de máquina executável, as linguagens interpretadas executam o código fonte diretamente em tempo de execução. Com base nessa diferença, qual das seguintes afirmações é verdadeira sobre as vantagens das linguagens de programação interpretadas em relação às linguagens compiladas?


A

Linguagens interpretadas geralmente têm uma execução mais lenta do que as linguagens compiladas, pois o código precisa ser processado em tempo de execução.


B

Código compilado é geralmente mais fácil de depurar do que código interpretado, pois o processo de compilação pode detectar erros de sintaxe e semântica no código fonte antes da execução.


C

Linguagens interpretadas são geralmente menos portáteis do que linguagens compiladas, pois dependem da disponibilidade do interpretador em cada sistema operacional em que são executadas.


D

Nas linguagens interpretadas, o código pode ser modificado e executado em tempo de execução, sem a necessidade de recompilar o código.


E

Código compilado geralmente tem um tamanho menor do que código interpretado, pois não precisa incluir o interpretador junto com o programa executável.

Considere o trecho de código abaixo escrito em Python (versão 3.11.3) para resposta da Questão 25.


cesta = [{

‘fruta ': 'abacaxi ',

‘quantidade ': 7,

'valor': 5.5

},{

'fruta': 'melancia',

'quantidade': 5,

'valor': 3.5

},{

'fruta': 'laranja',

'quantidade': 12,

'valor': 2.5

}]


A sintaxe correta para dobrar o valor da fruta abacaxi é


A

cesta[0]['valor'] *= 2.


B

cesta[1]['valor'] *= 2.


C

cesta['abacaxi']['valor'] *= cesta['abacaxi']['valor'].


D

cesta['abacaxi']['valor'] = cesta['abacaxi']['valor'] * 2.

O código Java a seguir foi escrito considerando a openJDK 17.0.3.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class Main {

.

--public static float calc (int z, int x, int y){

----return x / (y-z) * z;

----

--}

----

--public static void main(String[] args) {

----int y = 6;

----int x = 9;

----int z = 3;


----System.out.print(calc(x,y,z));

--}

}


Ao executar este trecho de código o resultado mostrado na tela será:


A

1


B

3


C

-3


D

9


E

-9

Servlets Java baseados na classe HttpServlet estão sujeitos a lidar com múltiplas requisições simultâneas, cada qual sendo processada por um thread distinto. Como boa prática de programação, isso implica que


A

deve ser implementado acesso sincronizado a recursos compartilhados, tais como arquivos e conexões a bancos de dados.


B

se o método doPost for implementado por meio de override, então doGet não deve ser implementado.


C

deve ser implementado um controle de sessão baseado em cookies.


D

deve ser utilizado o protocolo HTTPS e não o HTTP, pois o primeiro lida melhor com múltiplas requisições simultâneas.


E

deve ser implementado o método doTrace por meio de override.

É praticamente impossível falar em orientação a objetos sem relacioná-la ao conceito de classes. Analise o seguinte código e selecione a alternativa que mostra a relação entre as duas classes.


1 class Veiculo :

2 __ def __init__ (self, tipo, chassi, marca, modelo, ano):

3 ____ self.tipo = tipo

4 ____ self.chassi = chassi

5 ____ self.marca = marca

6 ____ self.modelo = modelo

7 ____ self.ano = ano

8 class Motocicleta(Veiculo):

9 __ def __init__ (self, tipo, chassi , marca, modelo, ano, cilindrada):

10 ____ super().__init__(tipo, chassi, marca, modelo, ano)

11 ____ self.cilindrada = cilindrada


A

Polimorfismo


B

Atributos


C

Métodos


D

Encapsulamento


E

Herança

Você foi requisitado(a) para auxiliar na solução de um novo controle de estoque. Você decidiu utilizar a classe Matemática para realizar as operações matemáticas necessárias para tal controle.


class Matematica {

public int multiplicacao(int a, int b) {

return a * b;

}

public double multiplicacao(double a, double b) {

return a * b;

}

public int exponenciacao(int a, int b) {

int resultado = 1;

for (int i = 0; i < b; i++) {

resultado *= a;

}

return resultado;

}

}


Qual é o conceito apresentado pelos métodos multiplicação e exponenciação na classe Matemática?


A

Herança.


B

Pacotes.


C

Sobrecarga de método


D

Polimorfismo.


E

Interface.

Considere os programas em C# e em PHP a seguir:


C#


using System;

namespace TratamentoExcecao (

class Program (

static void Main(:string[] arqs) (

try( double num = 10;

double den = 0;

double r = FazDivisao(num, den);

Console.WriteLine($"Resultado da divisao: {r}");

}

catch (DivideByZeroException ex) {

Console.WriteLine($"Erro: (ex.Message}");

}

catch (Exception ex) {

Console.WriteLine($"Erro desconhecido: {ex.Message}");

}

}

static double FazDivisao(double n, double d) (

if (d==0) (

}

return n / d;

}

}

}

PHP


<?php

function divide($a, $b) {

if ($b === 0) {

}

return $a / $b;

}


try {

$num1 = 10;

$num2 = 0;

$resultado = divide($num1, $num2);

echo "O resultado da divisão é: " . $resultado;

} catch (Exception $e) {

echo "Erro: " . $e->getMessage ();

}

?>








Em condições ideais, para que cada um dos programas possa ser executado fazendo o tratamento de exceção relativo à divisão e sejam impressas as frases exatamente iguais, as lacunas I e II devem ser corretamente preenchidas com:


A

Lacuna I

Lacuna II

throw new Exception ("Divisão por zero não é válida.")

throw new Exception ("Divisão por zero não é válida.")


B

Lacuna I

Lacuna II

throw new DivideByZeroException("Divisão por zero não é válida.")

throw new DivideByZeroException("Divisão por zero não é válida.")


C

Lacuna I

Lacuna II

throw new DivideByZeroException("Divisão por zero não é válida.")

throw new Exception ("Divisão por zero não é válida.")


D

Lacuna I

Lacuna II

throw new Exception ("Divisão por zero não é válida.")

throw new DivideByZeroException("Divisão por zero não é válida.")


E

Lacuna I

Lacuna II

throw new DivideByZeroException("Divisão por zero não é válida.")

throw new Exception_DivideByZero("Divisão por zero não é válida.")

Classes em linguagens com suporte a orientação a objetos como C++, Java, Python etc. têm, entre outros usos, o de prover acesso controlado a informações, encapsulando as mesmas. Suponha que um programador deseja criar uma classe foo que armazena localmente um valor x_foo, que não é acessível de forma alguma por código externo a foo. Suponha ainda que foo possui um método público mx_foo(), que pode alterar o valor de x_foo a cada vez que é chamado, e que a cada chamada de mx_foo() o valor inicial de x_foo visto por este método é aquele deixado pela chamada de mx_foo() imediatamente anterior à chamada corrente em questão. Isso:


A

Não é possível de ser implementado em linguagens com suporte a orientação a objetos.


B

É passível de implementação se a linguagem de programação permitir declaração de variáveis locais em métodos da classe foo.


C

É passível de implementação se a linguagem de programação permitir a declaração de variáveis locais estáticas na classe foo.


D

É passível de implementação se a linguagem de programação permitir declaração de variáveis externas na classe foo.


E

É passível de implementação em uma linguagem de programação que permita declaração de variáveis locais automáticas em métodos da classe foo.

No âmbito da programação orientada a objetos, utiliza-se o conceito de polimorfismo, sobre o qual é correto afirmar que:


A

associa-se o mesmo nome para mais de um método, normalmente contendo códigos distintos entre si.


B

o número de atributos e de métodos deve ser o mesmo em todas as classes do programa.


C

deve haver um único nome para todos atributos e métodos contidos no programa.


D

cada classe somente pode comportar um único método.


E

os métodos com o mesmo nome devem ser compilados em compiladores distintos entre si.

Sobre o conceito de herança em programação orientada a objetos, assinale a alternativa correta.


A

Proteger os atributos e métodos da classe


B

Possibilitar o compartilhamento de atributo, métodos e outros recursos entre classes


C

Controlar atributos de outras classes


D

Definir métodos em outras classes

O Diagrama de Classes do UML permite apresentar, de maneira visual, as classes presentes em um sistema desenvolvido, seguindo o paradigma de orientação a objetos. Considerando os atributos de uma classe, são utilizados símbolos para representar os modificadores de acesso deles, também conhecidos como “visibilidade dos atributos”. O símbolo que representa o modificador de acesso “protegido” (protected) é o:


A

–


B

+


C

#


D

~


E

/

   
Gerar simulado