Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Top 100 questions d'entretien C Programming & Réponses (2024)

Top 100 Questions d'Entretien C Programming & Réponses (2024)

Vous trouverez ci-dessous des réponses concises, de niveau expert, aux questions d'entretien C les plus fréquemment posées. Chaque réponse est rédigée pour démontrer une expertise claire, une expérience réelle et une connaissance autoritaire tout en restant engageante et fiable.

1) Comment construire une instruction d'incrémentation ou de décrémentation en C ?

Vous pouvez utiliser les opérateurs unaires ++ et -- ou les opérateurs arithmétiques. Par exemple, x++ ou x = x + 1 incrémentent x de un, tandis que x-- ou x = x - 1 le décrémentent.

2) Quelle est la différence entre passage par valeur et passage par référence ?

Le passage par valeur passe une copie de la valeur de la variable ; la fonction ne peut pas modifier l'original. Le passage par référence passe l'adresse de la variable, permettant à la fonction de modifier la valeur originale directement.

3) Comment la mise en commentaire de code aide-t-elle au débogage ?

Mettre en commentaire des sections (ex. /* ... */) retire temporairement le code de l'exécution tout en le préservant pour une réactivation rapide. Cela isole les sources potentielles d'erreurs sans supprimer les lignes originales.

4) Convertir la boucle for suivante en boucle while :
for (a = 1; a <= 100; a++) printf("%d\n", a * a);

Réponse :

a = 1; while (a <= 100) { printf("%d\n", a * a); a++; }
5) Qu'est-ce qu'une pile (stack) ?

Une pile est une structure de données Last-In-First-Out (LIFO). Les opérations incluent PUSH (ajouter) et POP (retirer). Seul l'élément du sommet est directement accessible.

6) Qu'est-ce qu'un fichier à accès séquentiel ?

Les données sont stockées un enregistrement après l'autre. Pour lire un enregistrement spécifique, il faut parcourir le fichier séquentiellement jusqu'à l'atteindre.

7) Qu'est-ce que l'initialisation de variable et pourquoi est-elle importante ?

Initialiser assigne une valeur connue à une variable avant utilisation. Les variables non initialisées contiennent des valeurs indéterminées, conduisant à un comportement imprévisible.

8) Qu'est-ce que la programmation spaghetti ?

Le code spaghetti désigne un code emmêlé, non structuré, difficile à lire et maintenir. Il résulte généralement d'un manque de planification et engendre un flux de contrôle complexe.

9) Différencier code source et code objet.

Le code source (.c) est du texte C lisible par l'humain. Le compilateur le traduit en code objet (.obj ou .o), lisible par la machine et pouvant être lié en un exécutable.

10) Comment afficher des guillemets en C ?

Utilisez les séquences d'échappement : \' pour guillemets simples et \" pour guillemets doubles dans les chaînes printf.

11) Quel est le but du caractère \0 ?

Il marque la fin d'un littéral de chaîne en C, permettant aux fonctions comme strlen et printf de déterminer où la chaîne se termine.

12) Différence entre = et == ?

= assigne une valeur à une variable ; == compare deux valeurs pour l'égalité.

13) Qu'est-ce que l'opérateur modulo ?

Noté %, il retourne le reste d'une division entière. Exemple : 10 % 3 donne 1.

14) Qu'est-ce qu'une boucle imbriquée ?

Une boucle à l'intérieur d'une autre boucle. La boucle interne s'exécute complètement pour chaque itération de la boucle externe.

15) Quel opérateur est incorrect : >=, <=, <>, == ?

En C, <> est invalide ; le bon opérateur « différent » est !=.

16) Comparer compilateurs et interpréteurs.

Les compilateurs traduisent tout le programme en code machine avant exécution, détectant toutes les erreurs de syntaxe en amont. Les interpréteurs exécutent ligne par ligne et s'arrêtent à la première erreur.

17) Comment déclarer une variable chaîne ?

Utilisez un tableau de caractères : char name[50]; alloue de l'espace pour jusqu'à 49 caractères plus le terminateur nul.

18) Les accolades peuvent-elles englober une seule ligne de code ?

Oui. Bien qu'optionnelles pour une instruction unique, les accolades améliorent la lisibilité et réduisent les erreurs lors d'extensions futures.

19) Que sont les fichiers d'en-tête et leurs usages ?

Les fichiers d'en-tête (.h) contiennent des prototypes de fonctions et définitions. Les inclure (#include <stdio.h>) rend disponibles les fonctions standard comme printf.

20) Qu'est-ce qu'une erreur de syntaxe ?

Une erreur dans le code qui viole la grammaire du langage, comme un point-virgule manquant ou un mot-clé mal orthographié.

21) Variables vs constantes.

Les variables peuvent changer pendant l'exécution ; les constantes sont fixées à la compilation. Utilisez #define ou const pour des valeurs immuables.

22) Accès aux éléments d'un tableau.

Les éléments sont indexés de 0 à size-1. Pour int scores[5];, les indices valides sont 0–4.

23) int peut-il stocker 32768 ?

Non. int va généralement de –32768 à 32767 sur systèmes 16 bits. Utilisez long ou unsigned int pour des valeurs plus grandes.

24) Combinaison de séquences d'échappement.

Oui. Exemple : printf("Hello\n\tWorld"); affiche « Hello » sur une ligne, suivi d'un « World » tabulé.

25) Pourquoi ne pas inclure tous les fichiers d'en-tête ?

Seuls les en-têtes nécessaires aux fonctions utilisées doivent être inclus. Les en-têtes inutiles gonflent les temps de compilation et la taille du binaire.

26) Quand void est-il utilisé ?

Dans une signature de fonction, void indique que la fonction ne retourne aucune valeur, ex. void display(void).

27) Que sont les instructions composées ?

Blocs de code entourés d'accolades exécutés comme une seule unité, souvent dans if ou boucles.

28) Signification d'un algorithme.

Les algorithmes fournissent un plan étape par étape pour résoudre un problème, guidant la logique du programme et assurant la correction.

29) Avantage des tableaux sur les variables individuelles.

Les tableaux permettent un stockage et une manipulation efficaces de données liées avec un seul identifiant et un index, réduisant l'encombrement du code.

30) Boucle pour afficher des nombres incrémentaux :
for (int a = 1; a <= 5; a++) { for (int b = 1; b <= a; b++) printf("%d", b); printf("\n"); }
31) Problème avec scanf("%d", whatnumber);

Point-virgule manquant : scanf("%d", &whatnumber); passe l'adresse de la variable.

32) Génération de nombres aléatoires.

Utilisez rand() après initialisation avec srand(time(NULL));. Exemple : int anyNum = rand();

33) Erreur tolower() non défini.

Incluez l'en-tête approprié : #include <ctype.h>.

34) Comment insérer des commentaires.

Ligne unique : // commentaire ; multi-lignes : /* commentaire */.

35) Qu'est-ce que le débogage ?

Processus systématique de localisation et correction d'erreurs pour assurer que le programme produit la sortie attendue.

36) Fonction de &&.

ET logique : toutes les conditions doivent être vraies pour que l'expression globale évalue à vrai.

37) Déterminer pair ou impair.

Vérifiez le reste : if (num % 2 == 0) printf("PAIR"); else printf("IMPAIR");

38) Signification de %10.2 dans printf.

Réserve 10 espaces pour le nombre et affiche 2 décimales.

39) Erreurs logiques vs erreurs de syntaxe.

Les erreurs logiques compilent mais produisent des résultats incorrects ; les erreurs de syntaxe empêchent la compilation.

40) Types de structures de contrôle.

Séquence, Sélection (if/else, switch), et Répétition (boucles).

41) Fonction de ||.

OU logique : si une condition est vraie, l'expression est vraie.

42) if peut-il comparer des chaînes ?

Non. Utilisez strcmp() pour la comparaison de chaînes.

43) Que sont les directives de préprocesseur ?

Instructions traitées avant la compilation, comme #include et #define.

44) Résultat de s >=10 && s < 25 && s!=12 quand s vaut 10.

Vrai, car toutes les comparaisons individuelles évaluent à vrai.

45) Priorité des opérateurs en C.

Unaire !, +, -, *, /, %, + -, relationnels (< > <= >=), égalité (== !=), logiques (&& ||), assignation (=).

46) Assignation correcte à une variable chaîne.

Utilisez strcpy(myName, "Robin"); au lieu de myName = "Robin";.

47) Déterminer la longueur d'une chaîne.

Appelez strlen(). Exemple : int len = strlen(FullName);

48) Initialiser une variable à la déclaration.

Oui. Exemple : char planet[15] = "Earth";

49) Pourquoi C est un langage de niveau intermédiaire ?

C mélange abstractions haut niveau et manipulation mémoire bas niveau, offrant à la fois lisibilité et performance.

50) Extensions de fichiers en C.

Source : .c, En-tête : .h, Objet : .o ou .obj, Exécutable : .exe.

51) Que sont les mots réservés ?

Mots-clés définis par C ayant une signification spéciale (ex. int, return). Ils ne peuvent pas être utilisés comme identificateurs.

52) Qu'est-ce qu'une liste chainée ?

Structure de données dynamique composée de nœuds connectés via pointeurs, permettant insertions et suppressions efficaces.

53) Qu'est-ce que FIFO ?

First-In-First-Out ; utilisé dans les files où le premier élément enfile est le premier défilé.

54) Que sont les arbres binaires ?

Structures de données arborescentes où chaque nœud a au plus deux enfants, facilitant les opérations de recherche efficaces.

55) Les mots réservés sont-ils sensibles à la casse ?

Faux. Tous les mots réservés doivent être en minuscules ; sinon le compilateur les traite comme identificateurs.

56) Différence entre ++a et a++.

Pré-incrémentation (++a) augmente a avant d'utiliser sa valeur ; post-incrémentation (a++) utilise la valeur courante puis incrémente.

57) Effet de X += 15; quand X vaut 5.

Résultat : X devient 20.

58) NAME, name, Name sont-ils identiques ?

Faux. C est sensible à la casse.

59) Qu'est-ce qu'une boucle infinie ?

Aussi appelée boucle sans fin ; elle s'exécute indéfiniment car la condition de boucle ne devient jamais false.

60) Qu'est-ce qu'un organigramme de programme ?

Diagramme visuel décrivant la séquence d'opérations, points de décision et boucles dans un programme.

61) Problème avec void = 10;.

'void' est un type réservé ; il ne peut pas être utilisé comme nom de variable.

62) Validité de INT = 10.50;.

Seulement si INT est un identifiant utilisateur (pas le mot-clé int). Le mot-clé doit être en minuscules.

63) Que sont les arguments effectifs ?

Valeurs passées à une fonction lors de l'appel ; elles correspondent aux paramètres formels de la fonction.

64) Qu'est-ce qu'une séquence d'échappement de nouvelle ligne ?

Représentée par \n, elle déplace le curseur à la ligne suivante.

65) Qu'est-ce que la redirection de sortie ?

Utilisation d'opérateurs shell comme > pour envoyer la sortie du programme vers un fichier au lieu de la console.

66) Que sont les erreurs d'exécution ?

Erreurs survenant pendant l'exécution du programme (ex. division par zéro, déréférencement pointeur nul).

67) Différence entre abs() et fabs().

Les deux retournent des valeurs absolues ; abs() pour entiers (stdlib.h), fabs() pour flottants (math.h).

68) Que sont les paramètres formels ?

Variables déclarées dans la définition de fonction qui reçoivent les arguments effectifs lors d'un appel.

69) Que sont les structures de contrôle ?

Mécanismes déterminant l'ordre d'exécution : séquence, sélection, répétition.

70) Vérifier si un nombre est positif ou négatif.
if (num >= 0) printf("number is positive"); else printf("number is negative");
71) Quand utiliser switch plutôt que if ?

Quand une seule variable entière ou caractère peut prendre de nombreuses valeurs discrètes ; switch offre un branchement plus clair et efficace.

72) Que sont les variables globales et comment les déclarer ?

Variables déclarées en dehors de toutes les fonctions ; accessibles dans tout le fichier. Exemple : int counter; avant int main().

73) Que sont les types énumérés ?

Types entiers personnalisés définis avec enum, assignant des noms symboliques à des valeurs constantes.

74) Que fait toupper() ?

Convertit un caractère alphabétique minuscule en son équivalent majuscule (bibliothèque standard C).

75) Les fonctions peuvent-elles être passées comme arguments ?

Oui. Passez un pointeur de fonction à une autre fonction, ex. void sort(int (*cmp)(int, int));

76) Que sont les tableaux multidimensionnels ?

Tableaux à deux indices ou plus, comme int matrix[3][4];, utiles pour tableaux ou grilles.

77) Fonction pour ajouter une chaîne à une autre.

Utilisez strcat(dest, src); depuis string.h.

78) Différence entre getch() et getche().

getch() lit un caractère sans écho ; getche() affiche le caractère à la console.

79) scanf("%c", &letter) et letter = getchar() donnent-ils le même résultat ?

Oui, les deux lisent le caractère suivant depuis l'entrée standard et le stockent dans letter.

80) Que sont les types structure ?

Types de données composites regroupant des variables liées en une seule entité.

81) Signification de r et w dans les modes de fichier.

'r' ouvre un fichier en lecture ; 'w' ouvre en écriture, tronquant le contenu existant.

82) Fichiers texte vs binaires.

Les fichiers texte contiennent des caractères lisibles ; les fichiers binaires stockent des octets bruts pour un traitement machine efficace.

83) Peut-on créer ses propres fichiers d'en-tête ?

Oui. Créez un fichier avec extension .h, incluez les prototypes, et #include "myheader.h" dans votre source.

84) Qu'est-ce qu'une structure de données dynamique ?

Structures allouant de la mémoire à l'exécution (ex. listes chainées, arbres) utilisant malloc() et free().

85) Différents types de données en C.

Types de base : int, char, float, double. Chacun sert des besoins de stockage distincts.

86) Forme générale d'un programme C.

Directives de préprocesseur, définitions de types, variables globales, main(), déclarations locales, instructions, et valeur de retour.

87) Avantage des fichiers à accès direct.

Sauter directement à tout enregistrement avec fseek(), accélérant les recherches vs accès séquentiel.

88) Effet d'omettre break dans un switch.

Le « fall-through » se produit : l'exécution continue dans le bloc case suivant, causant potentiellement un comportement non voulu.

89) Passage de tableaux aux fonctions.

Passez un pointeur vers le premier élément : void func(int arr[]); ou void func(int *arr);.

90) Que sont les pointeurs ?

Variables contenant des adresses mémoire, permettant la manipulation indirecte des données et la gestion mémoire dynamique.

91) Passage de structures entières aux fonctions.

Autorisé ; la structure entière est copiée sauf si passée par pointeur, ce qui évite la duplication.

92) Qu'est-ce que gets() ?

Lit une ligne complète dans un tampon jusqu'à une nouvelle ligne. Déprécié à cause du risque de débordement de tampon ; utilisez fgets() à la place.

93) Afficher un signe pourcent.

Échappez avec %% dans printf.

94) Recherche dans fichier à accès direct.

Utilisez fseek() pour déplacer le pointeur de fichier à l'offset désiré, puis lisez l'enregistrement.

95) Les commentaires sont-ils compilés ?

Non. Les commentaires sont supprimés lors du préprocesseur et n'apparaissent pas dans l'exécutable.

96) Fonction de tri intégrée.

Utilisez qsort() depuis stdlib.h pour le tri générique.

97) Avantages et inconvénients du tas (heap).

Avantages : allocation flexible, dynamique ; Inconvénients : accès plus lent, fragmentation.

98) Conversion de chaînes en nombres.

Utilisez atoi() pour entiers, atof() pour flottants, et atol() pour longs.

99) Échanger deux variables.
int temp = num1; num1 = num2; num2 = temp;
100) But d'un point-virgule.

Il termine les instructions, permettant au compilateur d'analyser et séparer les instructions distinctes.

Téléchargement PDF gratuit : Questions & Réponses d'Entretien C Programming

Langue C

  1. Guide d'Entretien Cloud 2024 : Questions & Réponses d'Expert
  2. Top 10 des ordinateurs monocarte 2021 : performance, consommation et applications
  3. Automatisation de l'injection : regards d'experts et tendances émergentes
  4. Les 3 principaux défis de la préparation des données IoT pour le succès industriel
  5. Principales plateformes d'analytique IoT basées sur le cloud pour 2026
  6. Le guide définitif des 10 meilleures plateformes IoT industrielles (2024)
  7. Huit Modèles Clés de Cloud Computing en 2021
  8. Top 17 des livres de programmation pour améliorer vos compétences en codage en 2021
  9. Choisir entre Data Matrix et QR Codes : lequel est le meilleur pour votre entreprise