Top 50 Questions d’Entretien en Langage C – Partie 2

Questions d’Entretien sur le langage C avec des réponses pour la préparation des entretiens d’embauche, tests en ligne, examens et certifications. Ces questions et réponses sur le langage C comprennent divers sujets tel que les bases du langage C, les boucles, les fonctions, les tableaux, les pointeurs, les structures des données, etc… Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur le langage C.
 
 

1. Quelle est la différence entre le compilateur et l’interpréteur?
Le compilateur est utilisé dans le langage C et il traduit le code complet en code machine en une seule fois. Par contre, l’interpréteur est utilisé dans le langage de programmation Java et d’autres langages de programmation sophistiqués. Il est conçu pour compiler le code ligne par ligne.
Différence entre compilateur et interpréteurDifférence entre compilateur et interpréteurNous écrivons généralement un programme informatique utilisant un langage haut niveau. Un langage haut niveau est un langage compréhensible par nous, les humains. Il contient…Lire plus

 

 
 

2. Puis-je utiliser le type « int » pour stocker la valeur 32768 ?
Non, le type de données Integer prend en charge la plage comprise entre -32768 et 32767. Toute valeur dépassant cette plage ne sera pas stockée. Nous pouvons utiliser soit float, soit long int.
Les types de donnéesProgrammation en C – Les types de donnéesLes types de données en C sont utilisé pour déclarer des variables ou des fonctions de différents types. Le type d’une variable détermine l’espace mémoire…Lire plus

 

 
 

3. Comment déclarer une fonction en langage C ?
Exemple: Une fonction en langage C est déclarée comme suit,

void somme(int a, int b)
{
       return a + b;
}
Les fonctionsProgrammation en C – Les fonctionsUne fonction est un groupe d’instructions qui exécutent un ensemble de tâches. Chaque programme C a au moins une fonction, qui est main (), et…Lire plus

 

 
 

4. Qu’est-ce que l’allocation de mémoire dynamique ? Indiquez des exemples.
L’allocation dynamique de mémoire est le processus d’allocation de mémoire au programme et à ses variables en cours d’exécution. Le processus d’allocation dynamique de mémoire implique trois fonctions pour allouer de la mémoire et une fonction pour libérer la mémoire utilisée.


malloc()

Exemple: malloc() => « memory allocation » – est utilisée pour allouer dynamiquement un seul grand bloc de mémoire avec la taille spécifiée.

ptr = (float*) malloc(100 * sizeof(float));

L’instruction ci-dessus alloue 400 octets de mémoire. C’est parce que la taille de float est de 4 octets. Et, le pointeur ptr contient l’adresse du premier octet dans la mémoire allouée.


calloc()

Exemple: calloc() => « contiguous allocation » – est utilisée pour allouer dynamiquement le nombre spécifié de blocs de mémoire du type spécifié. Elle est très similaire à malloc() mais présente deux points différents :

  • Elle initialise chaque bloc avec une valeur par défaut ‘0’.
  • Il a deux paramètres ou arguments par rapport à malloc().
ptr = (float*) calloc(25, sizeof(float));

L’instruction ci-dessus alloue un espace contigu en mémoire pour 25 éléments de type float.


realloc()

Exemple: realloc() => « re-allocation » – est utilisé pour modifier dynamiquement l’allocation de mémoire d’une mémoire précédemment allouée. En d’autres termes, si la mémoire précédemment allouée à l’aide de malloc ou calloc est insuffisante, realloc peut être utilisé pour réallouer dynamiquement la mémoire. La réallocation de la mémoire garde la valeur déjà présente et les nouveaux blocs seront initialisés avec la valeur par défaut du garbage.

ptr = realloc(ptr, x);

Ici, ptr est réaffecté avec une nouvelle taille x.


free()

Exemple: free() est utilisé pour libérer dynamiquement la mémoire.

free(ptr);

Cette instruction libère l’espace alloué dans la mémoire pointée par ptr.
Différence entre calloc et malloc en CDifférence entre calloc et malloc en CIl existe deux différences majeures entre malloc et calloc en programmation C: premièrement en nombre d’arguments. malloc() prend un seul argument, alors que calloc() prend…Lire plus Différence entre allocation dynamique et allocation statiqueDifférence entre allocation dynamique et allocation statiqueL’allocation de mémoire en programmation est très importante pour stocker des valeurs lorsque vous les affectez à des variables. L’attribution est faite avant et/ou au…Lire plus

 

 
 

5. Où on peut pas utiliser l’opérateur d’adresse & en C?
On ne peut pas utiliser & sur les constantes et sur une variable qui est déclarée en utilisant la classe de stockage des registres.

 

 
 

6. Qu’est-ce qu’un pointeur en C ?
Un pointeur est une variable qui stocke ou pointe vers l’adresse d’une autre variable. La valeur d’une variable est stockée dans une variable normale, tandis que l’adresse d’une variable est stockée dans une variable pointeur.
 

Les pointeursProgrammation en C – Les pointeursLes pointeurs en C sont faciles et amusants à apprendre. Certaines tâches de programmation C sont exécutées plus facilement avec des pointeurs, et d’autres tâches,…Lire plus

 

 
 

7. Différence entre const char* p et char const* p ?
  • const char* p est un pointeur sur un const char.
  • char const* p est un pointeur sur un char const.

Puisque ‘const char’ et ‘char const’ sont identiques, c’est la même chose.

 

 
 

8. Qu’est-ce qu’un pointeur de pointeur en C ?
En C, un pointeur peut également être utilisé pour stocker l’adresse d’un autre pointeur. L’adresse d’une variable est stockée dans le premier pointeur, tandis que l’adresse du premier pointeur est stockée dans le deuxième pointeur.

La syntaxe de déclaration d’un pointeur de pointeur est comme suit :

int **p; // pointeur de pointeur sur un entier


Exemple:

#include <stdio.h>

void main ()
{  
    int num = 255;  
    int *ptr2;  
    int **ptr1;   
    ptr2 = &num; //le pointeur ptr2 pointe vers l'adresse de num
    ptr1 = &ptr2; //ptr1 est un pointeur de pointeur pointant vers l'adresse du ptr2 
    printf("Adresse de num: %x\n",ptr2); //L'adresse du num sera affichée: 88A123X2  
    printf("Adresse de ptr2: %x\n",ptr1); //L'adresse de ptr2 sera affichée: 55X456X1  
    printf("Valeur stockée dans ptr2: %d\n",*ptr2); //La valeur stockée à l'adresse contenue dans ptr2, c'est-à-dire 255, sera affichée.  
    printf("Valeur stockée dans ptr1: %d\n",**ptr1); //La valeur stockée à l'adresse contenue par le pointeur stocké dans ptr1, c'est-à-dire 255, sera affichée.   
}

 

 

 
 

9. À quoi sert la conversion de types en C?
La conversion de type est le processus de conversion d’une variable d’un type de données à un autre. Si nous voulons stocker une grand valeur dans un type int, nous allons convertir le type de données en un autre type de données de manière explicite.
Syntaxe: (data_type)expression;
Exemple:

int x = 98;
printf("%c", (char)x); /* Conversion explicite de int à char */

 

 
 

10. Que signifie « Enumération » ?
Une énumération, également appelée Enum en C, est un type de données défini par l’utilisateur. Il est principalement utilisé pour attribuer des noms aux constantes entières, les noms rendent un programme facile à lire et à maintenir. Exemple:

enum State {Working = 1, Failed = 0};

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.