25 perguntas e respostas mais comuns da entrevista C [para calouros]
Publicados: 2020-12-18C é uma poderosa linguagem de programação de propósito geral que suporta paradigmas procedimentais, imperativos e estruturados. Ele é usado para desenvolver sistemas operacionais, bancos de dados e software de aplicação para uma ampla gama de arquiteturas de computadores (PLCs, sistemas embarcados, etc.). C é uma excelente linguagem amigável para iniciantes com uma curva de aprendizado fácil.
Qualquer pessoa que pretenda construir uma carreira em desenvolvimento de software deve dominar o básico de C. Depois de aprender o âmago da questão da linguagem de programação C, você estará pronto para quebrar a entrevista em C!
Neste blog, vamos orientá-lo através de algumas das perguntas de entrevista C mais comuns. Normalmente, uma entrevista de emprego começa testando seu conhecimento básico do assunto (neste caso, linguagem de programação C) e gradualmente avança para explorar suas habilidades práticas no domínio.
Então, sem mais delongas, vamos conferir as 25 perguntas mais frequentes da entrevista C!
C Perguntas e respostas da entrevista
- Quais são as principais características do C?
A linguagem de programação C é:
- Nível médio – C combina os melhores recursos de linguagens de baixo e alto nível para criar uma linguagem de programação refinada e de nível médio.
- Estruturado – C é uma linguagem estruturada, o que significa que os programas C são segmentados em várias partes.
- Portátil – Depois de escrever um programa em C, você pode executá-lo em qualquer máquina com o mínimo ou nenhuma alteração.
- Rápido – C usa uma variedade de tipos de dados e operadores, tornando-o altamente rápido e eficiente.
- Extensível – C é altamente extensível, pois pode se adaptar perfeitamente a novos recursos.
- Gerenciamento de memória – C tem uma função de memória embutida que economiza memória e melhora a eficiência do programa C.
- Quais tipos de dados C suporta?
C tem quatro categorias de tipos de dados:

- Tipo de dados básico
- Tipo de dados derivados
- Tipo de dados enumerados
- Tipo de dados nulo
- Explique “variável de ponteiro oscilante” em linguagem C.
Na programação C, um ponteiro indica a localização da memória ou o endereço de uma variável existente. No entanto, se essa variável for excluída e o ponteiro direcionar para o mesmo local de memória, ela será chamada de variável de ponteiro oscilante.
- O que é um “Ponteiro sobre Ponteiro?”
Um “Pointer on Pointer” refere-se a uma variável de ponteiro que contém o endereço de outra variável de ponteiro. Em essência, o ponteiro desreferencia duas vezes para indicar os dados contidos na variável de ponteiro designada.
- Defina uma “matriz”.
Uma matriz é uma estrutura de dados que contém vários elementos do mesmo tipo de dados de maneira organizada. As matrizes são geralmente de três tipos: unidimensionais, bidimensionais e tridimensionais.
- O que é uma variável estática? Por que as variáveis estáticas são usadas em C?
Uma variável estática é aquela que é declarada pela palavra-chave “Static”. Uma variável estática retém seu valor entre várias chamadas de função.
A variável estática é usada como um valor comum compartilhado por todos os métodos e é inicializada apenas uma vez no heap de memória para reduzir o uso de memória. Enquanto a variável estática é inicializada com zero, se você atualizar o valor de uma variável, o valor atualizado será atribuído.
- Defina o “escopo” de uma variável.
O escopo de uma variável refere-se à parte do código (função) em que a variável é declarada. Na linguagem de programação C, todos os identificadores têm escopo estático ou léxico.
- O que é alocação dinâmica de memória?
A alocação dinâmica de memória é o procedimento de alocação de memória para o programa C e suas variáveis durante o tempo de execução. Enquanto malloc(), calloc() e realloc() alocam memória, a função free() libera o espaço de memória usado.
Leia : Perguntas e respostas da entrevista SQL
- Explique a diferença entre as funções calloc() e malloc().
Em C, tanto calloc() quanto malloc() são funções de alocação de memória que alocam memória da área de heap (memória dinâmica). A principal diferença entre as duas funções de alocação de memória é que calloc() carrega todos os locais de memória atribuídos com o valor 0 enquanto malloc() não.
- Explique “Alocação de memória estática”.
Ao contrário da alocação dinâmica de memória que aloca memória em tempo de execução, a alocação estática de memória aloca a memória durante a compilação. A alocação de memória estática não permite aumentar a alocação de memória enquanto o programa C está sendo executado. Você pode implementar a memória estática usando pilhas/heap e alocar a memória usando a palavra-chave “Static”. Geralmente, a alocação de memória estática requer mais espaço de memória para armazenar variáveis do que a alocação de memória dinâmica.
- Cite alguns tokens C?
Um Token é um identificador. Geralmente é a menor unidade em um programa C. Constantes, Strings, Palavras-chave, Operadores, Identificadores e Caracteres Especiais são alguns Tokens C usados na escrita de programas C.
- Um código C compilará ou será executado sem uma função main()?
Na ausência de uma função main(), o programa C irá compilar em vez de executar porque a função main() é obrigatória para executar qualquer programa C.
- Defina uma “Estrutura Aninhada”.
Uma Estrutura Aninhada é criada quando um elemento ou membro de dados de uma função contém um membro de dados de outra estrutura.

- Distinguir entre parâmetros reais e formais.
Os parâmetros reais são enviados da função primária para a função subdividida e os parâmetros declarados como a função Subdividida são conhecidos como parâmetros formais.
- O que é uma diretiva de pré-processador?
Uma diretiva de pré-processador é uma função predefinida embutida que funciona como uma diretiva para o compilador executar tarefas específicas antes do início do processo de compilação. Assim, uma Diretiva de Pré-processador é sempre executada antes de um programa C ser executado.
- Defina "Argumentos de linha de comando".
Os argumentos passados para a função main() durante a execução de um programa C são conhecidos como Argumentos de Linha de Comando. O primeiro argumento denota a contagem de argumentos e é atualizado automaticamente pelo sistema operacional. O segundo argumento (um array de ponteiros de caracteres) sempre contém strings como parâmetros.
- Como você pode atribuir parâmetros a funções?
Existem duas maneiras de atribuir parâmetros a funções:
- Chamada por valor – Este método é escolhido apenas quando você não quer alterar os parâmetros reais com parâmetros formais, então você só envia uma cópia dos valores como parâmetros para funções.
- Chamada por referência – Nesta abordagem, você envia o endereço dos parâmetros reais para modificá-los usando parâmetros formais.
Confira: Perguntas de entrevista de desenvolvedor de pilha completa
- O que é uma “União” em C?
Em C, uma União é um tipo de dados definido pelo usuário que pode armazenar vários tipos de dados em uma única unidade. Ele contém apenas a memória do maior membro em vez da memória total de todos os membros. Como uma União aloca um espaço compartilhado para todos os membros de uma união, você só pode acessar uma variável por vez em uma União.
- Explique “Recursão”.
Recursão é quando uma função chama a si mesma, e a função que chama a si mesma é conhecida como função recursiva. Uma função recursiva ocorre em dois estágios:
- Fase de enrolamento – Quando uma função recursiva chama a si mesma e atende à condição desejada, a fase de enrolamento termina.
- Fase de desenrolamento – Uma vez alcançada a fase de enrolamento, a fase de desenrolamento inicia retornando o controle para a chamada original.
- Como declarar uma função em C?
Você pode declarar uma função em C assim:
return_type function_name (lista de parâmetros formal)
{
Função_Corpo;
}
- O que a função sprintf() faz?
A função sprintf() é usada para imprimir strings. Ele busca o número total de caracteres em uma string. Esta função transfere os dados para o buffer e, portanto, não imprime a saída na tela. A sintaxe da função sprintf() é:
int sprintf ( char * str, const char * formato, … );
- Distinguir entre as funções getch() e getche()?
Em um programa C, a função getch() lê um único caractere da palavra-chave. Como ele usa qualquer buffer, ele não exibirá os dados inseridos na tela. Ao contrário, enquanto a função getche() também lê um único caractere da palavra-chave, ela mostra os dados na tela.
- O que é “Rvalue” e “Ivalue”?
Rvalue é a expressão que fica no lado direito do operador de atribuição. Ele é atribuído ao Ivalue que se encontra no operador de atribuição. O lvalue deve se referir apenas a uma variável e não a uma constante.
- Nomeie os diferentes especificadores de classe de armazenamento em C.
Em C, existem quatro especificadores de armazenamento:

- Auto
- Estático
- Registro
- Externo
- Existe alguma diferença entre declarar um arquivo de cabeçalho com” “e < >?
Se você declarar um arquivo de cabeçalho usando ” “, o compilador procurará o arquivo de cabeçalho no diretório de trabalho atual e, se não encontrar o arquivo lá, ele investigará outros locais para encontrar o arquivo de cabeçalho. No entanto, se você declarar o arquivo de cabeçalho usando < >, o compilador procurará o arquivo seguindo o caminho interno.
Confira: 15 dicas de entrevista para se destacar em sua entrevista de emprego
Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Conclusão
Então, aí está: perguntas e respostas da entrevista 25 C para ajudá-lo a se preparar para sua próxima entrevista de emprego. Embora essas perguntas apenas risquem a superfície da programação em C, esperamos que elas dêem uma ideia do que você pode esperar nas entrevistas em C!
Se você estiver interessado em aprender mais sobre desenvolvimento de software full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.
