Principais 50 C Perguntas e respostas à entrevista de programação (2024)

Table of Contents
C Perguntas da entrevista de programação C Perguntas da entrevista de programação - Para calouros 1. Por que C é chamado de linguagem de programação de nível médio? 2. wO que é as características da linguagem de programação C? 3. Quais são os tipos básicos de dados suportados na linguagem de programação C? 4. O que são tokens em C? 5. O que você quer dizer com o escopo da variável? 6. O que são diretivas de pré -processador em C? 7. Qual é o uso de variáveis estáticas em C? C 8. Qual é a diferença entre Malloc () e Calloc () na linguagem de programação C? 9. O que você quer dizer com ponteiros pendentes e como os ponteiros pendurados são diferentes dos vazamentos de memória na programação C? 10. Escreva um programa para converter um número em uma string com a ajuda da função sprintf () na biblioteca C. C 11. O que é recursão em C? 12. Qual é a diferença entre as variáveis locais e globais em C? 13. O que são dicas e seus usos? 14. O que é tipedef em c? 15. O que são loops e como podemos criar um loop infinito em C? C 16. Qual é a diferença entre a fundição do tipo e a conversão do tipo? 17. O que são arquivos de cabeçalho e seus usos? 18. Quais são as funções e seus tipos? 19. Qual é a diferença entre macro e funções? C Perguntas da entrevista de programação - nível intermediário 20. Como converter uma string em números em c? 21. O que são palavras -chave reservadas? 22. O que é uma estrutura? C 23. O que é Union? 24. O que é um valor R e um valor? 25. Qual é a diferença entre chamada por valor e chamada por referência? 26. Qual é a função Sleep ()? 27. O que são enumerações? C 28: O que é uma palavra -chave volátil? 29. Escreva um programa C para imprimir a série Fibonacci usando a recursão e sem usar a recursão. C 30. Escreva um programa C para verificar se um número é primo ou não. C 31. Como o código -fonte é diferente do código do objeto? 32. O que é alocação de memória estática e alocação dinâmica de memória? 33. O que é a referência passada nas funções? C 34. O que é um vazamento de memória e como evitá -lo? 35. Quais são os argumentos da linha de comando? 36. O que é uma palavra -chave automática? 37. Escreva um programa para imprimir “Hello-World” sem usar um semicolon. C 38. Escreva um programa C para trocar dois números sem usar uma terceira variável. C 39. Escreva um programa para verificar se uma string é um palíndromo ou não. C 40. Explique modificadores. C Perguntas da entrevista de programação - para experiente 41. Escreva um programa para imprimir o fatorial de um determinado número com a ajuda da recursão. C 42. Escreva um programa para verificar um número de Armstrong. C 43. Escreva um programa para reverter um determinado número. C 44. Qual é o uso de um especificador de armazenamento externo? 45. Qual é o uso das funções PrintF () e Scanf () na linguagem de programação C?Além disso, explique os especificadores de formato. 46. O que está próximo, longe e enormes dicas em C? 47. Mencione as operações de arquivo em C. 48. Escreva um programa para verificar se uma lista vinculada é circular ou não. C 49. Escreva um programa para mesclar duas listas vinculadas classificadas. C 50. Qual é a diferença entre getc (), getchar (), getch () e getche (). Por favorConecte-secomentar... References

Na Bell Labs, Dennis Ritchie desenvolveu a linguagem de programação C entre 1971 e 1973. C é uma programação de orientação estruturada de nível médio e programação de uso geral.É uma das linguagens de programação antigas e mais populares.Existem muitas aplicações nas quais a linguagem de programação C é usada, incluindo linguagem compiladores, Assim,sistemas operacionais, montadores, drivers de rede, editores de texto, spoolers impressos, aplicações modernas, intérpretes de idiomas,bancos de dadose utilitários.

Principais 50 C Perguntas e respostas à entrevista de programação (1)

C Perguntas da entrevista de programação

C A linguagem de programação é um dos idiomas complexos, mas importantes para aprender para fortalecer suas habilidades de programação.As perguntas da entrevista podem ser categorizadas em duas partes:

  1. Para calouros
  2. Para experiente

Neste artigo, você receberá oFreqüentemente e a maioria pediu perguntas e respostas da entrevista de programação C nos níveis mais frescos e experientes.Então, vamos começar com perguntas para calouros.

C Perguntas da entrevista de programação - Para calouros

1. Por que C é chamado de linguagem de programação de nível médio?

Devido à sua capacidade de apoiar os doisbaixo nível e alto nívelRecursos, C é considerado uma linguagem de nível médio.É uma linguagem em nível de montagem, ou seja, uma linguagem de baixo nível e uma linguagem de nível superior.Os programas escritos em C são convertidos em código de montagem e suportam a aritmética do ponteiro (de baixo nível) enquanto são independentes da máquina (de alto nível).Portanto, C é frequentemente referido como uma linguagem de nível médio.C pode ser usado para escrever sistemas operacionais e sistemas de cobrança de consumo orientados por menus.

2. wO que é as características da linguagem de programação C?

Principais 50 C Perguntas e respostas à entrevista de programação (2)

Recursos da linguagem de programação C

Para mais informações, consulte o artigo - Recursos da linguagem de programação C.

3. Quais são os tipos básicos de dados suportados na linguagem de programação C?

Cada variável em C possui um tipo de dados associado.Cada tipo de dados requer diferentes quantidades de memória e possui algumas operações específicas que podem ser executadas sobre ele.Ele especifica o tipo de dados que a variável pode armazenar como número inteiro, caráter, flutuação, duplo, etc. Nos tipos de dados C são amplamente classificados em 4 categorias:

  • Tipos de dados primitivos:Os tipos de dados primitivos podem ser classificados ainda mais em tipos de dados inteiros e flutuantes.
    • Tipos de vazios:Os tipos de dados vazios estão sob tipos de dados primitivos.Os tipos de dados vazios não fornecem resultado ao seu chamador e não têm valor associado a eles.
  • Tipos de dados definidos pelo usuário:Esses tipos de dados são definidos pelo usuário para tornar o programa mais legível.
  • Tipos de dados derivados:Tipos de dados derivados de tipos de dados primitivos ou internos.

Principais 50 C Perguntas e respostas à entrevista de programação (3)

Tipos de dados em c

Para mais informações, consulte o artigo - Tipos de dados em C.

4. O que são tokens em C?

Os tokens são identificadores ou a menor unidade única em um programa significativo para o compilador.Em C, temos os seguintes tokens:

  • Palavras-chave:Palavras predefinidas ou reservadas na linguagem de programação C.Toda palavra -chave deve executar uma tarefa específica em um programa.C A linguagem de programação suporta 32 palavras -chave.
  • Identificadores:Os identificadores são nomes definidos pelo usuário que consistem em uma sequência arbitrariamente longa de dígitos ou letras com uma letra ou o sublinhado (_) como primeiro caractere.Os nomes do identificador não podem ser iguais a palavras -chave reservadas na linguagem de programação C.Há um conjunto de regras que um programador deve seguir para nomear um identificador em C.
  • Constantes:As constantes são variáveis normais que não podem ser modificadas no programa depois de definidas.Constantes se referem a um valor fixo.Eles também são chamados de literais.
  • Cordas:Strings em C são uma variedade de caracteres que terminam com um caractere nulo (‘\ 0).Caractere nulo indica o final da string;
  • Símbolos especiais:Alguns símbolos especiais em C têm algum significado especial e, portanto, não podem ser usados para qualquer outro propósito no programa.# = {} (), *;[] são os símbolos especiais na linguagem de programação C.
  • Operadores:Símbolos que acionam uma ação quando são aplicados a qualquer variável ou qualquer outro objeto.Os operadores unários, binários e ternários são usados na linguagem de programação C.

Para mais informações, consulte o artigo - Tokens em c

5. O que você quer dizer com o escopo da variável?

O escopo em uma linguagem de programação é o bloco ou uma região em que uma variável definida terá sua existência e, além dessa região, a variável será destruída automaticamente.Toda variável tem seu escopo definido.Em termos simples, o escopo de uma variável é igual à sua vida no programa.A variável pode ser declarada em três lugares, esses são:

  • Variáveis locais:Dentro de uma determinada função ou um bloco
  • Variáveis ​​globais:De todas as funções globalmente dentro do programa.
  • Parâmetros formais:Apenas parâmetros de função.

Para mais informações, consulte o artigo - Escopo em c

6. O que são diretivas de pré -processador em C?

Nas diretivas de pré-processador de C são consideradas as funções ou macros predefinidos incorporados que atuam como uma diretiva para o compilador e são executados antes da execução do programa.Existem várias etapas envolvidas na escrita e execução de um programa em C. os principais tipos de diretrizes de pré -processador sãoMacros, Inclusão de arquivos, compilação condicional e outras diretrizes como #Undef, #Pragma, etc.

Principais 50 C Perguntas e respostas à entrevista de programação (4)

Processador em c

Para mais informações, consulte o artigo -Diretivas de pré -processador em C

7. Qual é o uso de variáveis estáticas em C?

As variáveis estáticas na linguagem de programação C são usadas para preservar os valores de dados entre as chamadas de função, mesmo depois de estarem fora de seu escopo.As variáveis estáticas preservam seus valores em seu escopo e podem ser usados novamente no programa sem inicializar novamente.As variáveis estáticas têm um valor inicial atribuído a 0 sem inicialização.

C

// programa C para imprimir inicial

// valor da variável estática

#include

int principal()

{

estático int era;

int x;

printf("Valor inicial da variável estática %d \ n", era);

printf("Valor inicial da variável sem %estático d", Assim,

x);

retornar 0;

}

Saída

Valor inicial da variável estática 0 valor ativado da variável sem estática 0

Para mais informações, consulte o artigo -Variáveis estáticas em C

8. Qual é a diferença entre Malloc () e Calloc () na linguagem de programação C?

As funções da biblioteca Calloc () e MaiC () são usadas para alocarmemória dinâmica.A memória dinâmica é a memória que é alocada durante o tempo de execução do programa do segmento Heap."Stdlib.h" é o arquivo de cabeçalho usado para facilitar a alocação de memória dinâmica na linguagem de programação C.

ParâmetroMalloc ()Calloc ()
DefiniçãoÉ uma função que cria um bloco de memória de um tamanho fixo.É uma função que atribui mais de um bloco de memória a uma única variável.
Número de argumentosÉ preciso apenas um argumento.São necessários dois argumentos.
VelocidadeA função malloc () é mais rápida que Calloc ().Calloc () é mais lento que o malloc ().
EficiênciaTem alta eficiência.Tem eficiência de baixo tempo.
UsoÉ usado para indicar alocação de memória.É usado para indicar alocação de memória contígua.

Para mais informações, consulte o artigo -Alocação de memória dinâmica em c usando MALLOC (), Calloc (), Free () e RealLoc ()

9. O que você quer dizer com ponteiros pendentes e como os ponteiros pendurados são diferentes dos vazamentos de memória na programação C?

Ponteiros apontando para blocos de memória desalocados na programação C são conhecidos comoPonteiros penduradosou seja, sempre que um ponteiro está apontando para um local de memória e, caso a variável seja excluída e o ponteiro ainda aponta para a mesma localização da memória, ela é conhecida como uma variável de ponteiro pendurado.
No vazamento de memória de programação C, ocorre quando alocamos memória com a ajuda da função da biblioteca Malloc () ou Calloc (), mas esquecemos de libertar a memória alocada com a ajuda da função de biblioteca gratuita ().O vazamento de memória faz com que o programa use uma quantidade indefinida de memória da RAM, o que o torna indisponível para outros programas em execução, que faz com que nosso programa trave.

10. Escreva um programa para converter um número em uma string com a ajuda da função sprintf () na biblioteca C.

C

// programa C para converter o número para

// string usando sprintf ()

#include

#include

// Código do driver

int principal()

{

Caracteres res [20];

flutuador a = 32,23;

sprintf(res,"%f", a);

printf("\ A string para o número é %s", res);

retornar 0;

}

Saída

A string para o NUM é 32.230000

Para mais informações, consulte o artigo -sprintf () em c

11. O que é recursão em C?

Recursão é o processo de fazer a função se chamar direta ou indiretamente.Uma função recursiva resolve um problema específico chamando uma cópia de si mesma e resolvendo subproblemas menores que resumem os problemas originais.A recursão ajuda a reduzir a duração do código e torná -la mais compreensível.A função recursiva usa uma estrutura LIFO (último na primeira saída) como umpilha.Toda chamada recursiva no programa requer espaço extra na memória da pilha.

Para mais informações, consulte o artigo -Recursão

12. Qual é a diferença entre as variáveis locais e globais em C?

As variáveis locais são declaradas dentro de um bloco ou função, mas as variáveis globais são declaradas fora do bloco ou função a serem acessadas globalmente.

Variáveis locais

Variáveis ​​globais

Declarado dentro de um bloco ou uma função.Variáveis declaradas fora do bloco ou uma função.
Por padrão, as variáveis armazenam um valor de lixo.Por padrão, o valor do valor global é zero.
A vida das variáveis locais é destruída após o bloco ou uma função.A vida da variável global existe até que o programa seja executado.
As variáveis são armazenadas dentro da pilha, a menos que sejam especificadas pelo programador.O local de armazenamento da variável global é decidido pelo compilador.
Para acessar as variáveis locais em outras funções, é necessária a passagem do parâmetro.Nenhuma passagem de parâmetro é necessária.Eles são globalmente visíveis ao longo do programa.

13. O que são dicas e seus usos?

Os ponteiros são usados para armazenar o endereço da variável ou um local de memória.O ponteiro também pode ser usado para se referir a outra função de ponteiro.O principal objetivo do ponteiro é salvar o espaço de memória e aumentar o tempo de execução.Os usos dos ponteiros são:

  • Para passar argumentos por referência
  • Para acessar elementos de matriz
  • Para retornar vários valores
  • Alocação de memória dinâmica
  • Para implementar estruturas de dados
  • Para fazer a programação no nível do sistema, onde os endereços de memória são úteis

Principais 50 C Perguntas e respostas à entrevista de programação (5)

Trabalho de ponteiro

Para mais informações, consulte o artigo -Ponteiro usa em C.

14. O que é tipedef em c?

Na programação C, o typedef é uma palavra -chave que define um alias para um tipo existente.Seja uma variável inteira, parâmetro de função ou declaração de estrutura, typedef reduzirá o nome.

Sintaxe:

typedef

Aqui,

  • tipo existentejá recebe um nome.
  • Nome do aliasé o novo nome para a variável existente.

Exemplo:

typedef Long LL

15. O que são loops e como podemos criar um loop infinito em C?

Loops são usados para executar um bloco de declarações repetidamente.A declaração que deve ser repetida será executada n vezes dentro do loop até que a condição fornecida seja atingida.Existem dois tipos de loops controlados por entrada e loops controlados pela saída na linguagem de programação C.Um loop infinito é um pedaço de código que não possui uma saída funcional.Então, ele se repete indefinidamente.Pode haver apenas duas coisas quando há um loop infinito no programa.Um foi projetado para fazer um loop infinitamente até que a condição seja atendida dentro do loop.Outro pode estar errado ou insatisfeito com condições de interrupção no programa.

Principais 50 C Perguntas e respostas à entrevista de programação (6)

Tipos de loops

Abaixo está o programa de loop infinito em C:

C

// programa C para loop infinito

// usando, enquanto, do-while

#include

// Código do driver

int principal()

{

para (;;) {

printf("Loop infinito \ n");

}

enquanto (1) {

printf("Loop infinito \ n");

}

fazer {

printf("Loop infinito \ n");

}enquanto (1);

retornar 0;

}

Para mais informações, consulte o artigo -Loops em C.

16. Qual é a diferença entre a fundição do tipo e a conversão do tipo?

Tipo de fundição

Tipo de conversão

O tipo de dados é convertido em outro tipo de dados por um programador com a ajuda de um operador de fundição.O tipo de dados é convertido em outros dados por um compilador.
Pode ser aplicado a tipos de dados compatíveis, bem como tipos de dados incompatíveis.A conversão de tipo só pode ser aplicada apenas a tipos de dados compatíveis.
No tipo de fundição para lançar o tipo de dados em outro tipo de dados, é necessário um operador de castaNa conversão do tipo, não há necessidade de um operador de fundição.
A fundição do tipo é mais eficiente e confiável.A conversão do tipo é menos eficiente e menos confiável que a fundição do tipo.
A fundição do tipo ocorre durante o design do programa pelo programador.A conversão do tipo é feita no momento da compilação.
Sintaxe:
destino_data_type = (Target_data_type) variável_to_be_converted;
Sintaxe:
int a = 20;flutuar B;b = a;// a = 20.0000

Para mais informações, consulte o artigo -Tipo de fundição e conversão de tipo.

17. O que são arquivos de cabeçalho e seus usos?

O idioma C possui inúmeras bibliotecas que contêm funções predefinidas para facilitar a programação.Os arquivos de cabeçalho contêm funções de biblioteca padrão predefinidas.Todos os arquivos de cabeçalho devem ter uma extensão ".h".Os arquivos de cabeçalho contêm definições de função, definições de tipo de dados e macros que podem ser importados com a ajuda da diretiva pré -processadora '#include'.As diretivas de pré -processador instruem o compilador que esses arquivos são necessários para serem processados antes da compilação.
Existem dois tipos de arquivos de cabeçalho, ou seja, arquivos de cabeçalho definidos pelo usuário e arquivos de cabeçalho pré-existentes.Por exemplo, se nosso código precisar obter a entrada do usuário e a impressão de saída desejada para a tela, o arquivo de cabeçalho 'stdio.h' deverá ser incluído no programa como #include .Este arquivo de cabeçalho contém funções como scanf () e printf () que são usados para obter informações do usuário e imprimir o conteúdo.

Para mais informações, consulte o artigo -Arquivos de cabeçalho em c

18. Quais são as funções e seus tipos?

A função é um bloco de código usado para executar uma tarefa várias vezes, em vez de escrevê -la várias vezes em nosso programa.As funções evitam a repetição do código e aumentam a legibilidade do programa.A modificação de um programa fica mais fácil com a ajuda da função e, portanto, reduz as chances de erro.Existem dois tipos de funções:

  • Funções definidas pelo usuário:Funções definidas pelo usuário para reduzir a complexidade de grandes programas.Eles são construídos apenas para satisfazer a condição em que o usuário está enfrentando problemas e são comumente conhecidos como "funções feitas sob medida".
  • Funções internas:As funções da biblioteca são fornecidas pelo pacote do compilador e consistem em funções especiais com significados especiais e diferentes.Essas funções dão aos programadores uma vantagem, pois podemos usá -los diretamente sem defini -los.

Para mais informações, consulte o artigo -Funções em c

19. Qual é a diferença entre macro e funções?

Uma macro é um nome dado a um bloco de declarações C como diretiva pré-processadora.A macro é definida com a diretiva pré-processadora.As macros são pré-processadas, o que significa que todas as macros seriam pré-processadas antes da compilação de nosso programa.No entanto, as funções não são pré -processadas, mas compiladas.

MacroFunção
As macros são pré -processadas.As funções são compiladas.
O comprimento do código é aumentado usando macro.O comprimento do código permanece não afetado usando a função.
A velocidade de execução usando uma macro é mais rápida.A velocidade de execução usando a função é mais lenta.
O nome da macro é substituído pelo valor macro antes da compilação.A transferência de controle ocorre durante a chamada de função.
Macro não verifica nenhum erro de tempo de compilação.Função Verifique os erros do tempo de compilação.

Para mais informações, consulte o artigo -Macro vs funções

C Perguntas da entrevista de programação - nível intermediário

20. Como converter uma string em números em c?

Em C, temos 2 métodos principais para converter seqüências em números, isto é, usando o fluxo de string, usando a função de biblioteca stoi () e usando a função de biblioteca Atoi ().

  • sscanf ():Ele lê a entrada de uma string em vez de entrada padrão.
  • Ele () Ors Stands ():Essas funções exigem uma matriz literal ou de caracteres como um argumento e um valor inteiro é retornado.

Para mais informações, consulte o artigo -String para números em c

21. O que são palavras -chave reservadas?

Toda palavra -chave deve executar uma tarefa específica em um programa.Seu significado já está definido e não pode ser usado para outros propósitos, exceto o que eles são originalmente destinados.C A linguagem de programação suporta 32 palavras -chave.Alguns exemplos de palavras -chave reservadas são automáticas, caso contrário, se, longo, int, interruptor, typedef, etc.

Para mais informações, consulte o artigo -Variáveis e palavras -chave em C

22. O que é uma estrutura?

A estrutura é uma palavra-chave usada para criar tipos de dados definidos pelo usuário.A estrutura permite armazenar vários tipos de dados em uma única unidade.Os membros da estrutura só podem ser acessados através da variável da estrutura.

Exemplo:

Student Student
{
nome de char [20];
int roll_no;
endereço de char [20];
Char Branch [20];
};

Abaixo está o programa C para implementar a estrutura:

C

// programa C para mostrar o

// Uso da estrutura

#include

#include

// Estrutura do aluno declarado

estrutura estudante {

Caracteres nome [20];

int Núm. da lista;

Caracteres endereço [50];

Caracteres ramo [50];

};

// Código do driver

int principal()

{

estrutura estudante obj;

strcpy(obj.name,"Kamlesh_Joshi");

obj.roll_no = 27;

strcpy(obj.address,"Haldwani");

strcpy(obj.branch,"Ciência da Computação e Engenharia");

// Accessando membros do estudante OBJ

printf("Nome: %s \ n", obj.name);

printf("Roll_no: %d \ n", obj.roll_no);

printf("Endereço: %s \ n", obj.address);

printf("Ramo: %s", obj.branch);

retornar 0;

}

Saída

Nome: Kamlesh_Joshiroll_no: 27 Endereço: Haldwanibranch: Ciência e Engenharia da Computação

Para mais informações, consulte o artigo -Estrutura em c

23. O que é Union?

Um sindicato é um tipo de dados definido pelo usuário que permite aos usuários armazenar vários tipos de dados em uma única unidade.No entanto, um sindicato não ocupa a soma da memória de todos os membros.Ele mantém a memória do maior membro.Como o sindicato aloca um espaço comum para todos os membros, podemos acessar apenas uma única variável por vez.O sindicato pode ser útil em muitas situações em que queremos usar a mesma memória para dois ou mais membros.

Sintaxe:

Union name_of_union
{
Nome de data_type;
Nome de data_type;
};

Para mais informações, consulte o artigo -União em c

24. O que é um valor R e um valor?

Um "Valor L" refere-se a um objeto com um local identificável na memória (ou seja, ter um endereço).Um "Valor L" aparecerá no lado direito ou esquerdo do operador de atribuição (=).Um "valor R" é um valor de dados armazenado na memória em um determinado endereço.Um "valor R" refere-se a um objeto sem um local identificável na memória (ou seja, sem um endereço).Um "valor R" é uma expressão que não pode ser atribuída um valor; portanto, ele só pode existir no lado direito de um operador de atribuição (=).

Exemplo:

int val = 20;

Aqui, Val é o 'Valor L' e 20 é o 'Valor R'.

Para mais informações, consulte o artigo -Valor R e Valor L em C

25. Qual é a diferença entre chamada por valor e chamada por referência?

Ligue por valor

Ligue por referência

Os valores da variável são passados enquanto as chamadas de função.O endereço de uma variável (localização da variável) é passada enquanto a chamada de função.
Variáveis dummy copie o valor de cada variável na chamada de função.As variáveis dummy copiam o endereço de variáveis reais.
As alterações feitas nas variáveis dummy na função chamada não têm efeito nas variáveis reais na função de chamada.Podemos manipular as variáveis reais usando endereços.
Uma técnica simples é usada para passar os valores das variáveis.Os valores de endereço das variáveis devem ser armazenados em variáveis de ponteiro.

Para mais informações, consulte o artigo -Ligue por valor e ligue por referência

26. Qual é a função Sleep ()?

Sleep () A função em C permite que os usuários aguardem um thread atual por um determinado período de tempo.Sleep () Função Dormirá o atual executável para a quantidade de tempo fornecida pelo thread, mas outras operações da CPU funcionarão corretamente.Sleep () Função retorna 0 se o tempo solicitado tiver decorrido.

Para mais informações, consulte o artigo -Sleep () função em C

27. O que são enumerações?

Em C, enumerações (ou enum) são tipos de dados definidos pelo usuário.As enumerações permitem que constantes integrais sejam nomeadas, o que facilita a leitura e a manutenção de um programa.Por exemplo, os dias da semana podem ser definidos como uma enumeração e podem ser usados em qualquer lugar do programa.

enum enumeração_name {constant1, constant2, ...};

C

// um programa de exemplo para demonstrar trabalho

// de enum em c

#include

enum Semana {Mon, Ter, Qua, Thur, Sex, Sáb, Sol};

int principal()

{

enum dia da semana;

dia = qua;

printf("%d", dia);

retornar 0;

}

Saída

2

No exemplo acima, declaramos "dia" como a variável, e o valor de "Wed" é alocado ao dia, que é 2. Portanto, como resultado, 2 é impresso.

Para mais informações, consulte o artigo -Enumeração (ou enum) em c

28: O que é uma palavra -chave volátil?

A palavra -chave volátil é usada para impedir que o compilador otimize porque seus valores não podem ser alterados pelo código que está fora do escopo do código atual a qualquer momento.O sistema sempre lê o valor atual de um objeto volátil do local da memória, em vez de manter seu valor em um registro temporário no ponto em que é solicitado, mesmo que a instrução anterior seja solicitada pelo valor do mesmo objeto.

29. Escreva um programa C para imprimir a série Fibonacci usando a recursão e sem usar a recursão.

Principais 50 C Perguntas e respostas à entrevista de programação (7)

Números Fibonacci


C

// programa C para imprimir a série Fibonacci

// com recursão e sem recursão

#include

// função recursiva para imprimir

// Série Fibonacci

vazio Fibonacci (int num,int primeiro,int segundo,int terceiro)

{

se (num> 0) {

terceiro = primeiro + segundo;

primeiro = segundo;

segundo = terceiro;

printf("%d", terceiro);

// chamado recursivo para ela

// valor n-1

Fibonacci (número - 1, primeiro, segundo, terceiro)

}

}

// Código do driver

int principal()

{

int num;

printf("Por favor, insira o número de elementos:");

scanf("%d", & num);

printf(

"Série Fibonacci com a ajuda da recursão: \ n");

printf(" %d %d", 0, 1);

// estamos passando N-2 porque temos

// já impresso 2 números, ou seja, 0 e 1

Fibonacci (seja - 2, 0, 1, 0);

printf("Série \ fibonacci sem usar a recursão: \ n");

int primeiro = 0, segundo = 1, terceiro = 0;

printf(" %d %d", 0, 1);

// loop começará de 2 porque temos

// já impresso 0 e 1

para (int i = 2;i

terceiro = primeiro + segundo;

printf("%d", terceiro);

primeiro = segundo;

segundo = terceiro;

}

retornar 0;

}

Saída:Por favor, insira o número de elementos: 5Fibonacci Series com a ajuda de recursão: 0 1 1 2 3 Série Fibonacci sem usar a recursão: 0 1 1 2 3

Para mais informações, consulte o artigo -Números Fibonacci

30. Escreva um programa C para verificar se um número é primo ou não.

Principais 50 C Perguntas e respostas à entrevista de programação (8)

Número Prime ou não


C

// programa C para verificar se um

// o número é primitivo

#include

#include

// Código do driver

int principal()

{

int num;

int check = 1;

printf("Digite um número: \ n");

scanf("%d", & num);

// iterando de 2 para sqrt (num)

para (int i = 2;i <=sqrt(Num);i ++) {

// se o número fornecido for divisível por

// qualquer número entre 2 e N/2 então

// O número fornecido não é um número primo

se (Num 1 == 0) {

check = 0;

quebrar;

}

}

se (num <= 1) {

check = 0;

}

se (check == 1) {

printf("%D é um número primo", num);

}

outro {

printf("%D não é um número primo", num);

}

retornar 0;

}

Para mais informações, consulte o artigo -Prime ou não

31. Como o código -fonte é diferente do código do objeto?

Código fonteCódigo do objeto
O código -fonte é gerado pelo programador.O código do objeto é gerado por um compilador ou outro tradutor.
Código de alto nível que é humano-entendido.O código de baixo nível não é entendido pelo homem.
O código -fonte pode ser facilmente modificado e contém menos número de instruções do que o código do objeto.O código do objeto não pode ser modificado e contém mais instruções do que o código -fonte.
O código -fonte pode ser alterado ao longo do tempo e não é específico do sistema.O código do objeto pode ser modificado e é específico do sistema.
O código -fonte está menos próximo da máquina e é inserido para o compilador ou qualquer outro tradutor.O código -fonte está mais próximo da máquina e é a saída do compilador ou de qualquer outro tradutor.
Tradutores de idiomas como compiladores, montadores e intérpretes são usados para traduzir o código -fonte para o código do objeto.O código do objeto é o código da máquina para que não requer nenhuma tradução.

Para mais informações, consulte o artigo -Código de origem vs objeto.

32. O que é alocação de memória estática e alocação dinâmica de memória?

  • Alocação de memória estática:A alocação de memória feita no momento da compilação é conhecida como alocação de memória estática.A alocação de memória estática economiza tempo de execução.É mais rápido que a alocação de memória dinâmica, pois a alocação de memória é feita na pilha.Esse método de alocação de memória é menos eficiente em comparação com a alocação de memória dinâmica.É preferido principalmente na matriz.
  • Alocação de memória dinâmica:A alocação de memória feita na execução ou tempo de execução é conhecida como alocação de memória dinâmica.A alocação de memória dinâmica é mais lenta que a alocação de memória estática, pois a alocação de memória é feita a partir da pilha.Esse método de alocação de memória é mais eficiente em comparação com a alocação de memória estática.É preferido principalmente na lista vinculada.

Para mais informações, consulte o artigo -Alocação de memória estática e dinâmica em C

33. O que é a referência passada nas funções?

Pass por referência permite que uma função modifique uma variável sem fazer uma cópia da variável.A localização da memória da variável e parâmetro passada é a mesma, portanto, quaisquer alterações feitas no parâmetro também serão refletidas pelas variáveis.

C

// programa C para alterar uma variável

// Usando o passe por referência

#include

// * usado para desreferenciar a variável

vazio mudar(int* num)

{

// valor de num alterado para 30

*num = 30;

}

// Código do driver

int principal()

{

int num = 20;

printf("O valor de num antes da passagem é: %d \ n", num);

// Função de mudança de chamadas passando o endereço

alteração (& num);

printf("Valor de num depois de mudar com a ajuda de"

"Função é: %d", Assim,

num);

retornar 0;

}

Para mais informações, consulte o artigo -Passe por referência

34. O que é um vazamento de memória e como evitá -lo?

Sempre que uma variável é definida, uma quantidade de memória é criada na pilha.Se o programador esquecer de excluir a memória.Essa memória não selecionada na pilha é chamada de vazamento de memória.O desempenho do programa é reduzido, pois a quantidade de memória disponível foi reduzida.Para evitar vazamentos de memória, a memória alocada na pilha deve sempre ser limpa quando não for mais necessária.

Para mais informações, consulte o artigo -Vazamento de memória

35. Quais são os argumentos da linha de comando?

Os argumentos que são passados para a função principal () do programa no shell da linha de comando do sistema operacional são conhecidos como argumentos da linha de comando.

Sintaxe:

int main (int argc, char*argv []) {/*código que deve ser executado*/}

Para mais informações, consulte o artigo -Argumentos da linha de comando em C

36. O que é uma palavra -chave automática?

Toda variável local de uma função é conhecida como variável automática no idioma C.Auto é a classe de armazenamento padrão para todas as variáveis declaradas dentro de uma função ou um bloco.As variáveis automáticas só podem ser acessadas dentro do bloco/função que foram declaradas.Podemos usá -los fora de seu escopo com a ajuda de ponteiros.Por padrão, as palavras -chave automáticas consistem em um valor de lixo.

Para mais informações, consulte o artigo -Aulas de armazenamento em C

37. Escreva um programa para imprimir “Hello-World” sem usar um semicolon.

C

// programa C para imprimir Hello-World

// sem usar o semicolon

#include

// Código do driver

int principal()

{

// Isso imprimirá o Hello-World

// na tela sem dar nenhum erro

se (printf("Olá Mundo")) {

}

retornar 0;

}

Para mais informações, consulte o artigo -Olá mundo em C

38. Escreva um programa C para trocar dois números sem usar uma terceira variável.

Principais 50 C Perguntas e respostas à entrevista de programação (9)

Troque dois número


C

// programa C para trocar duas variáveis

// sem usar uma terceira variável

#include

int principal()

{

// Declaração variável

int Var1 = 50;

int Guerra 2 = 60;

printf(

"Os valores antes da troca são var1 = %d e var2 = %d \ n", Assim,

Guerra 1, var 2);

// var1 = 110 (50 + 60)

var1 = var1 + var2;

// Guerra 2 = 50 (110 - 50)

Guerra 2 = Guerra 1 - Guerra 2;

// var1 = 60 (110 - 50)

var1 = var1 - var2;

printf("Os valores após a troca são var1 = %d e var2 = %d", Assim,

Guerra 1, var 2);

retornar 0;

}

Saída

Os valores antes da troca são var1 = 50 e var2 = 60Values após a troca são var1 = 60 e var2 = 50

39. Escreva um programa para verificar se uma string é um palíndromo ou não.

C

// programa C para verificar se um

// string é palíndroma ou não.

#include

#include

// Função de palíndroma para verificar

// se uma string é palíndrome

// ou não

vazio Palíndroma (Caracteres s [])

{

// O início será iniciado no 0º índice

// e o final começará do comprimento-1

int start = 0;

int fim =batida(s) - 1;

// Comparando caracteres até que eles

// são iguais

enquanto (end> start) {

se (s [start ++]! = s [end--]) {

printf("%s não é um palíndromo \ n", s);

retornar;

}

}

printf("%s é um palíndromo \ n", s);

}

// Código do driver

int principal()

{

Palíndroma ("Abba");

retornar 0;

}

Saída

Abba é um palíndromo

40. Explique modificadores.

Modificadores são palavras -chave usadas para alterar o significado dos tipos de dados básicos no idioma C.Eles especificam a quantidade de memória que deve ser alocada para a variável.Existem cinco modificadores de tipo de dados na linguagem de programação C:

  • longo
  • curto
  • assinado
  • não assinado
  • longo longo

C Perguntas da entrevista de programação - para experiente

41. Escreva um programa para imprimir o fatorial de um determinado número com a ajuda da recursão.

Principais 50 C Perguntas e respostas à entrevista de programação (10)

Fatorial de um número


C

// programa C para encontrar fatorial

// de um determinado número

#include

// Funciona para encontrar fatorial de

// um determinado número

não assinadoint Fatorial (não assinadoint n)

{

se (n == 0)

retornar 1;

retornar n * fatorial (n - 1);

}

// Código do driver

int principal()

{

int num = 5;

printf("Fatorial de %d é %d"Num, fatorial (seja);

retornar 0;

}

Saída

Fatorial de 5 é 120

42. Escreva um programa para verificar um número de Armstrong.

C

// programa C para determinar se

// O número fornecido é Armstrong

// ou não

#include

// Código do driver

int principal()

{

int n;

printf("Digite o número \ n");

scanf("%d", & n);

int var = n;

int soma = 0;

// loop para calcular a ordem de

// O número fornecido

enquanto (n> 0) {

int rem = n % 10;

I = (i) + (coisa * Business);

n = n / 10;

}

// se a ordem do número será

// igual ao número então é

// Número de Armstrong.

se (foi == sum) {

printf("%d é um número de armstrong \ n", era);

}

outro {

printf("%D não é um número de Armstrong", era);

}

retornar 0;

}

Saída

Digite o número 0 é um número Armstrong

43. Escreva um programa para reverter um determinado número.

C

// programa C para dígitos reversos

// de um número

#include

// Código do driver

int principal()

{

int n, rev = 0;

printf("Digite o número a ser revertido:");

scanf("%d", & n);

// r armazenará o restante enquanto nós

// reverte o dígito e armazená -lo em Rev

int r = 0;

enquanto (n! = 0)

{

r = n % 10;

REV = REV * 10 + R;

n /= 10;

}

printf("O número após a reversão de dígitos é: %d", rev);

retornar 0;

}

Saída:

Digite o número a ser revertido: o número após a reversão dos dígitos é: 321

44. Qual é o uso de um especificador de armazenamento externo?

A palavra -chave externa é usada para estender a visibilidade das variáveis e funções C no idioma C.Extern é o nome curto para externo.É usado quando um arquivo específico precisa acessar uma variável de qualquer outro arquivo.A palavra -chave externa aumenta a redundância e as variáveis com palavra -chave externa são declaradas apenas não definidas.Por padrão, as funções são visíveis ao longo do programa; portanto, não há necessidade de declarar ou definir funções externas.

45. Qual é o uso das funções PrintF () e Scanf () na linguagem de programação C?Além disso, explique os especificadores de formato.

printf ()A função é usada para imprimir o valor que é passado como parâmetro na tela do console.

Sintaxe:

print ("%x", variable_of_x_type);

scanf ()Método, lê os valores do console conforme o tipo de dados especificado.

Sintaxe:

scanf ("%x", & variable_of_x_type);

No formato C, os especificadores são usados para informar ao compilador que tipo de dados estará presente na variável durante a entrada usando scanf () ou saída usando print ().

  • %C: Especificador de formato de caractere usado para exibir e digitalizar o caráter.
  • %d, %i: Especificador de formato inteiro assinado usado para imprimir ou digitalizar um valor inteiro.
  • %F, %E ou %E: Especificadores de formato de ponto flutuante são usados para imprimir ou digitalizar valores de flutuação.
  • %IS: este especificador de formato é usado para impressão de string.
  • %P: Este especificador de formato é usado para impressão de endereço.

Para mais informações, consulte o artigo -Especificador de formato em C

46. O que está próximo, longe e enormes dicas em C?

  • Perto de Pontenters:Perto de ponteiros são usados para armazenar apenas endereços de 16 bits.Usando o ponteiro próximo, não podemos armazenar o endereço com um tamanho superior a 16 bits.
  • Far Ponteners:Um ponteiro distante é um ponteiro do tamanho de 32 bits.No entanto, informações fora da memória do computador do segmento atual também podem ser acessadas.
  • Enormes dicas:O enorme ponteiro é tipicamente considerado um ponteiro de 32 bits.Mas bits localizados fora ou armazenados fora dos segmentos também podem ser acessados.

47. Mencione as operações de arquivo em C.

Na programação C, as técnicas básicas de manuseio de arquivos fornecem as funcionalidades básicas que os programadores podem executar contra o sistema.

Principais 50 C Perguntas e respostas à entrevista de programação (11)

Operações de arquivo em C

48. Escreva um programa para verificar se uma lista vinculada é circular ou não.

C

// programa C para verificar se a lista vinculada é circular

#include

#include

estrutura Nó {

int dados;

estrutura Nó* a seguir;

};

int iscircular (estrutura Nó* cabeça)

{

// se dada a lista vinculada é nula, é circular

se (cabeça == null) {

retornar 1;

}

estrutura Nó* ptr;

ptr = head-> próximo;

// Traversing List List até o último nó

enquanto (ptr! = null && ptr! = Head) {

ptr = ptr-> próximo;

}

// retornará 1 se a lista vinculada for circular mais 0

retornar (ptr == Head);

}

estrutura Nó* newNode (int dados)

{

estrutura Nó* primeiro;

primeiro = (estrutura Nó*)Malloc(tamanho de(estrutura Nó));

primeiro-> dados = dados;

primeiro-> próximo = nulo;

retornar primeiro;

}

int principal()

{

estrutura Nó* cabeça = newNode (10);

cabeça-> próximo = newNode (12);

Cabeça-> Next-> Next = newNode (14);

Head-> Next-> Next-> Next = newNode (16);

Head-> Next-> Next-> Next-> Next = Head;

// se for 1, isso significa que a lista vinculada é

// circular

se (iscircular (cabeça)) {

printf("Lista vinculada é circular \ n");

}

outro {

printf("Lista vinculada não é circular \ n");

}

retornar 0;

}

Para mais informações, consulte o artigo -Lista ligada circular

49. Escreva um programa para mesclar duas listas vinculadas classificadas.

Principais 50 C Perguntas e respostas à entrevista de programação (12)

Mesclar duas listas vinculadas classificadas


C

// programa C para mesclar dois classificados

// listas vinculadas

#include

#include

#include

// Nó da lista vinculada

estrutura Nó {

int dados;

estrutura Nó* a seguir;

};

/* Retire o nó frontal do

fonte e coloque -o no destes

*/

vazio MOVENODE (estrutura Nó ** Destref,

estrutura Nó ** Sourceref);

/* Leva duas listas classificadas em ordem crescente,

e eduzem seus nós para fazer

Uma grande lista de classificação que é devolvida.*/

estrutura Nó* classificador (estrutura Nó* a,estrutura Nó* b)

{

/* Um primeiro nó fictício para pendurar o

resultado em */

estrutura Nó manequim;

/ * Tail aponta para o último nó de resultado */

estrutura Nó* cauda = & fictício;

/* Então cauda-> o próximo é o lugar para adicionar novo

nós para o resultado.*/

dummy.next = null;

enquanto (1) {

se (a == null) {

/* Se qualquer uma das listas acabar, use o

outra lista */

cauda-> próximo = b;

quebrar;

}

outro se (b == null) {

cauda-> próximo = a;

quebrar;

}

se (a-> dados <= b-> dados)

MoveNode (& (cauda-> próximo), & a);

outro

MoveNode (& (cauda-> próximo), & b);

Tail = Tail-> Next;

}

retornar (Dummy.next);

}

/ * Funções de utilidade */

/* Função movenode () leva o nó

da frente da fonte e

Mova -o para a frente do destes.

É um erro chamar isso com o

Lista de origem vazia.

Antes de ligar para o MoveNode ():

fonte == {1, 2, 3}

dest == {1, 2, 3}

Depois de ligar para o MoveNode ():

fonte == {2, 3}

dest == {1, 1, 2, 3} */

vazio MOVENODE (estrutura Nó ** Destref,

estrutura Nó ** Sourceref)

{

/ * O nó da fonte frontal */

estrutura Nó * newNode = * sourceref;

afirmar(newNode! = null);

/ * Avançar o ponteiro de origem */

*sourceref = newNode-> próximo;

/ * Vincule o antigo dest of the New Node */

newNode-> próximo = *Destref;

/ * Mova o dest para apontar para o novo nó */

*destref = newNode;

}

/* Função para inserir um nó no início do

Lista vinculada */

vazio empurrar(estrutura Nó ** head_ref,int novos dados)

{

/ * aloce o nó */

estrutura Nó* new_node

= (estrutura Nó*)Malloc(tamanho de(estrutura Nó));

/ * Coloque os dados */

new_node-> data = new_data;

/ * vincule a lista antiga do novo nó */

new_node-> próximo = (*head_ref);

/ * Mova a cabeça para apontar para o novo nó */

(*head_ref) = new_node;

}

/ * Função para imprimir nós em uma determinada lista vinculada */

vazio Printlist (estrutura Nó* nó)

{

enquanto (node! = null) {

printf("%d", node-> dados);

nó = nó-> a seguir;

}

}

/* Programa de driver para testar as funções acima*/

int principal()

{

/ * Comece com a lista vazia */

estrutura Nó* res = null;

estrutura Nó* a = nulo;

estrutura Nó* b = nulo;

/* Vamos criar duas listas vinculadas classificadas para testar

As funções

Listas criadas, a: 5-> 10-> 15, b: 2-> 3-> 20 */

push (& a, 15);

push (& a, 10);

push (& a, 5);

push (& b, 20);

push (& b, 3);

push (& b, 2);

/ * Remova duplicatas da lista vinculada */

res = classEdmerge (a, b);

printf("A lista vinculada mesclada é: \ n");

Printlist (res);

retornar 0;

}

Saída

A lista vinculada mesclada é: 2 3 5 10 15 20

Para mais informações, consulte o artigo -Mesclar duas links vinculados classificados

50. Qual é a diferença entre getc (), getchar (), getch () e getche ().

  • getc ():A função lê um único caractere de um fluxo de entrada e retorna um valor inteiro (normalmente o valor ASCII do caractere) se ele for bem -sucedido.Na falha, ele retorna o EOF.
  • getchar ():Ao contrário do getC (), o Gechar () pode ler a partir de entrada padrão;É equivalente a GetC (stdin).
  • Getch ():É uma função não padronizada e está presente no arquivo de cabeçalho 'Conio.h', que é usado principalmente por compiladores MS-DOS como Turbo C.
  • getche ():Ele lê um único caractere do teclado e o exibe imediatamente na tela de saída sem aguardar a tecla Enter.

Para mais informações, consulte o artigo -Diferença entre getc (), getchar (), getch (), getche ()



Como artigo

Sugerir melhorias

Próximo

C Perguntas da entrevista de programação (2024)

Compartilhe seus pensamentos nos comentários

Por favorConecte-secomentar...

Principais 50 C Perguntas e respostas à entrevista de programação (2024)

References

Top Articles
Latest Posts
Article information

Author: Moshe Kshlerin

Last Updated:

Views: 5379

Rating: 4.7 / 5 (77 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Moshe Kshlerin

Birthday: 1994-01-25

Address: Suite 609 315 Lupita Unions, Ronnieburgh, MI 62697

Phone: +2424755286529

Job: District Education Designer

Hobby: Yoga, Gunsmithing, Singing, 3D printing, Nordic skating, Soapmaking, Juggling

Introduction: My name is Moshe Kshlerin, I am a gleaming, attractive, outstanding, pleasant, delightful, outstanding, famous person who loves writing and wants to share my knowledge and understanding with you.