As 50 principais perguntas e respostas de entrevista de programação obrigatórias

Procurando as principais perguntas e respostas de programação para ajudá-lo a acertar uma entrevista? Aqui estão os 50 melhores.

As empresas de software estão sempre à procura de bons talentos de programação, com entrevistas por telefone e online muitas vezes decidindo seu destino em apenas alguns minutos.

Um bom programador precisa ser o mais versátil possível – desde o entendimento de sistemas até a programação geral, diferentes conceitos e tecnologias, além de estar atualizado.

A seguir está uma lista das 50 principais perguntas de entrevista de programação e suas respostas. Eles lançam uma luz sobre os variados conceitos que todo iniciante deve saber para se destacar.

1. O que é Programação de Computadores?

A programação de computadores é o processo de codificação de processos lógicos a serem executados por um computador. Isso é feito usando uma linguagem de computador que contém as instruções necessárias.

O processo pode ser dividido em design, codificação, depuração e atualização.

2. O que é Depuração?

Depuração é o processo de descoberta e eliminação de erros na fonte de software de um programa de computador. Existem muitos métodos para fazer isso, mas a maioria dos ambientes de desenvolvimento vem com um depurador integrado para facilitar as coisas.

3. O que é um compilador?

Um compilador é um programa de software que pega o programa escrito e o transforma em código de máquina que um computador pode entender.

Um pacote de compilador típico, no entanto, é composto por um pré-processador, o compilador principal que transforma a linguagem do computador em código assembly, e um montador.

4. O que é um pré-processador?

Um pré-processador é um programa que analisa o código de computador escrito para encontrar e satisfazer suas dependências, como bibliotecas necessárias.

Depois que o pré-processador se certificar de que tudo, incluindo o ambiente de execução, está correto, um compilador pode converter o código em código assembly.

5. O que é um Montador?

Um montador é um programa que pega o nível mais baixo de código de computador legível por humanos chamado linguagem assembly e o transforma no código de máquina com o qual um computador pode trabalhar.

A linguagem assembly é normalmente produzida por um compilador, embora também se possa codificar diretamente. Um programa assembly pode incluir código como:

MOV AH, 02H

mas quando você o compila em código de máquina, obtém apenas zeros e uns (por exemplo, 0110011110101010).

6. Como um programa é executado?

Primeiro, o sistema operacional carrega o programa especificado do armazenamento em disco rígido na memória do sistema (RAM) e, em seguida, permite que ele seja executado, orientando a CPU a continuar sua execução a partir do primeiro endereço de memória do programa. A CPU executa qualquer comando que vê, então passa para o próximo, muitas vezes repetindo este procedimento milhões de vezes por segundo.

CPUs de 32 bits executam instruções de 32 bits (4 bytes, palavra dupla) de uma só vez, enquanto CPUs de 64 bits executam instruções de 64 bits (8 bytes, palavra quádrupla) de uma só vez. Essas instruções são incorporadas à CPU e é o montador que transforma o código de programação nos números binários que representam os endereços de comando nativos da CPU.

7. Defina um Subrotina

Uma sub-rotina é uma sequência de instruções em um programa que pode ser chamada e executada a qualquer momento. Em outras palavras, uma sub-rotina pode ser uma função, um método ou um procedimento usado para implementar tarefas específicas, como enviar um e-mail, abrir um arquivo ou forçar uma página de login.

8. Defina Código da máquina

O código de máquina é uma sequência de números binários que contém instruções de execução de um microprocessador específico e seus endereços de memória associados.

O código de máquina é tradicionalmente gerado por um montador projetado para essa família específica de microprocessadores.

9. Explique Linguagens Compiladas x Interpretadas

Uma linguagem de computador compilada deve ser transformada em código de máquina antes de ser executada em um computador, enquanto uma linguagem interpretada não precisa de compilação prévia.

Quando você executa um programa interpretado, ele é processado primeiro por um interpretador, que então o compila e executa em tempo real. Essas etapas extras tornam linguagens interpretadas, como Python, mais lentas do que linguagens compiladas, como C.

10. O que é um Loop?

Um loop é uma estrutura de código que pode repetir instruções específicas até que um critério especificado seja alcançado. Este critério pode incluir um número fixo de repetições ou a mudança de uma variável definida.

11. Liste os tipos populares de Loops

Diferentes linguagens de computador interpretarão loops de maneiras diferentes. Os tipos populares de loop da família C, no entanto, incluem:

  1. Enquanto () Loop – permite a execução de código específico, desde que um Boolean enquanto () condição for atendida.
    Por exemplo while(2>1){print(“yahoo!”)};.
  2. Para(;;) Loop – contém três expressões (inicialização; avaliação; atualizar) que definem as condições para testar, bem como um método flexível para incrementar a contagem. Ele também executará o código pelo menos uma vez.
  3. Faça{} loop while() – este tipo de loop executa o Faz{} código pelo menos uma vez antes de determinar se o enquanto () condição ainda é verdadeira.

12. Explique Iteração vs Recursão

Uma iteração é o uso de um loop para executar as mesmas etapas de código, enquanto a recursão é o processo de uma função chamando a si mesma repetidamente. O problema com a recursão, no entanto, é que você só pode chegar a uma certa profundidade até encontrar problemas de memória.

13. Explique os trabalhos de Interromper e Continuar em um loop

A quebrar termina a execução de um loop e continua executando o restante do código do computador. UMA continuar A instrução, por outro lado, continua iterando o loop desde o início.

14. O que é POO?

OOP significa Programação Orientada a Objetos e é um paradigma de programação que implementa o design de software em torno de dados e objetos, em vez de funções ou procedimentos.

15. O que é Programação Processual?

A programação procedural é um paradigma de programação que organiza o código do computador em torno das sequências ou etapas das instruções a serem executadas. Como o nome indica, é uma abordagem de cima para baixo que inicia o código da fase inicial dos eventos e termina com o final esperado dos eventos.

16. Explique a programação funcional

A programação funcional é um paradigma de programação de computadores que aborda o desenvolvimento de software aplicando funções sequenciais que não alteram o estado nem os dados dos argumentos fornecidos.

O objetivo é criar programas mais robustos que produzam os resultados esperados sem efeitos colaterais imprevistos.

17. Explique Linguagem de alto nível

Uma linguagem de programação de alto nível é uma linguagem de computador que apela mais ao entendimento humano do que às especificidades ou natureza do computador.

Linguagens de programação de alto nível, como C e Python, são fáceis de entender, enquanto uma linguagem assembly de baixo nível pode ser muito confusa para iniciantes.

18. Lista Popular Idiomas de baixo nível

Existem apenas duas linguagens de programação de baixo nível: assembly e código de máquina.

19. Defina um ataque de injeção de SQL

Um ataque de injeção SQL é um processo de inserção de instruções SQL em campos de entrada, como nome de usuário ou entradas de endereço, na esperança de que um desenvolvedor não tenha higienizado adequadamente as entradas durante a programação. E, quando bem-sucedido, esse ataque permite que o invasor obtenha acesso de administrador ao servidor.

20. O que é uma Tabela em SQL?

Uma Tabela em SQL refere-se a uma coleção de dados agrupados em colunas e linhas. Cada coluna tem um tipo de dados distinto e você pode ter várias tabelas em um único banco de dados. Você também pode consultar mais de uma Tabela de uma vez.

Você cria uma Tabela com:

CREATE TABLE table_name(tipo de dados coluna1, tipo de dados coluna2, tipo de dados coluna3, …);

21. Explique a diferença entre um objeto e uma classe

Um objeto é uma instância de uma classe, enquanto uma classe é um projeto a partir do qual um objeto é criado. Um objeto pode ter estados e propriedades, como cor, altura, peso, velocidade e assim por diante.

Essas propriedades devem ser definidas ou inicializadas com valores padrão no mínimo.

22. Quantos bits fazem um megabyte?

Existem 8,000,000 bits em 1 Megabyte porque um byte é 8 bits e um Mega é 106.

23. Defina um tipo de dados flutuante

Um float é um tipo de dados que representa um número com frações decimais. É usado em situações em que é necessário um nível mais alto de precisão do que os inteiros padrão podem fornecer. Um exemplo de flutuação é:

0.013 

or 

25.932

24. O que significa o HexaDecimal 0xFF?

0xFF significa Decimal 255 ou Binary 11111111. 0x significa base16 ou notação Hexadecimal, que vai de 1 a 9 e continua com A a F para representar 15. Assim, 0xF é decimal 15, enquanto 0xFF é decimal 255.

25. Nomear Tipos de Erros na Programação

Existem 3 tipos principais de erros em um programa de computador, são eles:

  1. Erro de sintaxe
  2. Erro lógico
  3. Erro de tempo

26. O que é um erro de sintaxe?

Um erro de sintaxe ocorre quando há um desvio da sintaxe geralmente estrita das linguagens de programação. Pode resultar do simples deslocamento de letras para os parâmetros errados sendo passados ​​para uma função. A maioria dos compiladores incluirá o número da linha do código-fonte onde ocorreu o erro.

27. O que é um erro lógico?

Um erro de lógica é um erro que surge da maneira como um programa funciona. Portanto, embora o programa possa ser executado sem falhas, ele não atinge seu objetivo. Erros lógicos podem ocorrer de várias maneiras e ser causados ​​por vários motivos.

28. O que é um erro de tempo de execução?

Um erro de tempo de execução é um erro de programa de computador que ocorre durante a execução do programa e devido a circunstâncias imprevistas. Portanto, embora o programa funcione perfeitamente, por exemplo, problemas de memória e rede podem fazer com que o programa se comporte mal.

29. Explique Linguagens de tipagem forte vs linguagem fraca

Uma linguagem fortemente tipada é rigorosa sobre seus diferentes tipos de dados e como você pode convertê-los, enquanto uma linguagem fracamente tipada impõe menos restrições aos tipos de dados e suas definições.

Muitas linguagens de tipagem fraca converterão tipos de dados automaticamente, enquanto linguagens de tipagem forte geralmente exigem conversões explícitas.

30. O que é Arquitetura MVC?

MVC refere-se a Model-View-Controller e é um padrão de desenvolvimento de software para interfaces de usuário. Ele separa a lógica do programa em 3 partes.

A modelo parte lida com a lógica de dados subjacente dos objetos em questão, enquanto a parte view lida com a exibição de informações para o usuário, e o controlador manipula o fluxo de dados entre as visualizações e os modelos. O design MVC é frequentemente usado com programação orientada a objetos.

31. Defina um Algoritmo

Um algoritmo é uma sequência de procedimentos projetados para resolver um problema específico. Esses procedimentos geralmente são divididos em etapas menores e o computador os executa exatamente dessa maneira todas as vezes.

Exemplos de algoritmos incluem reconhecimento facial, pesquisa do Google, a maneira como você amarra os sapatos, codificação ou criptografia de dados e assim por diante.

32. O que é Aprendizado de máquina?

O aprendizado de máquina ou ML é uma seção de inteligência artificial que se concentra em ajudar os sistemas a identificar padrões e tomar decisões por conta própria por meio do consumo de dados.

Isso melhora seu desempenho ou eficiência. Os sistemas de aprendizado de máquina podem ser supervisionados, não supervisionados e baseados em reforço.

33. O que são Expressões regulares?

Uma expressão regular ou Regex é uma string usada para definir padrões de pesquisa em documentos de texto. Diferentes linguagens de programação implementam expressões regulares ou usam bibliotecas regex populares. Um exemplo de regex para corresponder a todos os caracteres em um texto é:

(. *)

enquanto o seguinte corresponde apenas a arquivos mp3:

.+\.(mp3)$

34. O que o Operador de Módulo (%) faz?

O operador módulo % pega dois operandos e divide o primeiro operando usando o segundo. Em seguida, ele retorna o restante da operação como resultado.

É frequentemente usado para testar números pares e ímpares dividindo qualquer número inteiro por 2, onde um resultado 0 significa um número par e 1 significa um número ímpar.

35. Explique Bifurcação do Processo

A bifurcação vem do garfo() função em sistemas Unix e Linux que pode ser usada por um processo em execução para criar uma cópia de si mesmo. Assim, bifurcação de processos é a duplicação de um processo para criar dois processos semelhantes e executados simultaneamente.

Um tipo adicional de bifurcação refere-se a pegar o código-fonte de um projeto de código aberto e criar um programa totalmente novo a partir dele.

36. Explique Geração de tópicos

A geração de threads é o processo de criação de um novo thread de CPU para executar um processo. Spawning é frequentemente usado por programas de computação intensiva para aproveitar os recursos multi-threading de um processador e seu sucesso depende da CPU em que ele está sendo executado, quantos núcleos ele possui e quantos threads por núcleo ele oferece.

37. Fazer o que Palavras reservadas Significar?

Palavras reservadas são termos que você não tem permissão para usar como identificador em uma linguagem de programação. Isso inclui funções, variáveis ​​e rótulos. Eles são reservados porque já foram definidos e possuem significados específicos.

38. Liste as palavras reservadas populares

Diferentes idiomas têm diferentes palavras reservadas com base em sua sintaxe. Aqui estão as palavras reservadas mais populares em programação:

  1. IF
  2. VERDADEIRO
  3. FALSE
  4. BOTÃO
  5. ELSE
  6. CASO
  7. BOOLEAN
  8. RETORNO
  9. FUNÇÃO
  10. QUEBRAR
  11. GOTO

39. O que é uma String?

Uma string é uma sequência de caracteres, geralmente mantida em uma matriz e usada para definir dados de texto. A string mais popular é “hello world”.

40. O que é uma variável?

Uma variável é qualquer valor que pode mudar durante a execução de um programa. Uma variável pode ser de qualquer tipo de dados, incluindo strings e inteiros. Por exemplo, um programa é inicializado como abaixo:

int a = 0;

intb = 1;

então, durante a execução, as alterações são feitas:

b = a+b; //b variou

41. O que é uma Constante?

Uma constante é uma variável que não deve mudar durante a execução do programa. Um bom exemplo é a velocidade da luz ou do som. Diferentes linguagens de programação permitem definir constantes de diferentes maneiras. Por exemplo, em C:

const float middle_c = 261.62; //a tecla central c em um piano é 261.6255 Hz

42. Defina uma matriz

Uma matriz é um tipo de variável que é usada para armazenar vários valores ao mesmo tempo. Muitas linguagens permitem que você armazene apenas valores de tipos de dados semelhantes, enquanto outras linguagens podem manipular arrays com tipos diferentes. Você também pode ter arrays multidimensionais, que são arrays de arrays e podem ficar confusos.

Definir um array em mql4 é simples com:

string TextArray[100]; // um array de cem strings

43. O que é Sobrecarga de função?

A sobrecarga de função é um método que permite que um desenvolvedor defina várias funções que compartilham o mesmo nome, mas possuem funcionalidades diferentes. Isso é conseguido criando as diferentes versões de função com argumentos diferentes. O compilador então sabe qual função é necessária pelo tipo e número de argumentos fornecidos.

44. Defina um Chamada por referência

Uma chamada por referência é um método de passar o endereço de memória de argumentos para uma função, ao contrário do método padrão de passar uma cópia do valor do argumento. O objetivo das chamadas de referência é que o argumento seja modificado diretamente pela função.

45. Explique Operadores aritméticos

Esses são caracteres especiais que funcionam para realizar operações aritméticas em uma linguagem de programação. Os operadores aritméticos incluem:

  1. A adição ou mais unário (+)
  2. Subtração ou menos unário (-)
  3. Multiplicação (*)
  4. Divisão (/)
  5. Módulo (%).

46. Explique Operadores lógicos

Operadores lógicos são palavras ou símbolos que são usados ​​para realizar operações baseadas em lógica condicional. A maioria das linguagens tem apenas 3 operadores lógicos:

  1. AND (&& em C, C++, JavaScript)
  2. OR (|| em C, C++, JavaScript)
  3. NÃO (! em C, C++, JavaScript)

47. Lógico 1 E 0 =?

Uma operação lógica 1 AND 0 lhe dará falso porque o segundo operando é 0 e você precisa que ambos os operandos da operação AND sejam 1 ou TRUE para obter uma saída positiva.

48. NÃO Lógico 1 =?

Uma operação lógica NOT 1 lhe dará falso porque o operador NOT nega tudo o que você der a ele, o que significa que ele transforma 1 em 0 e 0 em 1. Então, dar a ele um operando 1 ou TRUE resulta em 0 ou FALSE.

49. Lógico 1 NAND 1 =?

Uma operação lógica 1 NAND 1 produzirá falso porque ambos os operandos são TRUE e o operador NAND sempre nega duas entradas semelhantes para produzir uma saída oposta.

Assim, se a operação foi 0 NAND 0, então a saída seria 1 ou TRUE.

50. Lógico 1 XOR 1 =?

Uma operação lógica 1 XOR 1 produzirá falso porque enquanto uma operação OR normal produzirá TRUE em uma ou ambas as entradas sendo TRUE, uma operação XOR (OR Exclusivo) só produz TRUE quando apenas uma entrada e não a outra é TRUE.

Conclusão

Chegamos ao final desta lista das 50 principais perguntas de entrevista de programação obrigatórias e suas respostas. E como você pode ver, o mundo da programação é vasto, mas emocionante.

Não há duas entrevistas iguais. Portanto, embora esta lista o aponte nas direções corretas do tópico, você também deve tentar obter uma melhor compreensão de cada questão.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke é um entusiasta de computadores que adora ler uma grande variedade de livros. Ele tem preferência por Linux sobre Windows/Mac e tem usado
Ubuntu desde seus primeiros dias. Você pode pegá-lo no twitter via bongotrax

Artigos: 226

Receba materiais tecnológicos

Tendências de tecnologia, tendências de inicialização, análises, renda online, ferramentas da web e marketing uma ou duas vezes por mês

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *