top 40 c programming interview questions
Domande e risposte al colloquio di programmazione C più frequenti:
Il linguaggio di programmazione C è stato sviluppato tra il 1969 e il 1973 da Dennis Ritchie dei Bell Labs. Usa questo nuovo linguaggio di programmazione per reimplementare il sistema operativo UNIX.
C è un linguaggio di programmazione strutturato ad alto livello utilizzato per requisiti di programmazione generici. Fondamentalmente, C è una raccolta delle sue funzioni di libreria. È anche flessibile aggiungere funzioni definite dall'utente e includere quelle nella libreria C.
L'utilizzo principale del linguaggio di programmazione C include compilatori di linguaggio, sistemi operativi, assemblatori, editor di testo, spooler di stampa, driver di rete, programmi moderni, basi di dati, interpreti del linguaggio e utilità.
Domande di intervista di programmazione C più comuni
Eccoci qui.
D # 1) Quali sono le caratteristiche chiave del linguaggio di programmazione C?
Risposta: le caratteristiche sono le seguenti:
- Portabilità : È un linguaggio indipendente dalla piattaforma.
- Modularità: Possibilità di suddividere grandi programmi in piccoli moduli.
- Flessibilità: La possibilità di un programmatore di controllare la lingua.
- Velocità: C viene fornito con il supporto per la programmazione di sistema e quindi compila ed esegue ad alta velocità rispetto ad altri linguaggi di alto livello.
- Estensibilità : Possibilità di aggiungere nuove funzionalità da parte del programmatore.
D # 2) Quali sono i tipi di dati di base associati a C?
Risposta:
- Int - Rappresenta il numero (intero)
- Galleggiante - Numero con una parte frazionaria.
- Doppio - Valore a virgola mobile a precisione doppia
- Char - Singolo carattere
- Vuoto - Tipo per scopi speciali senza alcun valore.
D # 3) Qual è la descrizione degli errori di sintassi?
Risposta: Gli errori / errori che si verificano durante la creazione di un programma sono chiamati errori di sintassi. Comandi con errori di ortografia o comandi di maiuscole / minuscole errati, un numero errato di parametri nel metodo / funzione chiamante, non corrispondenze di tipi di dati possono essere identificati come esempi comuni di errori di sintassi.
Q # 4) Qual è il processo per creare l'istruzione di incremento e decremento in C?
Risposta: Esistono due metodi possibili per eseguire questa operazione.
- Usa l'operatore di incremento (++) e decremento (-).
Esempio Quando x = 4, x ++ restituisce 5 e x- restituisce 3.
- Usa il segno + o - convenzionale.
Esempio Quando x = 4, usa x + 1 per ottenere 5 e x-1 per ottenere 3.
D # 5) Cosa sono le parole riservate con un linguaggio di programmazione?
Risposta: Vengono chiamate le parole che fanno parte della libreria del linguaggio C standard parole riservate . Queste parole riservate hanno un significato speciale e non è possibile utilizzarle per alcuna attività diversa dalla funzionalità prevista.
Esempio: void, return int.
Q # 6) Qual è la spiegazione del puntatore penzolante in C?
Risposta: Quando c'è un puntatore che punta a un indirizzo di memoria di qualsiasi variabile, ma dopo un po 'di tempo la variabile è stata cancellata dalla posizione di memoria mantenendo il puntatore che punta a quella posizione è noto come puntatore penzolante in C.
D # 7) Descrivi la funzione statica con il suo utilizzo?
Risposta: Una funzione, che ha una definizione di funzione preceduta da una parola chiave statica è definita come funzione statica. La funzione statica dovrebbe essere chiamata all'interno dello stesso codice sorgente.
D # 8) Qual è la differenza tra le funzioni abs () e fabs ()?
Risposta: Entrambe le funzioni servono a recuperare il valore assoluto. abs () è per i valori interi e fabs () è per i numeri di tipo floating. Il prototipo di abs () è sotto il file della libreria e fabs () è sotto.
Q # 9) Descrivi i Wild Pointer in C?
Risposta: I puntatori non inizializzati nel codice C sono noti come Puntatori selvaggi . Puntano a una posizione di memoria arbitraria e possono causare un cattivo comportamento del programma o un arresto anomalo del programma.
Q # 10) Qual è la differenza tra ++ a e a ++?
Risposta: '++ a' è chiamato incremento prefissato e l'incremento avverrà per primo su una variabile. 'A ++' è chiamato incremento postfisso e l'incremento avviene dopo il valore di una variabile utilizzata per le operazioni.
D # 11) Descrivi la differenza tra i simboli = e == nella programmazione C?
Risposta: '==' è l'operatore di confronto che viene utilizzato per confrontare il valore o l'espressione sul lato sinistro con il valore o l'espressione sul lato destro.
'=' È l'operatore di assegnazione che viene utilizzato per assegnare il valore del lato destro alla variabile sul lato sinistro.
D # 12) Qual è la spiegazione della funzione prototipo in C?
domande e risposte dell'intervista di sql server 2012 per pdf esperti
Risposta: La funzione prototipo è una dichiarazione di una funzione con le seguenti informazioni al compilatore.
- Nome della funzione.
- Il tipo restituito della funzione.
- Elenco dei parametri della funzione.
In questo esempio, il nome della funzione è Sum, il tipo restituito è il tipo di dati intero e accetta due parametri interi.
D # 13) Qual è la spiegazione della natura ciclica dei tipi di dati in C?
Risposta: Alcuni dei tipi di dati in C hanno una natura caratteristica speciale quando uno sviluppatore assegna un valore oltre l'intervallo del tipo di dati. Non ci sarà alcun errore del compilatore e il valore cambia secondo un ordine ciclico. Questa si chiama natura ciclica. I tipi di dati Char, int, long int hanno questa proprietà. Ulteriori tipi di dati float, double e long double non hanno questa proprietà.
D # 14) Descrivi il file di intestazione e il suo utilizzo nella programmazione C?
Risposta: Il file contenente le definizioni ei prototipi delle funzioni utilizzate nel programma sono chiamati file di intestazione. È anche noto come file di libreria.
Esempio: Il file di intestazione contiene comandi come printf e scanf proviene dal file di libreria stdio.h.
D # 15) C'è una pratica nella codifica per mantenere alcuni blocchi di codice nei simboli di commento piuttosto che eliminarli durante il debug. Come questo influisce durante il debug?
Risposta: Questo concetto è chiamato commentare e questo è il modo per isolare una parte del codice che analizza la possibile causa dell'errore. Inoltre, questo concetto aiuta a risparmiare tempo perché se il codice non è il motivo del problema, può essere semplicemente rimosso dal commento.
D # 16) Quali sono la descrizione generale delle istruzioni di ciclo e dei tipi di ciclo disponibili in C?
Risposta: Un'istruzione che consente l'esecuzione di istruzioni o gruppi di istruzioni in modo ripetuto è definita come un ciclo.
Il diagramma seguente spiega una forma generale di un ciclo.
Esistono 4 tipi di istruzioni loop in C.
- While loop
- Per Loop
- Fai ... durante il ciclo
- Ciclo annidato
D # 17) Cos'è un ciclo annidato?
Risposta: Un ciclo che viene eseguito all'interno di un altro ciclo viene denominato ciclo annidato . Il primo loop è chiamato Outer Loop e il loop interno è chiamato Inner Loop. Il ciclo interno viene eseguito il numero di volte definito in un ciclo esterno.
D # 18) Qual è la forma generale della funzione in C?
Risposta: La definizione della funzione in C contiene quattro sezioni principali.
return_type function_name( parameter list ) { body of the function }
- Tipo di ritorno : Tipo di dati del valore di ritorno della funzione.
- Nome funzione: Il nome della funzione ed è importante avere un nome significativo che descriva l'attività della funzione.
- Parametri : I valori di input per la funzione utilizzati per eseguire l'azione richiesta.
- Funzione Body : Raccolta di istruzioni che esegue l'azione richiesta.
D # 19) Che cos'è un puntatore su un puntatore nel linguaggio di programmazione C?
Risposta: Una variabile puntatore che contiene l'indirizzo di un'altra variabile puntatore viene chiamata puntatore su un puntatore. Questo concetto de-referenzia due volte per puntare ai dati contenuti in una variabile puntatore.
In questo esempio ** y restituisce il valore della variabile a.
D # 20) Quali sono i posti validi per avere la parola chiave 'Break'?
Risposta: Lo scopo della parola chiave Break è portare il controllo fuori dal blocco di codice in esecuzione. Può apparire solo nelle istruzioni loop o switch.
D # 21) Qual è la differenza comportamentale quando il file di intestazione è incluso tra virgolette doppie ('') e parentesi angolari ()?
Risposta: Quando il file di intestazione è incluso tra virgolette doppie (''), il compilatore cerca prima nella directory di lavoro il file di intestazione specifico. Se non viene trovato, cerca il file nel percorso di inclusione. Ma quando il file di intestazione è incluso tra parentesi graffe angolari (), il compilatore cerca nella directory di lavoro solo il particolare file di intestazione.
D # 22) Cos'è un file ad accesso sequenziale?
Risposta: I programmi generali memorizzano i dati in file e recuperano i dati esistenti dai file. Con il file ad accesso sequenziale, tali dati vengono salvati in uno schema sequenziale. Quando si recuperano i dati da tali file, ogni dato viene letto uno alla volta finché non vengono trovate le informazioni richieste.
D # 23) Qual è il metodo per salvare i dati in un tipo di struttura dati dello stack?
Risposta: I dati vengono archiviati nel tipo di struttura dati Stack utilizzando l'estensione First In Last Out (FILO) meccanismo. Solo la parte superiore dello stack è accessibile in una determinata istanza. Il meccanismo di archiviazione è indicato come PUSH e il recupero è indicato come POP.
D # 24) Qual è il significato degli algoritmi del programma C?
Risposta: L'algoritmo viene creato per primo e contiene linee guida passo passo su come dovrebbe essere la soluzione. Inoltre, contiene i passaggi da considerare e i calcoli / operazioni richiesti all'interno del programma.
D # 25) Qual è il codice corretto per avere il seguente output in C usando il ciclo for annidato?
Risposta:
#include int main () { int a; int b; /* for loop execution */ for( a = 1; a <6; a++ ) { /* for loop execution */ for ( b = 1; b <= a; b++ ) { printf('%d',b); } printf('
'); } return 0; }
Q # 26) Spiega l'uso della funzione toupper () con un codice di esempio?
Risposta: La funzione Toupper () viene utilizzata per convertire il valore in maiuscolo quando viene utilizzato con i caratteri.
Codice:
#include #include int main() { char c; c = 'a'; printf('%c -> %c', c, toupper(c)); c = 'A'; printf('
%c -> %c', c, toupper(c)); c = '9'; printf('
%c -> %c', c, toupper(c)); return 0; }
Risultato:
D # 27) Qual è il codice in un ciclo while che restituisce l'output del codice dato?
#include int main () { int a; /* for loop execution */ for( a = 1; a <= 100; a++ ) { printf('%d
',a * a); } return 0; }
Risposta:
#include int main () { int a; while (a<=100) { printf ('%d
', a * a); a++; } return 0; }
D # 28) Selezionare il modulo operatore errato nell'elenco seguente (==,,> =,<=) and what is the reason for the answer?
Risposta: L'operatore non corretto è ''. Questo formato è corretto quando si scrivono istruzioni condizionali, ma non è l'operazione corretta indicare non uguale nella programmazione C. Fornisce un errore di compilazione come segue.
Codice:
#include int main () { if ( 5 10 ) printf( 'test for ' ); return 0; }
Errore:
Q # 29) È possibile utilizzare parentesi graffe ({}) per racchiudere un codice a riga singola nel programma C?
Risposta: Sì, funziona senza errori. Ad alcuni programmatori piace usarlo per organizzare il codice. Ma lo scopo principale delle parentesi graffe è raggruppare diverse righe di codici.
Q # 30) Descrivi il modificatore in C?
Risposta: Il modificatore è un prefisso al tipo di dati di base che viene utilizzato per indicare la modifica per l'allocazione dello spazio di archiviazione a una variabile.
Esempio- In un processore a 32 bit, lo spazio di archiviazione per il tipo di dati int è 4. Quando lo usiamo con il modificatore, lo spazio di archiviazione cambia come segue:
- Long int: Lo spazio di archiviazione è di 8 bit
- Short int: Lo spazio di archiviazione è di 2 bit
D # 31) Quali sono i modificatori disponibili nel linguaggio di programmazione C?
Risposta: Ci sono 5 modificatori disponibili nel linguaggio di programmazione C come segue:
- Corto
- Lungo
- Firmato
- Non firmato
- lungo lungo
D # 32) Qual è il processo per generare numeri casuali nel linguaggio di programmazione C?
Risposta: Il comando rand () è disponibile per questo scopo. La funzione restituisce un numero intero che inizia da zero (0). Il codice di esempio riportato di seguito mostra l'utilizzo di rand ().
Codice:
#include #include int main () { int a; int b; for(a=1; a<11; a++) { b = rand(); printf( '%d
', b ); } return 0; }
Produzione:
D # 33) Descrivi la sequenza di escape di nuova riga con un programma di esempio?
qual è il miglior pulitore gratuito per PC
Risposta: La sequenza di escape Newline è rappresentata da n. Ciò indica il punto in cui la nuova riga inizia nel compilatore e l'output viene creato di conseguenza. Il seguente programma di esempio illustra l'utilizzo della sequenza di escape di nuova riga.
Codice:
/* * C Program to print string */ #include #include int main(){ printf('String 01 '); printf('String 02 '); printf('String 03
'); printf('String 01
'); printf('String 02
'); return 0; }
Produzione:
D # 34) È possibile memorizzare 32768 in una variabile di tipo dati int?
Risposta: Il tipo di dati Int è in grado di memorizzare solo valori compresi tra - 32768 e 32767. Per memorizzare 32768 è necessario utilizzare un modificatore con il tipo di dati int. Long Int può essere utilizzato e anche se non ci sono valori negativi, è possibile utilizzare anche unsigned int.
D # 35) Esiste la possibilità di creare un file di intestazione personalizzato con il linguaggio di programmazione C?
Risposta: Sì, è possibile e facile creare un nuovo file di intestazione. Crea un file con i prototipi di funzione che vengono utilizzati all'interno del programma. Includi il file nella sezione '#include' dal nome.
D # 36) Descrivi la struttura dinamica dei dati nel linguaggio di programmazione C?
Risposta: La struttura dinamica dei dati è più efficiente per la memoria. L'accesso alla memoria avviene secondo le necessità del programma.
Q # 37) È possibile aggiungere dei puntatori l'un l'altro?
Risposta: Non è possibile aggiungere i puntatori insieme. Poiché il puntatore contiene i dettagli dell'indirizzo, non è possibile recuperare il valore da questa operazione.
D # 38) Cos'è l'indirizzamento?
Risposta: Se è stato definito un puntatore a una variabile oa qualsiasi oggetto di memoria, non vi è alcun riferimento diretto al valore della variabile. Questo è chiamato riferimento indiretto. Ma quando dichiariamo una variabile, ha un riferimento diretto al valore.
D # 39) Quali sono i modi per ottenere un puntatore nullo che può essere utilizzato nel linguaggio di programmazione C?
Risposta: È possibile utilizzare i puntatori nulli in tre modi.
- Come valore di errore.
- Come valore sentinella.
- Per terminare l'indirizzamento indiretto nella struttura dati ricorsiva.
Q # 40) Qual è la spiegazione per la programmazione modulare?
Risposta: Il processo di divisione del programma principale in sottosezioni eseguibili è chiamato programmazione del modulo. Questo concetto promuove la riusabilità.
Conclusione
L'interrogante si basa sui concetti del linguaggio di programmazione C inclusa la gestione della memoria con puntatori, la conoscenza della sua sintassi e alcuni programmi di esempio che utilizzano la struttura del programma Basic C. Con le domande viene esaminata la conoscenza teatrale e pratica del candidato.
Lettura consigliata
- Domande e risposte dell'intervista
- Alcune domande e risposte sui test manuali complicati
- C Vs C ++: 39 principali differenze tra C e C ++ con esempi