Le 100 migliori domande e risposte all'intervista sulla programmazione C (PDF)
Ecco le domande e le risposte al colloquio sulla programmazione C per i candidati più freschi ed esperti che vogliono ottenere il lavoro dei loro sogni.
Domande e risposte per l'intervista di base sulla programmazione C per le matricole
1) Come si costruisce un'istruzione di incremento o di decremento in C?
In realtà ci sono due modi per farlo. Uno è usare l'operatore di incremento ++ e l'operatore di decremento –. Ad esempio, l'istruzione "x++" significa incrementare il valore di x di 1. Allo stesso modo, l'istruzione "x –" significa decrementare il valore di x di 1. Un altro modo di scrivere istruzioni di incremento è usare il segno convenzionale + più o – meno. Nel caso di "x++", un altro modo di scriverlo è "x = x +1".
👉 Download gratuito del PDF: domande e risposte sull'intervista sulla programmazione C >>
2) Qual è la differenza tra Call by Value e Call by Reference?
Quando si utilizza Chiama per valore, si invia il valore di una variabile come parametro a una funzione, mentre Chiama per riferimento invia l'indirizzo della variabile. Inoltre, in Call by Value, il valore nel parametro non è influenzato da qualunque operazione abbia luogo, mentre nel caso di Call by Reference, i valori possono essere influenzati dal processo all'interno della funzione.
3) Alcuni programmatori eseguono il debug dei propri programmi inserendo simboli di commento su alcuni codici invece di eliminarli. In che modo questo aiuta nel debug?
Posizionare i simboli di commento /* */ attorno a un codice, detto anche "commentare", è un modo per isolare alcuni codici che si ritiene possano causare errori nel programma, senza eliminare il codice. L'idea è che se il codice è effettivamente corretto, rimuovi semplicemente i simboli del commento e continua. Ti fa anche risparmiare tempo e fatica nel dover digitare nuovamente i codici se li hai cancellati in primo luogo.
4) Qual è il codice equivalente della seguente istruzione nel formato WHILE LOOP?
for (a=1; a<=100; a++)
printf ("%d\n", a * a);
Risposta:
a=1;
while (a<=100) {
printf ("%d\n", a * a);
a++;
}
5) Cos'è una pila?
Uno stack è una forma di struttura dati. I dati vengono archiviati in stack utilizzando l'approccio FILO (First In Last Out). In ogni caso particolare, solo la parte superiore dello stack è accessibile, il che significa che per recuperare i dati archiviati all'interno dello stack, quelli nella parte superiore dovrebbero essere estratti per primi. L'archiviazione dei dati in uno stack viene definita anche PUSH, mentre il recupero dei dati viene definito POP.
6) Cos'è un file ad accesso sequenziale?
Quando si scrivono programmi che memorizzeranno e recupereranno i dati in un file, è possibile designare quel file in forme diverse. Un file ad accesso sequenziale è tale che i dati vengono salvati in ordine sequenziale: un dato viene inserito nel file dopo l'altro. Per accedere a un dato particolare all'interno del file ad accesso sequenziale, i dati devono essere letti un dato alla volta, finché non viene raggiunto quello giusto.
7) Cos'è l'inizializzazione variabile e perché è importante?
Si riferisce al processo in cui a una variabile viene assegnato un valore iniziale prima di essere utilizzata nel programma. Senza inizializzazione, una variabile avrebbe un valore sconosciuto, che può portare a risultati imprevedibili se utilizzata nei calcoli o in altre operazioni.
8 Cos'è la programmazione spaghetti?
La programmazione spaghetti si riferisce a codici che tendono a ingarbugliarsi e sovrapporsi nel programma. Questo approccio non strutturato alla codifica è solitamente attribuito alla mancanza di esperienza da parte del programmatore. La programmazione spaghetti rende un programma complesso e l'analisi dei codici difficile, e quindi deve essere evitata il più possibile.
9) Differenziare i codici sorgente dai codici oggetto
I codici sorgente sono codici scritti dal programmatore. È composto da comandi e altre parole chiave di tipo inglese che dovrebbero istruire il computer su cosa fare. Tuttavia, i computer non sarebbero in grado di comprendere i codici sorgente. Pertanto, i codici sorgente vengono compilati utilizzando un compilatore. Gli output risultanti sono codici oggetto, che sono in un formato comprensibile dal processore del computer. In Programmazione C., i codici sorgente vengono salvati con l'estensione file .C, mentre i codici oggetto vengono salvati con l'estensione file .OBJ
10) Nella programmazione in C, come si inseriscono le virgolette (' e “) nella schermata di output?
Questo è un problema comune per i principianti perché le virgolette sono normalmente parte di un'istruzione printf. Per inserire il carattere di virgoletta come parte dell'output, utilizzare gli specificatori di formato \' (per virgoletta singola) e \” (per virgoletta doppia).
11) A cosa serve il carattere '\0'?
Viene definito carattere nullo finale e viene utilizzato principalmente per mostrare la fine di un valore di stringa.
12) Qual è la differenza tra il simbolo = e il simbolo ==?
Il simbolo = è spesso usato nelle operazioni matematiche. Viene utilizzato per assegnare un valore a una determinata variabile. D'altra parte, il simbolo ==, noto anche come “uguale a” o “equivalente a”, è un operatore relazionale utilizzato per confrontare due valori.
13) Cos'è l'operatore modulo?
L'operatore modulo restituisce il resto di una divisione. Fa uso del simbolo di percentuale (%). Ad esempio: 10 % 3 = 1, ovvero quando dividi 10 per 3, il resto è 1.
14) Cos'è un ciclo annidato?
Un ciclo annidato è un ciclo che viene eseguito all'interno di un altro ciclo. Detto in un altro senso, hai un ciclo interno che si trova all'interno di un ciclo esterno. In questo scenario, il ciclo interno viene eseguito il numero di volte specificato dal ciclo esterno. Per ogni giro sul ciclo esterno, viene prima eseguito il ciclo interno.
15) Quale dei seguenti operatori è errato e perché? ( >=, <=, <>, ==)
<> non è corretto. Anche se questo operatore viene interpretato correttamente come "non uguale a" nella scrittura di istruzioni condizionali, non è l'operatore corretto da utilizzare in Programmazione C.. L’operatore != deve invece essere utilizzato per indicare la condizione “non uguale a”.
16) Confrontare e contrapporre compilatori e interpreti.
Compilatori e interpreti spesso si occupano di come vengono eseguiti i codici di programma. Gli interpreti eseguono i codici del programma una riga alla volta, mentre i compilatori prendono il programma nel suo insieme e lo convertono in codice oggetto, prima di eseguirlo. La differenza fondamentale qui è che nel caso degli interpreti, un programma può riscontrare errori di sintassi nel mezzo dell'esecuzione e da lì si fermerà. D'altra parte, i compilatori controllano la sintassi dell'intero programma e procederanno all'esecuzione solo quando non vengono trovati errori di sintassi.
17) Come si dichiara una variabile che conterrà valori stringa?
La parola chiave char può contenere solo 1 valore di carattere alla volta. Creando un array di caratteri, puoi memorizzare valori stringa al suo interno. Esempio: "char MyName[50]; " dichiara una variabile stringa denominata MyName che può contenere un massimo di 50 caratteri.
18) È possibile utilizzare le parentesi graffe { } per racchiudere una singola riga di codice?
Sebbene le parentesi graffe siano usate principalmente per raggruppare diverse righe di codice, funzioneranno comunque senza errori se le hai usate per una singola riga. Alcuni programmatori preferiscono questo metodo come un modo per organizzare i codici per renderli più chiari, specialmente nelle istruzioni condizionali.
19) Cosa sono i file header e a cosa servono nella programmazione in C?
I file di intestazione sono anche conosciuti come file di libreria. Contengono due cose essenziali: le definizioni e i prototipi delle funzioni utilizzate in un programma. In poche parole, i comandi utilizzati nella programmazione C sono in realtà funzioni definite all'interno di ciascun file di intestazione. Ogni file di intestazione contiene una serie di funzioni. Ad esempio: stdio.h è un file di intestazione che contiene la definizione e i prototipi di comandi come printf e scanf.
20) Cos'è l'errore di sintassi?
Gli errori di sintassi sono associati ad errori nell'uso di un linguaggio di programmazione. Potrebbe trattarsi di un comando scritto in modo errato o di un comando che doveva essere inserito in modalità minuscola ma invece è stato inserito con un carattere maiuscolo. Anche un simbolo fuori posto, o la mancanza di un simbolo, da qualche parte all'interno di una riga di codice può portare a un errore di sintassi.
21) Cosa sono le variabili e in che cosa differiscono dalle costanti?
Variabili e costanti possono a prima vista sembrare simili, nel senso che entrambi sono identificatori costituiti da uno o più caratteri (lettere, numeri e alcuni simboli consentiti). Entrambi avranno anche un valore particolare. I valori mantenuti da una variabile possono essere modificati in tutto il programma e possono essere utilizzati nella maggior parte delle operazioni e dei calcoli. Alle costanti vengono assegnati valori solo una volta, posizionati all'inizio di un programma. Questo valore non viene modificato nel programma. Ad esempio, puoi assegnare una costante denominata PI e assegnarle un valore 3.1415 . Puoi quindi usarlo come PI nel programma, invece di dover scrivere 3.1415 ogni volta che ne hai bisogno.
22) Come si accede ai valori all'interno di un array?
Gli array contengono un numero di elementi, a seconda della dimensione assegnata durante la dichiarazione della variabile. Ad ogni elemento viene assegnato un numero da 0 al numero di elementi-1. Per assegnare o recuperare il valore di un particolare elemento, fare riferimento al numero dell'elemento. Ad esempio: se hai una dichiarazione che dice "intscores[5];", allora hai 5 elementi accessibili, vale a dire: scores[0], scores[1], scores[2], scores[3] e scores[4 ].
23) Posso utilizzare il tipo di dati "int" per memorizzare il valore 32768? Perché?
No. Il tipo di dati "int" è in grado di memorizzare valori da -32768 a 32767. Per memorizzare 32768, è possibile utilizzare invece "long int". Puoi anche utilizzare "unsigned int", presupponendo che non intendi memorizzare valori negativi.
24) È possibile combinare due o più operatori come \n e \t in un'unica riga di codice di programma?
Sì, è perfettamente legittimo unire gli operatori, soprattutto se se ne presenta la necessità.
Ad esempio: puoi avere un codice simile printf (“Hello\n\n\’World\'”) per visualizzare il testo "Ciao" sulla prima riga e "Mondo" racchiuso tra virgolette singole nelle due righe successive.
25) Perché non tutti i file header sono dichiarati in ogni programma C?
La scelta di dichiarare un file di intestazione all'inizio di ciascun programma C dipenderà da quali comandi/funzioni utilizzerai in quel programma. Poiché ogni file di intestazione contiene definizioni di funzioni e prototipi diversi, utilizzeresti solo i file di intestazione che conterrebbero le funzioni di cui avrai bisogno. Dichiarare tutti i file di intestazione in ogni programma non farebbe altro che aumentare la dimensione complessiva del file e il carico del programma e non è considerato un buon stile di programmazione.
26) Quando viene utilizzata la parola chiave “void” in una funzione?
Quando dichiari le funzioni, deciderai se tale funzione restituirà un valore o meno. Se quella funzione non restituirà un valore, come quando lo scopo di una funzione è visualizzare alcuni output sullo schermo, allora "void" deve essere posizionato nella parte più a sinistra dell'intestazione della funzione. Quando è previsto un valore restituito dopo l'esecuzione della funzione, viene inserito il tipo di dati del valore restituito anziché "void".
27) Cosa sono le affermazioni composte?
Le istruzioni composte sono composte da due o più istruzioni di programma che vengono eseguite insieme. Ciò si verifica solitamente durante la gestione di condizioni in cui una serie di istruzioni viene eseguita quando viene valutato un TRUE o FALSE. Le istruzioni composte possono anche essere eseguite all'interno di un ciclo. Le parentesi graffe { } vengono posizionate prima e dopo le istruzioni composte.
28) Qual è il significato di un algoritmo per la programmazione in C?
Prima di poter scrivere un programma è necessario creare un algoritmo. Un algoritmo fornisce una procedura passo passo su come ottenere una soluzione. Funziona anche come un modello su come un programma inizierà e terminerà, compresi i processi e i calcoli coinvolti.
29) Qual è il vantaggio di un array rispetto alle variabili individuali?
Quando si memorizzano più dati correlati, è una buona idea utilizzare gli array. Questo perché gli array vengono denominati utilizzando solo 1 parola seguita da un numero di elemento. Ad esempio: per memorizzare i 10 risultati dei test di 1 studente, è possibile utilizzare 10 nomi di variabili diversi (voto1, voto2, voto3… voto10). Con gli array, viene utilizzato solo 1 nome, il resto è accessibile tramite il nome dell'indice (grado[0], grado[1], grado[2]... grado[9]).
30) Scrivere un'istruzione loop che mostrerà il seguente output:
1
12
123
1234
12345
Risposta:
for (a=1; a<=5; i++) {
for (b=1; b<=a; b++)
printf("%d",b);
printf("\n");
}
Domande e risposte sull'intervista sulla programmazione C per esperti
31) Cosa c'è di sbagliato in questa affermazione? scanf(“%d”,qualnumero);
È necessario inserire una e commerciale & un simbolo prima del nome della variabile whatnumber. Posizionando & significa che qualsiasi valore intero inserito dall'utente viene memorizzato nell'"indirizzo" del nome della variabile. Questo è un errore comune per i programmatori, che spesso porta a errori logici.
32) Come si generano numeri casuali in C?
I numeri casuali vengono generati in C utilizzando il metodo rand() command. Per esempio: anyNum = rand() genererà qualsiasi numero intero a partire da 0, assumendo che anyNum sia una variabile di tipo intero.
33) Quale potrebbe essere il problema se un nome di funzione valido come tolower() viene segnalato dal compilatore C come non definito?
La ragione più probabile dietro questo errore è che il file di intestazione per quella funzione non era indicato nella parte superiore del programma. I file di intestazione contengono la definizione e il prototipo delle funzioni e dei comandi utilizzati in un programma C. Nel caso di “tolower()”, il codice “#include ” deve essere presente all'inizio del programma.
34) Cosa sono i commenti e come si inseriscono in un programma C?
Commenti sono un ottimo modo per inserire commenti o descrizioni in un programma. Può servire come promemoria di cosa tratta il programma o come descrizione del motivo per cui un determinato codice o funzione è stato inserito lì in primo luogo. I commenti iniziano con /* e terminano con */ caratteri. I commenti possono essere di una sola riga o anche estendersi su più righe. Può essere posizionato ovunque nel programma.
35) Cos'è il debug?
Il debug è il processo di identificazione degli errori all'interno di un programma. Durante la compilazione del programma, gli errori rilevati impediranno l'esecuzione completa del programma. In questo stato, il programmatore esaminerà le possibili parti in cui si è verificato l'errore. Il debug garantisce la rimozione degli errori e svolge un ruolo importante nel garantire che l'output previsto del programma venga soddisfatto.
36) Cosa fa l'operatore && in un codice di programma?
Il && viene anche chiamato operatore AND. Quando si utilizza questo operatore, tutte le condizioni specificate devono essere VERE prima che possa essere eseguita l'azione successiva. Se hai 10 condizioni e tutte tranne 1 non vengono valutate come VERE, l'intera dichiarazione di condizione viene già valutata come FALSO
37) Nella programmazione in C, quale comando o codice può essere utilizzato per determinare se un numero è pari o dispari?
Non esiste un unico comando o funzione in c che può controllare se un numero è pari o dispari. Tuttavia, questo può essere ottenuto dividendo quel numero per 2, quindi controllando il resto. Se il resto è 0, allora quel numero è pari, altrimenti è dispari. Puoi scriverlo nel codice come:
if (num % 2 == 0)
printf("EVEN");
else
printf("ODD");
38) Cosa significa il formato %10.2 quando è incluso in un'istruzione printf?
Questo formato viene utilizzato per due cose: per impostare il numero di spazi assegnati per il numero di output e per impostare il numero di cifre decimali. Il numero prima del punto decimale è per lo spazio assegnato, in questo caso verranno assegnati 10 spazi per il numero di output. Se il numero di spazio occupato dal numero di uscita è inferiore a 10, i caratteri di spazio aggiuntivo verranno inseriti prima del numero di uscita effettivo. Il numero dopo la virgola imposta il numero di cifre decimali, in questo caso sono 2 spazi decimali.
39) Cosa sono gli errori logici e in cosa differiscono dagli errori di sintassi?
Il programma che contiene errori logici tende a superare il processo di compilazione, ma l'output risultante potrebbe non essere quello previsto. Ciò accade quando nel codice è stata inserita una formula errata o è stata eseguita una sequenza errata di comandi. Gli errori di sintassi, invece, riguardano comandi errati scritti in modo errato o non riconosciuti dal compilatore.
40) Quali sono i diversi tipi di strutture di controllo nella programmazione?
Ci sono 3 strutture di controllo principali nella programmazione: Sequenza, Selezione e Ripetizione. Il controllo sequenziale segue un flusso dall'alto verso il basso nell'esecuzione di un programma, in modo tale che il passaggio 1 venga eseguito per primo, seguito dal passaggio 2, fino all'esecuzione dell'ultimo passaggio. La selezione riguarda le istruzioni condizionali, il che significa che i codici vengono eseguiti a seconda della valutazione delle condizioni come VERE o FALSE. Ciò significa anche che non tutti i codici possono essere eseguiti e che esistono flussi alternativi al loro interno. Le ripetizioni sono note anche come strutture di loop e ripetono una o due istruzioni di programma impostate da un contatore.
41) Cos'è || operatore e come funziona in un programma?
Il || è noto anche come operatore OR nella programmazione C. Quando si utilizza || per valutare le condizioni logiche, qualsiasi condizione che valga TRUE renderà l'intera dichiarazione di condizione come TRUE.
42) È possibile utilizzare la funzione “se” per confrontare stringhe?
No. Il comando "se" può essere utilizzato solo per confrontare valori numerici e valori di singoli caratteri. Per confrontare i valori delle stringhe, esiste un'altra funzione chiamata strcmp che si occupa specificamente delle stringhe.
43) Cosa sono le direttive del preprocessore?
Le direttive del preprocessore vengono poste all'inizio di ogni programma C. Qui è dove vengono specificati i file di libreria, che dipendono da quali funzioni devono essere utilizzate nel programma. Un altro utilizzo delle direttive del preprocessore è la dichiarazione di costanti. Le direttive del preprocessore iniziano con il simbolo #.
44) Quale sarà il risultato della seguente istruzione condizionale se il valore della variabile s è 10?
s >=10 && s < 25 && s!=12
Il risultato sarà VERO. Poiché il valore di s è 10, s >= 10 vale VERO perché s non è maggiore di 10 ma è comunque uguale a 10. Anche s< 25 è VERO poiché 10 è minore di 25. Lo stesso, s!=12 , che significa che s non è uguale a 12, restituisce TRUE. && è l'operatore AND e segue la regola secondo cui se tutte le singole condizioni sono VERE, l'intera affermazione è VERA.
45) Descrivere l'ordine di precedenza rispetto agli operatori in C.
L'ordine di precedenza determina quale operazione deve essere eseguita per prima in un'istruzione operativa o in un'istruzione condizionale. Al livello di precedenza più alto ci sono gli operatori unari!, +, – e &. È seguito dai normali operatori matematici (*, / e modulo % prima, seguiti da + e -). I successivi sono gli operatori relazionali <, <=, >= e >. Questo è poi seguito dai due operatori di uguaglianza == e !=. Gli operatori logici && e || vengono successivamente valutati. All'ultimo livello c'è l'operatore di assegnazione =.
46) Cosa c'è di sbagliato in questa affermazione? mioNome = “Pettirosso”;
Non è possibile utilizzare il segno = per assegnare valori a una variabile stringa. Utilizza invece la funzione strcpy. L'affermazione corretta sarebbe: strcpy(myName, “Robin”);
47) Come si determina la lunghezza di un valore stringa memorizzato in una variabile?
Per ottenere la lunghezza di un valore stringa, utilizzare la funzione strlen(). Ad esempio, se hai una variabile denominata FullName, puoi ottenere la lunghezza del valore stringa memorizzato utilizzando questa istruzione: I = strlen(FullName); la variabile ora avrò la lunghezza dei caratteri del valore della stringa.
48) È possibile inizializzare una variabile nel momento in cui è stata dichiarata?
Sì, non devi scrivere una dichiarazione di assegnazione separata dopo la dichiarazione della variabile, a meno che tu non intenda modificarla in seguito. Ad esempio: char planet[15] = “Earth”; fa due cose: dichiara una variabile stringa denominata planet, quindi la inizializza con il valore “Earth”.
49) Perché il linguaggio C è considerato un linguaggio di livello medio?
Questo perché il linguaggio C è ricco di funzionalità che lo fanno comportare come un linguaggio di alto livello e allo stesso tempo può interagire con l'hardware utilizzando metodi di basso livello. L'uso di un approccio ben strutturato alla programmazione, abbinato a parole simili all'inglese utilizzate nelle funzioni, lo fa agire come un linguaggio di alto livello. D'altra parte, il C può accedere direttamente a strutture di memoria simili alle routine del linguaggio assembly.
50) Quali sono le diverse estensioni di file coinvolte nella programmazione in C?
I codici sorgente in C vengono salvati con l'estensione file .C. I file di intestazione o i file di libreria hanno l'estensione file .H. Ogni volta che il codice sorgente di un programma viene compilato con successo, crea un file oggetto .OBJ e un file eseguibile .EXE.
51) Cosa sono le parole riservate?
Le parole riservate sono parole che fanno parte della libreria del linguaggio C standard. Ciò significa che le parole riservate hanno un significato speciale e quindi non possono essere utilizzate per scopi diversi da quelli originariamente previsti. Esempi di parole riservate sono int, void e return.
52) Cosa sono le liste collegate?
Un elenco collegato è composto da nodi collegati tra loro. Nella programmazione C, gli elenchi concatenati vengono creati utilizzando i puntatori. L'utilizzo di elenchi collegati è un modo efficiente di utilizzare la memoria per l'archiviazione.
53) Cos'è il FIFO?
Nella programmazione C esiste una struttura dati nota come coda. In questa struttura, i dati vengono archiviati e accessibili utilizzando il formato FIFO o First-In-First-Out. Una coda rappresenta una riga in cui i primi dati archiviati saranno anche i primi accessibili.
54) Cosa sono gli alberi binari?
Gli alberi binari sono in realtà un'estensione del concetto di elenchi concatenati. Un albero binario ha due puntatori, uno a sinistra e uno a destra. Ciascun lato può ramificarsi ulteriormente per formare nodi aggiuntivi, ciascuno dei quali ha anch'esso due puntatori. Impara di più riguardo Albero binario nella struttura dei dati se siete interessati.
55) Non tutte le parole riservate sono scritte in minuscolo. Vero o falso?
FALSO. Tutte le parole riservate devono essere scritte in minuscolo; altrimenti il compilatore C interpreterebbe questo come non identificato e non valido.
56) Qual è la differenza tra l'espressione “++a” e “a++”?
Nella prima espressione, l'incremento avverrebbe prima sulla variabile a e il valore risultante sarà quello da utilizzare. Questo è noto anche come incremento del prefisso. Nella seconda espressione, il valore corrente della variabile a sarebbe quello da utilizzare in un'operazione, prima che il valore di a stessa venga incrementato. Questo è noto anche come incremento suffisso.
57) Cosa accadrebbe a X in questa espressione: X += 15; (assumendo che il valore di X sia 5)
X +=15 è un metodo breve per scrivere X = X + 15, quindi se il valore iniziale di X è 5, allora 5 + 15 = 20.
58) Nel linguaggio C le variabili NOME, nome e Nome sono tutte uguali. Vero o falso?
FALSO. Il linguaggio C è un linguaggio con distinzione tra maiuscole e minuscole. Pertanto, NOME, nome e Nome sono tre variabili unicamente diverse.
59) Cos'è un ciclo infinito?
Un loop infinito può significare due cose. Una è che è stato progettato per eseguire un loop continuo finché non viene soddisfatta la condizione all'interno del loop, dopodiché una funzione di interruzione farebbe uscire il programma dal loop. Un'altra idea di un loop infinito è quando è stata scritta una condizione di loop errata, che fa sì che il loop venga eseguito erroneamente per sempre. I loop infiniti sono spesso indicati come loop infiniti.
60) Cos'è un diagramma di flusso del programma e come aiuta nella scrittura di un programma?
Un diagramma di flusso fornisce una rappresentazione visiva della procedura passo passo verso la risoluzione di un determinato problema. I diagrammi di flusso sono costituiti da simboli, ciascuno dei quali ha forme diverse. Ciascuna forma può rappresentare una particolare entità all'interno dell'intera struttura del programma, come un processo, una condizione o anche una fase di input/output.
61) Cosa c'è di sbagliato in questa dichiarazione di programma? vuoto = 10;
La parola void è una parola riservata nel linguaggio C. Non è possibile utilizzare parole riservate come variabile definita dall'utente.
62) Questa dichiarazione di programma è valida? INT = 10.50;
Supponendo che INT sia una variabile di tipo float, questa affermazione è valida. Si potrebbe pensare che INT sia una parola riservata e non debba essere utilizzata per altri scopi. Tuttavia, ricorda che le parole riservate sono espresse in minuscolo, quindi il compilatore C non le interpreterà come una parola riservata.
63) Quali sono gli argomenti concreti?
Quando crei e utilizzi funzioni che devono eseguire un'azione su determinati valori, devi passare questi valori a quella funzione. I valori che vengono passati alla funzione chiamata vengono definiti argomenti effettivi.
64) Cos'è una sequenza di escape di fine riga?
Una sequenza di escape di nuova riga è rappresentata dal carattere \n. Viene utilizzato per inserire una nuova riga durante la visualizzazione dei dati nella schermata di output. È possibile aggiungere più spazi inserendo più \n caratteri. Ad esempio, \n\n inserirebbe due spazi. Una sequenza di escape di nuova riga può essere posizionata prima o dopo l'effettiva espressione di output.
65) Cos'è il reindirizzamento dell'output?
È il processo di trasferimento dei dati a una sorgente di output alternativa diversa dallo schermo di visualizzazione. Il reindirizzamento dell'output consente a un programma di salvare il suo output in un file. Ad esempio, se hai un programma denominato COMPUTE, digitandolo sulla riga di comando come COMPUTE >DATA puoi accettare input dall'utente, eseguire determinati calcoli, quindi reindirizzare l'output a un file denominato DATA, invece di mostrarlo sullo schermo.
66) Cosa sono gli errori di runtime?
Questi sono errori che si verificano durante l'esecuzione del programma. Un caso comune in cui possono verificarsi errori di runtime è quando si tenta di dividere un numero per zero. Quando si verificano errori di runtime, l'esecuzione del programma si interrompe, mostrando quale riga del programma ha causato l'errore.
67) Qual è la differenza tra le funzioni abs() e fabs()?
Queste 2 funzioni eseguono sostanzialmente la stessa azione, ovvero ottenere il valore assoluto del valore specificato. Abs() viene utilizzato per valori interi, mentre fabs() viene utilizzato per numeri di tipo mobile. Inoltre, il prototipo di abs() è sotto , mentre fabs() è sotto .
68) Cosa sono i parametri formali?
Nell'utilizzo delle funzioni in un programma C, i parametri formali contengono i valori passati dalla funzione chiamante. I valori vengono sostituiti in questi parametri formali e utilizzati in qualunque operazione come indicato nel corpo principale della funzione chiamata.
69) Cosa sono le strutture di controllo?
Le strutture di controllo si occupano di quali istruzioni devono essere eseguite in un programma. Ciò significa che il flusso del programma potrebbe non necessariamente spostarsi da un'istruzione a quella successiva, ma piuttosto potrebbe essere necessario passare o ignorare alcune parti alternative, a seconda del risultato delle istruzioni condizionali.
70) Scrivi un semplice frammento di codice che controllerà se un numero è positivo o negativo
If (num>=0)
printf("number is positive");
else
printf ("number is negative");
71) Quando è preferibile un'istruzione "switch" rispetto a un'istruzione "if"?
. istruzione switch è utilizzato al meglio quando si ha a che fare con selezioni basate su una singola variabile o espressione. Tuttavia, le istruzioni switch possono valutare solo tipi di dati interi e caratteri.
72) Cosa sono le variabili globali e come si dichiarano?
Le variabili globali sono variabili a cui è possibile accedere e manipolare ovunque nel programma. Per rendere globale una variabile, posiziona la dichiarazione della variabile nella parte superiore del programma, subito dopo la sezione delle direttive del preprocessore.
73) Cosa sono i tipi enumerati?
I tipi enumerati consentono al programmatore di utilizzare parole più significative come valori di una variabile. Ogni elemento nella variabile di tipo enumerato è in realtà associato a un codice numerico. Ad esempio, è possibile creare una variabile di tipo enumerato denominata DAYS i cui valori sono Monday, martedì… domenica.
74) Cosa fa la funzione toupper()?
Viene utilizzato per convertire qualsiasi lettera nella sua modalità maiuscola. Il prototipo della funzione Toupper() è dichiarato in . Tieni presente che questa funzione convertirà solo un singolo carattere e non un'intera stringa.
75) È possibile avere una funzione come parametro in un'altra funzione?
Sì, ciò è consentito nella programmazione in C. Devi solo includere l'intero prototipo della funzione nel campo del parametro dell'altra funzione in cui deve essere utilizzato.
76) Cosa sono gli array multidimensionali?
Gli array multidimensionali sono in grado di memorizzare dati in una struttura bi o più dimensionale. Ad esempio, è possibile utilizzare un array bidimensionale per memorizzare la posizione corrente dei pezzi in una partita a scacchi o la posizione dei giocatori in un programma di tris.
77) Quale funzione in C può essere utilizzata per aggiungere una stringa a un'altra stringa?
La funzione strcat. Sono necessari due parametri, la stringa di origine e il valore della stringa da aggiungere alla stringa di origine.
78) Qual è la differenza tra le funzioni getch() e getche()?
Entrambe le funzioni accetteranno un valore di input di caratteri dall'utente. Quando si utilizza getch(), il tasto premuto non verrà visualizzato sullo schermo e verrà automaticamente catturato e assegnato a una variabile. Quando si utilizza getche(), il tasto premuto dall'utente apparirà sullo schermo, mentre allo stesso tempo verrà assegnato a una variabile.
79) Queste due istruzioni di programma eseguono lo stesso output? 1) scanf(“%c”, &lettera); 2) lettera=getchar()
Sì, entrambi fanno esattamente la stessa cosa, ovvero accettare il tasto successivo premuto dall'utente e assegnarlo alla variabile denominata lettera.
80) Cosa sono i tipi di struttura in C?
I tipi di struttura vengono utilizzati principalmente per archiviare i record. Un record è costituito da campi correlati. Ciò semplifica l'organizzazione di un gruppo di dati correlati.
81) Cosa significano i caratteri “r” e “w” quando si scrivono programmi che faranno uso di file?
"r" significa "leggi" e aprirà un file come input in cui i dati devono essere recuperati. "w" significa "scrivi" e aprirà un file per l'output. I dati precedenti memorizzati su quel file verranno cancellati.
82) Qual è la differenza tra file di testo e file binari?
I file di testo contengono dati che possono essere facilmente compresi dagli esseri umani. Include lettere, numeri e altri caratteri. D'altra parte, i file binari contengono 1 e 0 che solo i computer possono interpretare.
83) è possibile creare i propri file di intestazione?
Sì, è possibile creare un file di intestazione personalizzato. Includi semplicemente al suo interno i prototipi di funzione che desideri utilizzare nel tuo programma e utilizza la direttiva #include seguita dal nome del file di intestazione.
84) Cos'è la struttura dati dinamica?
La struttura dinamica dei dati fornisce un mezzo per archiviare i dati in memoria in modo più efficiente. Usando Usando allocazione dinamica della memoria, il programma accederà agli spazi di memoria secondo necessità. Ciò è in contrasto con la struttura dei dati statica, in cui il programmatore deve indicare un numero fisso di spazio di memoria da utilizzare nel programma.
85) Quali sono i diversi tipi di dati in C?
La base tipi di dati in C sono int, char e float. Int viene utilizzato per dichiarare variabili che memorizzeranno valori interi. Float viene utilizzato per memorizzare numeri reali. Char può memorizzare valori di caratteri individuali.
86) Qual è la forma generale di un programma C?
Il programma AC inizia con le direttive del preprocessore, in cui il programmatore specifica quale file di intestazione e quali costanti (se presenti) utilizzare. Segue l'intestazione della funzione principale. All'interno della funzione main si trovano la dichiarazione della variabile e l'istruzione del programma.
87) Qual è il vantaggio di un file ad accesso casuale?
Se la quantità di dati archiviati in un file è piuttosto elevata, l'uso dell'accesso casuale consentirà di effettuare ricerche al suo interno più rapidamente. Se fosse stato un file ad accesso sequenziale, dovresti passare attraverso un record alla volta fino a raggiungere i dati di destinazione. Un file ad accesso casuale ti consente di passare direttamente all'indirizzo di destinazione in cui si trovano i dati.
88) In un'istruzione switch, cosa accadrà se viene omessa un'istruzione break?
Se un'istruzione break non fosse posta alla fine di una particolare porzione del caso? Passerà alla parte successiva del caso, causando probabilmente un output errato.
89) Descrivere come gli array possono essere passati a una funzione definita dall'utente
Una cosa da notare è che non puoi passare l'intero array a una funzione. Invece, le passi un puntatore che punterà al primo elemento dell'array in memoria. Per fare questo, indichi il nome dell'array senza le parentesi.
90) Cosa sono i puntatori?
Puntatori punto ad aree specifiche della memoria. I puntatori contengono l'indirizzo di una variabile, che a sua volta può contenere un valore o anche l'indirizzo di un'altra memoria.
91) Puoi passare un'intera struttura alle funzioni?
Sì, è possibile passare un'intera struttura a una funzione in uno stile chiamata per metodo. Tuttavia, alcuni programmatori preferiscono dichiarare la struttura globalmente, quindi passare una variabile di quel tipo di struttura a una funzione. Questo metodo aiuta a mantenere la coerenza e l'uniformità in termini di tipo di argomento.
92) Cos'è la funzione goes()?
. gets() function consente l'immissione di dati di linea completa da parte dell'utente. Quando l'utente preme il tasto Invio per terminare l'input, l'intera riga di caratteri viene archiviata in una variabile stringa. Tieni presente che il tasto Invio non è incluso nella variabile, ma viene invece inserito un terminatore nullo \0 dopo l'ultimo carattere.
93) Il simbolo % ha un uso speciale in un'istruzione printf. Come posizioneresti questo personaggio come parte dell'output sullo schermo?
Puoi farlo usando %% nell'istruzione printf. Ad esempio, puoi scrivere printf(“10%%”) per far sì che l'output appaia come 10% sullo schermo.
94) Come si ricercano i dati in un file di dati utilizzando il metodo di accesso casuale?
Usa il fseek() funzione per eseguire input/output ad accesso casuale su un file. Dopo che il file è stato aperto dalla funzione fopen(), fseek richiederebbe tre parametri per funzionare: un puntatore al file, il numero di byte da cercare e il punto di origine nel file.
95) I commenti vengono inseriti in fase di compilazione e inseriti anche nel file EXE?
No, i commenti rilevati dal compilatore vengono ignorati. I commenti servono principalmente solo come guida per il programmatore e non hanno alcun altro utilizzo significativo nella funzionalità del programma.
96) Esiste una funzione integrata in C che può essere utilizzata per ordinare i dati?
Sì, usa il qsort() funzione. È anche possibile creare funzioni definite dall'utente per l'ordinamento, come quelle basate sull'algoritmo di ordinamento dei fumetti e dell'ordinamento delle bolle.
97) Quali sono i vantaggi e gli svantaggi di un heap?
L'archiviazione dei dati nell'heap è più lenta rispetto a quando si utilizza lo stack. Tuttavia, il vantaggio principale dell'utilizzo dell'heap è la sua flessibilità. Questo perché la memoria in questa struttura può essere allocata e rimossa in qualsiasi ordine particolare. La lentezza nell'heap può essere compensata se un algoritmo è stato ben progettato e implementato.
98) Come si convertono le stringhe in numeri in C?
Puoi scrivere le tue funzioni per eseguire conversioni da stringa a numero o utilizzare invece le funzioni integrate di C. È possibile utilizzare atof per convertire in un valore a virgola mobile, atoi per convertire in un valore intero e atol per convertire in un valore intero lungo.
99) Creare un semplice frammento di codice che scambierà i valori di due variabili num1 e num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) A cosa serve il punto e virgola (;) alla fine di ogni istruzione di programma?
Ha a che fare con il processo di analisi e compilazione del codice. Un punto e virgola funge da delimitatore, in modo che il compilatore sappia dove finisce ciascuna istruzione e possa procedere a dividere l'istruzione in elementi più piccoli per il controllo della sintassi.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)

