Domande di colloquio di programmazione C.

Cari lettori, questi C Programming Interview Questions sono stati progettati appositamente per farti conoscere la natura delle domande che potresti incontrare durante il tuo colloquio sull'argomento C Programming. Secondo la mia esperienza, i bravi intervistatori difficilmente pianificano di porre domande particolari durante il colloquio, normalmente le domande iniziano con un concetto di base dell'argomento e successivamente continuano sulla base di ulteriori discussioni e di ciò a cui rispondi -

  • Cos'è un puntatore sul puntatore?

      È una variabile puntatore che può contenere l'indirizzo di un'altra variabile puntatore. Rimanda due volte per indicare i dati contenuti nella variabile puntatore designata.

      Eg: int x = 5, *p=&x, **q=&p;

      Pertanto è possibile accedere a 'x' con ** q.

  • Distinguere tra l'allocazione di memoria malloc () e calloc ().

      Entrambi alloca memoria dall'area heap / memoria dinamica. Per impostazione predefinita, calloc riempie la memoria allocata con 0.

  • A cosa serve la parola chiave automatica?

      Di default ogni variabile locale della funzione è automatica (auto). Nella funzione sottostante entrambe le variabili "i" e "j" sono variabili automatiche.

      void f() {
         int i;
         auto int j;
      }

      NOTA: una variabile globale non può essere una variabile automatica.

  • Quali sono le posizioni valide per la visualizzazione dell'interruzione di parola chiave.

      L'interruzione può essere visualizzata solo con nel controllo del ciclo e nell'istruzione switch. Lo scopo dell'interruzione è di far uscire il controllo da detti blocchi.

  • Spiega la sintassi del ciclo for.
      for(expression-1;expression-2;expression-3) {
         //set of statements
      }

      Quando il controllo raggiunge l'espressione-1 viene eseguito per primo. Quindi, dopo l'espressione-2, e se l'espressione-2 restituisce un 'insieme di istruzioni' diverso da zero e viene eseguita l'espressione-3, segue l'espressione-2.

  • Qual è la differenza tra l'inclusione del file di intestazione con parentesi graffe angolari <> e virgolette doppie ""

      Se un file di intestazione è incluso in <>, il compilatore cerca il file di intestazione particolare solo con il percorso di inclusione incorporato. Se un file di intestazione è incluso in "", il compilatore cerca prima il file di intestazione specifico nella directory di lavoro corrente, se non lo trova nel percorso include incorporato.

  • Come viene memorizzato un numero intero negativo.

      Ottieni i due complimenti dello stesso numero intero positivo. Ad esempio: 1011 (-5)

      Step-1 - Un complimento di 5: 1010

      Step-2 - Aggiungi 1 a sopra, dando 1011, che è -5

  • Cos'è una variabile statica?

      Una variabile locale statica mantiene il suo valore tra la chiamata della funzione e il valore predefinito è 0. La seguente funzione stamperà 1 2 3 se chiamata tre volte.

      void f() { 
         static int i; 
         ++i; 
         printf(“%d “,i); 
      }

      Se una variabile globale è statica, la sua visibilità è limitata allo stesso codice sorgente.

  • Cos'è un puntatore NULL?

      Un puntatore che punta a niente è chiamato così. Ad esempio: char * p = NULL;

  • Qual è lo scopo dello specificatore di archiviazione esterno?

      Utilizzato per risolvere l'ambito del simbolo globale.

      Eg:  
      main() {
         extern int i;
         Printf(“%d”,i);
      }
      
      int i = 20;
  • Spiega lo scopo della funzione sprintf ().

      Stampa l'output formattato sull'array di caratteri.

  • Qual è il significato dell'indirizzo di base dell'array?

      L'indirizzo iniziale dell'array viene chiamato come indirizzo di base dell'array.

  • Quando dovremmo usare lo specificatore di archiviazione del registro?

      Se una variabile viene utilizzata più frequentemente, dovrebbe essere dichiarata utilizzando l'identificatore di archiviazione del registro, quindi probabilmente il compilatore fornisce il registro della CPU per la sua archiviazione per accelerare la ricerca della variabile.

  • S ++ o S = S + 1, quale può essere consigliato per incrementare il valore di 1 e perché?

      S ++, poiché internamente è un'istruzione singola macchina (INC).

  • Cos'è un puntatore penzolante?

      Un puntatore che inizialmente contiene un indirizzo valido, ma in seguito l'indirizzo conservato viene rilasciato o liberato. Quindi un tale puntatore viene chiamato puntatore penzolante.

  • Qual è lo scopo della parola chiave typedef?

      Viene utilizzato per alias il tipo esistente. Utilizzato anche per semplificare la complessa dichiarazione del tipo.

  • Cosa sono lvalue e rvalue?

      L'espressione che appare sul lato destro dell'operatore di assegnazione viene chiamata rvalue. Rvalue è assegnato a lvalue, che appare sul lato sinistro dell'operatore di assegnazione. Il valore dovrebbe indicare una variabile, non una costante.

  • Qual è la differenza tra parametri effettivi e formali?

      I parametri inviati alla funzione alla fine della chiamata vengono chiamati come parametri effettivi mentre alla ricezione della definizione della funzione vengono chiamati come parametri formali.

  • Un programma può essere compilato senza la funzione main ()?

      Sì, può essere ma non può essere eseguito, poiché l'esecuzione richiede la definizione della funzione main ().

  • Qual è il vantaggio di dichiarare i puntatori void?

      Quando non sappiamo quale tipo di indirizzo di memoria terrà la variabile pointer, dichiariamo un puntatore void per tale.

  • Dove viene memorizzata una variabile automatica?

      Ogni variabile locale per impostazione predefinita è una variabile automatica viene archiviata nella memoria dello stack.

  • Cos'è una struttura annidata?

      Una struttura che contiene un elemento di un'altra struttura come suo membro viene chiamata così.

  • Qual è la differenza tra dichiarazione di variabile e definizione di variabile?

      La dichiarazione associa il tipo alla variabile mentre la definizione fornisce il valore alla variabile.

  • Cos'è una struttura autoreferenziale?

      Una struttura contenente la stessa variabile puntatore di struttura del suo elemento viene chiamata struttura autoreferenziale.

  • Un file di intestazione incorporato contiene la definizione di funzione incorporata?

      No, il file di intestazione dichiara solo la funzione. La definizione è nella libreria che è collegata dal linker.

  • Spiega la programmazione modulare.

      Dividere il programma in sottoprogrammi (moduli / funzione) per ottenere il compito dato è un approccio modulare. La definizione di funzioni più generiche offre la possibilità di riutilizzare le funzioni, come le funzioni di libreria incorporate.

  • Cos'è un token?

      Il programma AC è costituito da vari token e un token può essere una parola chiave, un identificatore, una costante, una stringa letterale o un simbolo.

  • Cos'è un preprocessore?

      Il preprocessore è una direttiva al compilatore per eseguire determinate cose prima che inizi il processo di compilazione effettivo.

  • Spiega l'uso dell'identificatore di formato% i wrt scanf ().

      Può essere utilizzato per inserire numeri interi in tutti i formati supportati.

  • Come puoi stampare una \ (barra rovesciata) usando una qualsiasi delle funzioni della famiglia printf ().

      Esci usando \ (barra rovesciata).

  • È richiesta un'interruzione per impostazione predefinita nell'istruzione switch?

      Sì, se non viene visualizzato come l'ultimo caso e se non si desidera che il controllo passi al caso successivo dopo l'impostazione predefinita, se presente.

  • Quando per utente -> operatore (freccia).

      Se la variabile struttura / unione è una variabile puntatore, per accedere agli elementi struttura / unione viene utilizzato l'operatore freccia.

  • Cosa sono i campi di bit?

      Possiamo creare membri di struttura intera di dimensioni diverse oltre a dimensioni non standard utilizzando campi di bit. Tale dimensione della struttura viene regolata automaticamente con il multiplo della dimensione intera della macchina.

  • Cosa sono gli argomenti della riga di comando?

      Gli argomenti che passiamo alla funzione main () durante l'esecuzione del programma vengono chiamati come argomenti della riga di comando. I parametri sono sempre stringhe contenute nel secondo argomento (sotto in args) della funzione che è un array di puntatori a caratteri. Il primo argomento rappresenta il conteggio degli argomenti (sotto in count) e viene aggiornato automaticamente dal sistema operativo.

      main( int count, char *args[]) {
      }
  • Quali sono i diversi modi per passare i parametri alle funzioni? Quale usare quando?
      • Call by value- Inviamo solo valori alla funzione come parametri. Scegliamo questo se non vogliamo che i parametri effettivi vengano modificati con parametri formali ma solo usati.

      • Call by reference- Inviamo l'indirizzo dei parametri effettivi invece dei valori. Scegliamo questo se vogliamo che i parametri effettivi vengano modificati con parametri formali.

  • Qual è lo scopo della funzione incorporata stricmp ().

      Confronta due stringhe ignorando il caso.

  • Descrivi la modalità di apertura dei file "w +".

      Apre un file sia in lettura che in scrittura. Se un file non esiste ne crea uno, altrimenti se il file è esistente verrà sovrascritto.

  • Dove non è possibile utilizzare l'indirizzo dell'operatore (&)?

      Non può essere utilizzato su costanti.

      Non può essere utilizzato su variabili dichiarate utilizzando la classe di archiviazione dei registri.

  • FILE è un tipo di dati integrato?
      No, è una struttura definita in stdio.h.
  • Cos'è il promemoria per il 5,0% 2?

      Errore, non è valido che uno degli operandi per l'operatore modulo (%) sia un numero reale.

  • Quanti operatori ci sono nella categoria degli operatori ternari?

      C'è un solo operatore ed è un operatore condizionale (? :).

  • Quale parola chiave viene utilizzata per eseguire la ramificazione incondizionata?

      vai a

  • Cos'è un puntatore a una funzione? Dare la sintassi generale per lo stesso.

      Un puntatore che contiene il riferimento alla funzione è chiamato puntatore a una funzione. In generale è dichiarato come segue.

      T (*fun_ptr) (T1,T2…); Where T is any date type.

      Una volta che fun_ptr fa riferimento a una funzione, la stessa può essere invocata utilizzando il puntatore come segue.

      fun_ptr();
      [Or]
      (*fun_ptr)();
  • Spiega l'uso dell'operatore virgola (,).

      L'operatore virgola può essere utilizzato per separare due o più espressioni.

      Eg: printf(“hi”) , printf(“Hello”);
  • Cos'è un'istruzione NULL?

      Un'istruzione null non è un'istruzione eseguibile come; (punto e virgola).

      Eg: int count = 0; 
      while( ++count<=10 ) ;

      Sopra non fa nulla 10 volte.

  • Cos'è una funzione statica?

      La definizione di una funzione preceduta da una parola chiave statica viene chiamata come funzione statica. Renderebbe statica una funzione se dovesse essere chiamata solo all'interno dello stesso codice sorgente.

  • Quale opzione del compilatore utilizzare per compilare i programmi utilizzando la libreria matematica con il compilatore gcc?

      Opiton –lm da utilizzare come> gcc –lm <file.c>

  • Quale operatore viene utilizzato per continuare la definizione di macro nella riga successiva?

      Viene utilizzata la barra rovesciata (\).

      E.g. #define MESSAGE "Hi, \
         
      Welcome to C"
  • Quale operatore viene utilizzato per ricevere il numero variabile di argomenti per una funzione?

      Ellipses (...) viene utilizzato per lo stesso. Una definizione di funzione generale appare come segue

      void f(int k,…)  {
      }
  • Qual è il problema con il seguente frammento di codice?
      char *s1 = "hello",*s2 = "welcome";
         
      strcat(s1,s2);

      s1 punta a una costante di stringa e non può essere modificato.

  • Quale funzione di libreria incorporata può essere utilizzata per ridimensionare la memoria dinamica allocata?

      realloc () .

  • Definisci un array.

      Array è la raccolta di elementi di dati simili con un nome comune.

  • Cosa sono le enumerazioni?

      Le enumerazioni sono elenchi di costanti intere con nome. Gli enumeratori vengono definiti con la parola chiave enum .

  • Quale funzione incorporata può essere utilizzata per spostare internamente il puntatore del file?

      fseek ()

  • Cos'è una variabile?

      Una variabile è l'archiviazione del nome.

  • Chi ha progettato il linguaggio di programmazione C?

      Dennis M Ritchie.

  • C è il successore di quale linguaggio di programmazione?

      B

  • Qual è la forma completa di ANSI?

      American National Standards Institute.

  • Quale operatore può essere utilizzato per determinare la dimensione di un tipo di dati o di una variabile?

      taglia di

  • Possiamo assegnare una variabile float a una variabile intera lunga?

      Sì, con perdita della parte frazionaria.

  • 068 è un numero ottale valido?

      No, contiene cifre ottali non valide.

  • Qual è il valore di ritorno di un operatore relazionale se ne restituisce uno?

      Restituisce un valore 1 se la relazione tra le espressioni è vera, altrimenti 0.

  • Come funziona l'operatore bit a bit XOR.

      Se entrambi i bit corrispondenti sono uguali, dà 0 altrimenti 1.

  • Cos'è un loop infinito?

      Un ciclo che viene eseguito ripetutamente poiché l'espressione del ciclo viene sempre valutato come vero come

      while(0 == 0) {
      }
  • Le variabili che appartengono a un ambito diverso possono avere lo stesso nome? Se è così mostra un esempio.

      Le variabili che appartengono a un ambito diverso possono avere lo stesso nome del frammento di codice seguente.

      int var;
      
      void f() { 
         int var; 
      }
      
      main() { 
         int var; 
      }
  • Qual è il valore predefinito delle variabili locali e globali?

      Le variabili locali ottengono un valore di spazzatura e le variabili globali ottengono un valore 0 per impostazione predefinita.

  • Un puntatore può accedere all'array?

      Il puntatore tenendo premuto l'indirizzo di base dell'array può accedere all'array.

  • Quali sono le operazioni valide sui puntatori?

      Le uniche due operazioni consentite sui puntatori sono

      • Confronto ii) Addizione / Sottrazione (esclusi i puntatori vuoti)
  • Qual è la lunghezza di una stringa?

      È il conteggio dei caratteri escluso il carattere "\ 0".

  • Qual è la funzione incorporata per aggiungere una stringa a un'altra?

      strcat () forma l'intestazione string.h

  • Quale operatore può essere utilizzato per accedere agli elementi union se la variabile union è una variabile puntatore?

      Operatore freccia (->).

  • Spiega di "stdin".

      stdin in una variabile puntatore che è aperta per impostazione predefinita per il dispositivo di input standard.

  • Assegna un nome a una funzione che può essere utilizzata per chiudere il flusso di file.

      fclose ().

  • Qual è lo scopo del preprocessore #undef?

      Può essere utilizzato per annullare la definizione di una definizione di macro esistente.

  • Definisci una struttura.

      È possibile definire una struttura di raccolta di elementi di dati eterogenei.

  • Assegnare un nome alla macro predefinita da utilizzare per determinare se il compilatore è standard ANSI o meno?

      __STDC__

  • Cos'è il typecasting?

      Typecasting è un modo per convertire una variabile / costante da un tipo a un altro tipo.

  • Cos'è la ricorsione?

      La funzione che chiama se stessa viene chiamata come ricorsione.

  • Quale funzione può essere utilizzata per rilasciare la memoria allocata dinamica?

      gratuito().

  • Qual è la prima stringa nell'argomento vettore rispetto agli argomenti della riga di comando?

      Nome del programma.

  • Come possiamo determinare se un file è stato aperto con successo o meno usando la funzione fopen ()?

      In caso di errore fopen () restituisce NULL, altrimenti viene aperto correttamente.

  • Qual è il file di output generato dal linker.

      Il linker genera il file eseguibile.

  • Qual è la lunghezza massima di un identificatore?

      Idealmente è di 32 caratteri e dipende anche dall'implementazione.

  • Qual è il metodo di chiamata di funzione predefinito?

      Per impostazione predefinita, le funzioni vengono chiamate per valore.

  • Le funzioni devono e devono essere dichiarate. Commenta questo.

      La dichiarazione di funzione è facoltativa se la stessa viene invocata dopo la sua definizione.

  • Quando le macro vengono espanse?

      Al momento della pre-elaborazione.

  • Una funzione può restituire più valori al chiamante utilizzando la parola riservata di ritorno?

      No, al chiamante può essere restituito un solo valore.

  • Cos'è un puntatore costante?

      Un puntatore che non può essere modificato per contenere un altro indirizzo dopo che ne ha uno.

  • Per rendere generico il puntatore per quale tipo di data deve essere dichiarato?

      Void

  • La variabile di struttura può essere inizializzata non appena viene dichiarata?

      Sì, solo nell'ordine degli elementi della struttura.

  • C'è un modo per confrontare due variabili di struttura?

      Non esiste tale. Dobbiamo confrontare elemento per elemento delle variabili di struttura.

  • Quale funzione di libreria incorporata può essere utilizzata per abbinare un picchiettio dalla stringa?

      Strstr ()

  • Qual è la differenza tra puntatori vicini e lontani?

      In primo luogo sono parole chiave non standard. Un puntatore vicino può accedere solo a 2 ^ 15 spazio di memoria e un puntatore lontano può accedere a 2 ^ 32 spazio di memoria. Entrambe le parole chiave sono specifiche dell'implementazione e non sono standard.

  • Possiamo annidare commenti in un codice C?

      No, non possiamo.

  • Quale ciclo di controllo è consigliato se è necessario eseguire una serie di istruzioni per un numero fisso di volte?

      for - Loop.

  • Cos'è una costante?

      Un valore che non può essere modificato è chiamato così. Tali variabili sono qualificate con la parola chiave const.

  • Possiamo usare solo il nome del tag delle strutture per dichiarare le variabili per lo stesso?

      No, dobbiamo usare sia la parola chiave "struct" che il nome del tag.

  • La funzione main () può essere lasciata vuota?

      Sì, forse il programma non fa nulla.

  • Una funzione può chiamarne un'altra?

      Sì, qualsiasi funzione definita dall'utente può chiamare qualsiasi funzione.

  • A parte Dennis Ritchie che è l'altra persona che ha contribuito alla progettazione del linguaggio C.

      Cervello Kernighan

Cosa c'è dopo ?

Inoltre puoi svolgere i compiti che hai svolto in passato con l'argomento e assicurarti di essere in grado di parlarne con sicurezza. Se sei più fresco, l'intervistatore non si aspetta che tu risponda a domande molto complesse, piuttosto devi rendere i tuoi concetti di base molto forti.

Secondo, non importa davvero molto se non puoi rispondere a poche domande, ma importa che qualunque cosa tu abbia risposto, devi aver risposto con sicurezza. Quindi sentiti sicuro durante il tuo colloquio. Noi di tutorialspoint ti auguriamo buona fortuna per avere un buon intervistatore e tutto il meglio per il tuo futuro impegno. Saluti :-)