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

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. Puis-je créer un fichier en-tête .h personnalisé en langage C ?
Il est possible de créer un nouveau fichier d’en-tête. Créez un fichier contenant les prototypes des fonctions qui doivent être utilisées dans le programme. Incluez le fichier dans la section ‘#include’ dans son nom. Par exemple, j’appelle une fonction externe appelée swap dans mon fichier main.c.

#include <stdio.h>
#include "swap.h"

void main()
{
    int a=10;
    int b=20;
    swap(&a,&b);
    printf("a=%d\n", a);
    printf("b=%d\n",b);
}

La méthode swap, définie dans le fichier swap.h, est utilisée pour échanger deux nombres à l’aide d’une variable temporaire.

void swap(int* a, int* b)
{
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}

 

 
 

2. Expliquez les variables statiques locales et quelle est leur utilité ?
Une variable statique locale est une variable dont la vie ne se termine pas avec l’appel de fonction où elle est déclarée. Elle s’étend sur toute la durée de vie du programme complet. Tous les appels à la fonction partagent la même copie des variables statiques locales. Exemple:

#include <stdio.h>
void incr() 
{ 
    static int i; 
    printf("%d ", i); 
    i = i + 1; 
} 
int main() 
{ 
    incr(); 
    incr(); 
    return 0; 
}

Sortie:

0 1

 

 
 

3. Quelle est la différence entre déclarer un fichier d’en-tête avec < > et " " ?
La différence entre les deux réside dans l’emplacement où le préprocesseur recherche le fichier à inclure dans le code.

#include <filename> // En-tête de la bibliothèque standard

#include "filename"  // En-tête défini par l'utilisateur

Si le fichier d’en-tête est déclaré en utilisant < >, le compilateur recherche le fichier d’en-tête dans le chemin intégré. Si le fichier d’en-tête est déclaré en utilisant " ", le compilateur recherche le fichier d’en-tête dans le répertoire de travail actuel et, s’il ne le trouve pas, il le recherche dans d’autres emplacements.

 

 
 

4. Quelle instruction est efficace et pourquoi ? x=x+1; ou x++;?
x++; est l’instruction la plus efficace car elle ne représente qu’une seule instruction pour le compilateur alors que l’autre ne l’est pas.

 

 
 

5. Puis-je déclarer le même nom de variable pour les variables qui ont des portées différentes?
Oui, le même nom de variable peut être déclaré à des variables ayant des portées différentes comme dans l’exemple suivant.

void function() 
{ 
   int nbr; 
}
int main() 
{ 
   int nbr; 
}

 

 
 

6. Quelle variable peut être utilisée pour accéder aux membres des données de l’Union si la variable de l’Union est déclarée comme une variable pointeur ?
L’opérateur de flèche (->) peut être utilisé pour accéder aux membres de données d’une union si la variable d’union est déclarée comme une variable pointeur. Exemple:

#include <stdio.h>
  
union Book
{ 
    int id;
    float price;
};
  
int main()
{
     union Book * B;
     B = (union Book*) malloc(sizeof(union Book)); 
	 
     B->id = 101;
     printf("\n ID: %d", B->id);
	 
     B->price = 25.66;
     printf("\n Price: %.1f", B->price);
	 
     return 0;
}

Sortie:

ID:  101
Price: 25.66

 

 
 

7. Quels sont les différents spécificateurs de classe de stockage en C?
Les différents spécificateurs de stockage disponibles dans le langage C sont les suivants :

  • auto
  • register
  • static
  • extern

 

 
 

8. Écrivez un programme C pour afficher « Hello World! » sans utiliser de point-virgule (;)
#include <stdio.h>
     
void main()
{      
      if(printf("Hello World!")){} 
}

 

 
 

9. Écrivez un programme pour permuter deux nombres sans utiliser une variable temporaire.
#include <stdio.h>      
#include <conio.h> 

main()      
{      
     int a=20, b=30;    
     clrscr();       
     printf("Avant la permutation a=%d b=%d",a,b);        
     a=a+b;       
     b=a-b;    
     a=a-b;      
     printf("Aprés la permutation a=%d b=%d",a,b);      
     getch();      
}

Sortie:

Avant la permutation a=20 b=30
Aprés la permutation a=30 b=20

 

 
 

10. Comment peut-on afficher une chaîne de caractères contenant le symbole % ?
Il n’existe pas de séquence d’échappement pour le symbole % en C. Ainsi, pour afficher %, nous devons utiliser ‘%%’ comme indiqué ci-dessous.

printf("100%% fonctionnelle!");

Sortie:

100% fonctionnelle!

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *