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
 

Uma jovem programadora da COBEDA está aprendendo uma nova linguagem de programação e percebe que, ao tentar executar seu código sem fechar uma estrutura condicional com um delimitador específico, o código não compila. Essa característica da linguagem de exigir um delimitador específico para encerrar uma estrutura é conhecida como


A

tipagem dinâmica.


B

programação orientada a objetos.


C

delimitação por bloco.


D

interpretação.


E

coleta de lixo automática.

Em um loop de repetição , é possível que sua execução seja interrompida sem que as condições de parada sejam atendidas. Considerando a linguagem de programação C, assinale a alternativa correspondente à instrução que tem o objetivo de interromper um laço de repetição, desviando a execução do programa para o comando após o laço.


A


B

continue


C

int


D

char


E

break

Considere o seguinte código em Kotlin:


fun main() {

val list = listOf(1, 2, 3, 5, 8)

val result = list.map { it * 2 }.filter { it > 4 }

println(result)

}


Assinale a opção que indica a saída do terminal após a execução do código acima.


A

[1, 2, 3]


B

[5, 8]


C

[4, 6, 10]


D

[6, 10, 16]


E

[8, 12, 20]

Em relação à herança em linguagens de programação orientadas a objetos, analise as assertivas abaixo, assinalando V, se verdadeiras, ou F, se falsas.


( ) A herança fornece um framework para a definição de hierarquias de classes relacionadas que pode refletir os relacionamentos de descendências no espaço do problema.

( ) Os programadores podem começar um tipo abstrato de dados existente e projetar um descendente modificado para atender a um novo requisito do problema.

( ) A herança oferece uma solução tanto para o problema de modificação oriundo do reuso de tipos abstratos de dados quanto para o de organização de programas.


A ordem correta de preenchimento dos parênteses, de cima para baixo, é:


A

F – F – V.


B

F – V – F.


C

V – V – V.


D

V – F – F.


E

V – V – F.

Considere a função para validação de CEP abaixo.


public static boolean validaCEP(Stríng cep) {return cep. matches("\\s*((\\d{2}\\. \\d{3}-\\d{3})|(\\d{8}))");}


Assinale a opção correta cujo valor do parâmetro "cep" fará com que a função retorne false.


A

"50.710-440"


B

"50710440"


C

"50710440"


D

"50.710-440"


E

"50710-440"

Observe a imagem a seguir.


Imagem associada para resolução da questão


Qual é a saída esperada para o Código em Java?


A

1 3 2 4 5 7 6 8 9.


B

3 7 1 9 2 5 8 4 6.


C

9 8 7 6 5 4 3 2 1.


D

1 2 3 4 5 6 7 8 9.

Em relação a conceitos de programação orientada a objetos, assinale a opção correta.


A

Padrões de frontend são protocolos que garantem a segurança do código.


B

Um método é uma maneira de programar com protocolo próprio independente do programa principal.


C

Polimorfismo é a capacidade de escrever métodos que se comportem corretamente para objetos de tipos diferentes.


D

O uso de passagem de parâmetros em um método tem por finalidade efetuar um ponto de comunicação unidirecional entre programas.


E

O padrão SPA trata múltiplas páginas de aplicação web e garante a segurança da aplicação.

Para uma Analista ler dados de um arquivo CSV chamado amostras.csv e armazená-los em um dataframe chamado dados, utilizando a linguagem R, ele deve utilizar o comando


A

dados <- read(type='csv', file='amostras.csv')


B

dados <- load (file='amostras.csv')


C

dados <- load.csv("amostras.csv")


D

dados <- read('csv', 'amostras.csv')


E

dados <- read.csv('amostras.csv')

No que diz respeito à orientação a objetos, um princípio é definido como aquele em que as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas. É um mecanismo por meio do qual selecionam-se as funcionalidades utilizadas de forma dinâmica por um programa no decorrer de sua execução. Esse princípio é conhecido por


A

encapsulamento.


B

polimorfismo.


C

acoplamento.


D

herança.


E

coesão.

A respeito dos conceitos relacionados ao paradigma de Programação Orientada a Objetos(POO), analise as afirmativas a seguir.


I. A herança entre classes possibilita que determinada classe, conhecida como superclasse, transfira toda a sua estrutura, incluindo atributos e métodos, para outras classes, conhecidas como classes filhas.

II. O encapsulamento propõe a ocultar detalhes de implementação e visibilidade dos dados das classes, o que aumenta a segurança e evita a manipulação indevida dos objetos.

III. Para a aplicação do polimorfismo em programas orientados a objetos é necessária a existência de uma hierarquia de classes, pois, na prática, este conceito se resume em substituir métodos e atributos herdados em uma classe filha para modificar o seu comportamento em relação à superclasse.


Está correto o que se afirma em


A

I, II e III.


B

II, apenas.


C

I e II, apenas.


D

I e III, apenas.

Sobre a estrutura de controle try-catch, em Java, podemos afirmar que:


A

Lança exceções personalizadas durante a execução do programa.


B

É utilizada para lidar com exceções em tempo de compilação.


C

Interrompe a execução do programa em caso de exceção.


D

Controla o fluxo de execução do programa sem lidar com exceções.


E

Garante a execução de um bloco de código independentemente de exceções.

No que se refere aos conceitos básicos de linguagens de programação, observe o código em Java a seguir.

/**

Classe: lnstrucaoWhile

Autor: Tec_Lab_lnfo

Ano : 2023

*/

public class lnstrucaoWhile {

public static void main([ ] args) {

String a = "";

int x = 10;

while ( x > 0 ) {

a = a + x;

x--;

}

System.out.println(+ a);

}

}

Aexecução da classe exibe uma linha com o seguinte resultado:


A

987654321


B

9876543210


C

10987654321


D

109876543210


E

0109876543210

As classes Java a seguir são usadas na implementação de árvores binárias.


public class ArvNo {

int info;

ArvNo esq=null,dir=null;

}


public class Arv {

private ArvNo raiz;


public Arv(){


}


private void percorre(ArvNo r) {

if(r==null)

return;


percorre(r.dir);

percorre(r.esq);

System.out.printf("%d ", r.info);

}

public void exibeArvore() {

percorre(raiz);

}

}


A classe Main abaixo faz uso da classe Arv.


public class Main {


public static void main(String[] args) {

Stack<Integer> p;

Arv a;


// Comandos relativos à criação de uma pilha

// e de uma árvore binária.

//

// Esses comandos são irrelevantes para a

// resolução da questão.


percorrePilha(p);

System.out.println();

a.exibeArvore();

}

public static void percorrePilha(Stack<Integer> p) {

while( !p.isEmpty())

System.out.printf("%d ", p.pop());

}

}

Admita que o método main acima vá ser executado, e que uma pilha como a mostrada na Figura a seguir vá ser passada como parâmetro para o método percorrePilha.


Imagem associada para resolução da questão


Qual árvore binária fará com que o comando a.exibeArvore() exiba no console os mesmos números inteiros, e na mesma ordem, que o método percorrePilha?


A

Imagem associada para resolução da questão


B

Imagem associada para resolução da questão


C

Imagem associada para resolução da questão


D

Imagem associada para resolução da questão


E

Imagem associada para resolução da questão

Considere as seguintes afirmações sobre conceitos fundamentais de orientação a objetos.


I - Classe é um conceito orientado a objeto que encapsula dados e abstrações procedurais necessárias para descrever o conteúdo e comportamento de alguma entidade do mundo real. Em outras palavras, pode-se dizer que classe é uma descrição generalizada que descreve uma coleção de objetos similares.

II - Uma superclasse é uma especialização de uma classe denominada subclasse.

III - Polimorfismo permite que várias operações (implementações) diferentes tenham o mesmo nome.


Quais estão corretas?


A

Apenas I.


B

Apenas I e II.


C

Apenas I e III.


D

Apenas II e III.


E

I, II e III.

Em relação à Programação Orientada a Objetos, analise as assertivas abaixo.


I. Uma classe define as características e o comportamento de um conjunto de objetos.

II. Um objeto é uma instância de uma classe.

III. Encapsulamento é usado para restringir o acesso a variáveis (atributos), métodos ou até à própria classe.

IV. O polimorfismo permite que uma classe possa ser derivada de uma classe mãe, obtendo as mesmas características desta última.


Estão corretas


A

I e III, somente.


B

II e IV, somente.


C

II, III e IV, somente.


D

I e IV, somente.


E

I, II e III, somente.

Com relação aos conceitos de Programação Orientada à Objetos é correto afirmar que:


A

Para uma classe ser considerada abstrata, todos os seus métodos devem ser abstratos. Em Java, para se definir uma classe abstrata deve-se utilizar a palavra chave abstract no início de sua declaração.


B

Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse.


C

O encapsulamento é alcançado por meio da definição da visibilidade pública aos atributos e métodos.


D

Interface pode ser considerada como a forma com que um objeto se apresenta para outros, no que diz respeito aos seus atributos e métodos. Em Java, uma mesma classe não pode implementar mais de uma interface.


E

A herança é um mecanismo que permite que uma classe herde todo o comportamento e os atributos de outra classe. Em Java, pode-se implementar tanto a herança única quanto a herança múltipla

Considere a classe Java abaixo.


public abstract class VendaIngresso {


public void encerraVenda(String espetaculo, String assento) {

double valor = calculaValorIngresso();

confirmaPagamento(valor);

imprimeIngresso();

}


protected void imprimeIngresso() {

// implementação irrelevante para resolver a questão

}


protected void confirmaPagamento(double valor) {

// implementação irrelevante para resolver a questão

}


protected abstract double calculaValorIngresso();

}


Ela contém métodos que implementam o processo de venda de ingressos para espetáculos culturais. Entre eles está o método de encerramento de uma venda, que é composto de três etapas. São elas:


• o cálculo do valor do ingresso;

• a confirmação do pagamento;

• a impressão do ingresso.


As duas últimas etapas independem da natureza de quem está comprando um ingresso, por isso foram implementadas diretamente na classe VendaIngresso. A 1ª etapa, entretanto, não pôde ser implementada nessa classe, pois o valor de um ingresso pode variar de acordo com o tipo de comprador (estudante, idoso, pessoa com deficiência, dentre outros). Por isso, o método calculaValorIngresso é abstrato.


Uma 2ª classe, que implementa a venda de ingressos para estudantes, é mostrada a seguir.


public class VendaIngressoEstudante extends VendaIngresso {

protected double calculaValorIngresso() {

// implementação irrelevante para resolver a questão

}

}


Ela é uma subclasse de VendaIngresso que implementa o cálculo do valor de um ingresso de estudante. Dessa forma, um programa Java que implemente a venda de ingressos para estudantes, baseada nas classes acima, irá conter os seguintes comandos:


VendaIngresso v = new VendaIngressoEstudante();

v.encerraVenda("Máquina Mortífera 20", "L8");


Qual padrão de projeto foi empregado na solução descrita acima?


A

Prototype


B

Adapter


C

Composite


D

Mediator


E

Template Method

Você está trabalhando em um projeto Python 3.X que exige a implementação de um algoritmo que processa grandes quantidades de dados de forma eficiente. Para isso, você decide criar uma função que recebe uma lista de números inteiros e retorna uma nova lista com os números pares elevados ao quadrado e os números ímpares elevados ao cubo. Além disso, a função deve ter uma complexidade de tempo de O(n). Qual implementação atende a esses requisitos?


A

def process_numbers(numbers):

even_squared = [x**2 for x in numbers if

x % 2 == 0]

odd_cubed = [x**3 for x in numbers if x

% 2 != 0]

return even_squared + odd_cubed


B

def process_numbers(numbers):

result = []

for x in numbers:

if x % 2 == 0:

result.append(x**2)

else:

result.append(x**3)

return result


C

def process_numbers(numbers):

result = [x**2 if x % 2 == 0 else x**3 for x

in numbers]

return result


D

def process_numbers(numbers):

even_squared = list(filter(lambda x: x %

2 == 0, numbers))

odd_cubed = list(filter(lambda x: x % 2 !=

0, numbers))

return [x**2 for x in even_squared] +

[x**3 for x in odd_cubed]


E

def process_numbers(numbers):

even_squared = map(lambda x: x**2,

filter(lambda x: x % 2 == 0, numbers))

odd_cubed = map(lambda x: x**3,

filter(lambda x: x % 2 != 0, numbers))

return list(even_squared) +

list(odd_cubed)

Sobre os modificadores de acesso em Java, analise as afirmativas a seguir se são verdadeiras (V) ou falsas (F) e assinale a alternativa com a sequência correta:


( ) Uma classe pode declarar uma constante com public static final.

( ) Protected garante acesso a subclasses e outras classes do mesmo package.

( ) Se uma variável não tem modificador especificado, o modificador de acesso padrão será protected.

( ) Private ajuda em testes e depuração, pois limita o escopo de acesso a apenas subclasses.


A

V – V – F – V.


B

F – V – F – V.


C

V – V – V – V.


D

F – V – V – V.


E

V – F – F – V.

Observe o seguinte programa elaborado na linguagem Java.


public class Main {

public static void main(String[] args) {

int i = 0;

while (i < 3) {

i++;

}

System.out.println(i *= 3);

}

}


O resultado da execução do programa é:


A

6


B

7


C

8


D

9


E

10

   
Gerar simulado