Top 100 des questions et réponses d'entretien de programmation C (PDF)
Voici les questions et réponses d'entretien de programmation C pour les candidats les plus récents et les plus expérimentés pour obtenir l'emploi de leurs rêves.
Questions et réponses d'entretien de programmation C de base pour les débutants
1) Comment construire une instruction d’incrémentation ou de décrémentation en C ?
Il existe en fait deux façons de procéder. La première consiste à utiliser l’opérateur d’incrémentation ++ et l’opérateur de décrémentation –. Par exemple, l'instruction « x++ » signifie incrémenter la valeur de x de 1. De même, l'instruction « x – » signifie décrémenter la valeur de x de 1. Une autre façon d'écrire les instructions d'incrémentation consiste à utiliser le signe + plus conventionnel. ou – signe moins. Dans le cas de « x++ », une autre façon de l’écrire est « x = x +1 ».
👉 Téléchargement PDF gratuit : Questions et réponses d'entretien de programmation C >>
2) Quelle est la différence entre l’appel par valeur et l’appel par référence ?
Lorsque vous utilisez Call by Value, vous envoyez la valeur d'une variable en tant que paramètre à une fonction, tandis que Call by Reference envoie l'adresse de la variable. De plus, sous Appel par valeur, la valeur du paramètre n'est pas affectée par l'opération effectuée, tandis que dans le cas d'un appel par référence, les valeurs peuvent être affectées par le processus au sein de la fonction.
3) Certains codeurs déboguent leurs programmes en plaçant des symboles de commentaires sur certains codes au lieu de les supprimer. Comment cela aide-t-il au débogage ?
Placer des symboles de commentaire /* */ autour d'un code, également appelé « commentaire », est un moyen d'isoler certains codes qui, selon vous, pourraient provoquer des erreurs dans le programme, sans supprimer le code. L'idée est que si le code est effectivement correct, vous supprimez simplement les symboles de commentaire et continuez. Cela vous évite également de devoir retaper les codes si vous les avez supprimés en premier lieu.
4) Quel est le code équivalent de l'instruction suivante au format WHILE LOOP ?
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 ?
Une pile est une forme de structure de données. Les données sont stockées dans des piles en utilisant l'approche FILO (First In Last Out). Dans un cas particulier, seul le haut de la pile est accessible, ce qui signifie que pour récupérer les données stockées à l'intérieur de la pile, celles de la partie supérieure doivent être extraites en premier. Le stockage de données dans une pile est également appelé PUSH, tandis que la récupération de données est appelée POP.
6) Qu'est-ce qu'un fichier à accès séquentiel ?
Lors de l'écriture de programmes destinés à stocker et à récupérer des données dans un fichier, il est possible de désigner ce fichier sous différentes formes. Un fichier à accès séquentiel est tel que les données sont enregistrées dans un ordre séquentiel : une donnée est placée dans le fichier l'une après l'autre. Pour accéder à une donnée particulière dans le fichier à accès séquentiel, les données doivent être lues une donnée à la fois, jusqu'à ce que la bonne soit atteinte.
7) Qu'est-ce que l'initialisation d'une variable et pourquoi est-elle importante ?
Il s'agit du processus dans lequel une variable se voit attribuer une valeur initiale avant d'être utilisée dans le programme. Sans initialisation, une variable aurait une valeur inconnue, ce qui peut conduire à des résultats imprévisibles lorsqu'elle est utilisée dans des calculs ou d'autres opérations.
8 Qu'est-ce que la programmation spaghetti ?
La programmation spaghetti fait référence à des codes qui ont tendance à s'emmêler et à se chevaucher tout au long du programme. Cette approche non structurée du codage est généralement attribuée au manque d’expérience du programmeur. La programmation spaghetti rend un programme complexe et rend l'analyse des codes difficile, et doit donc être évitée autant que possible.
9) Différencier les codes sources des codes objets
Les codes sources sont des codes écrits par le programmeur. Il est composé de commandes et d'autres mots-clés de type anglais censés indiquer à l'ordinateur quoi faire. Cependant, les ordinateurs ne seraient pas capables de comprendre les codes sources. Par conséquent, les codes sources sont compilés à l’aide d’un compilateur. Les sorties résultantes sont des codes objets, qui sont dans un format compréhensible par le processeur informatique. Dans programmation C, les codes sources sont enregistrés avec l'extension de fichier .C, tandis que les codes objets sont enregistrés avec l'extension de fichier .OBJ.
10) En programmation C, comment insérer des guillemets (« et ») dans l'écran de sortie ?
Il s'agit d'un problème courant pour les débutants car les guillemets font normalement partie d'une instruction printf. Pour insérer le caractère guillemet dans la sortie, utilisez les spécificateurs de format \' (pour les guillemets simples) et \” (pour les guillemets doubles).
11) A quoi sert le caractère '\0' ?
Il est appelé caractère nul de fin et est principalement utilisé pour afficher la fin d'une valeur de chaîne.
12) Quelle est la différence entre le symbole = et le symbole == ?
Le symbole = est souvent utilisé dans les opérations mathématiques. Il est utilisé pour attribuer une valeur à une variable donnée. D'autre part, le symbole ==, également appelé « égal à » ou « équivalent à », est un opérateur relationnel utilisé pour comparer deux valeurs.
13) Qu'est-ce que l'opérateur module ?
L'opérateur de module génère le reste d'une division. Il utilise le symbole de pourcentage (%). Par exemple : 10 % 3 = 1, ce qui signifie que lorsque vous divisez 10 par 3, le reste est 1.
14) Qu'est-ce qu'une boucle imbriquée ?
Une boucle imbriquée est une boucle qui s'exécute dans une autre boucle. Autrement dit, vous avez une boucle interne qui se trouve à l’intérieur d’une boucle externe. Dans ce scénario, la boucle interne est exécutée un certain nombre de fois comme spécifié par la boucle externe. Pour chaque tour sur la boucle externe, la boucle interne est d'abord effectuée.
15) Lequel des opérateurs suivants est incorrect et pourquoi ? ( >=, <=, <>, ==)
<> est incorrect. Bien que cet opérateur soit correctement interprété comme « différent de » dans l'écriture d'instructions conditionnelles, ce n'est pas l'opérateur approprié à utiliser dans programmation C. Au lieu de cela, l'opérateur != doit être utilisé pour indiquer la condition « différent de ».
16) Comparez et contrastez les compilateurs des interprètes.
Les compilateurs et les interprètes s'occupent souvent de la manière dont les codes de programme sont exécutés. Les interprètes exécutent les codes de programme ligne par ligne, tandis que les compilateurs prennent le programme dans son ensemble et le convertissent en code objet avant de l'exécuter. La principale différence ici est que dans le cas des interpréteurs, un programme peut rencontrer des erreurs de syntaxe au milieu de l'exécution et s'arrêtera à partir de là. D'un autre côté, les compilateurs vérifient la syntaxe de l'ensemble du programme et ne procéderont à l'exécution que lorsqu'aucune erreur de syntaxe n'est trouvée.
17) Comment déclarer une variable qui contiendra des valeurs de chaîne ?
Le mot-clé char ne peut contenir qu’une seule valeur de caractère à la fois. En créant un tableau de caractères, vous pouvez y stocker des valeurs de chaîne. Exemple : « char MonNom[1] ; " déclare une variable chaîne nommée MyName pouvant contenir un maximum de 50 caractères.
18) Les accolades { } peuvent-elles être utilisées pour entourer une seule ligne de code ?
Bien que les accolades soient principalement utilisées pour regrouper plusieurs lignes de codes, elles fonctionneront toujours sans erreur si vous les utilisez pour une seule ligne. Certains programmeurs préfèrent cette méthode pour organiser les codes afin de les rendre plus clairs, en particulier dans les instructions conditionnelles.
19) Que sont les fichiers d'en-tête et quelles sont leurs utilisations en programmation C ?
Les fichiers d'en-tête sont également appelés fichiers de bibliothèque. Ils contiennent deux choses essentielles : les définitions et les prototypes des fonctions utilisées dans un programme. En termes simples, les commandes que vous utilisez dans la programmation C sont en fait des fonctions définies à partir de chaque fichier d'en-tête. Chaque fichier d'en-tête contient un ensemble de fonctions. Par exemple : stdio.h est un fichier d'en-tête qui contient la définition et les prototypes de commandes comme printf et scanf.
20) Qu’est-ce qu’une erreur de syntaxe ?
Les erreurs de syntaxe sont associées à des erreurs dans l'utilisation d'un langage de programmation. Il peut s'agir d'une commande mal orthographiée ou d'une commande qui doit être saisie en mode minuscule mais qui a été saisie avec un caractère majuscule. Un symbole mal placé, ou une absence de symbole, quelque part dans une ligne de code peut également entraîner une erreur de syntaxe.
21) Que sont les variables et en quoi sont-elles différentes des constantes ?
Les variables et les constantes peuvent à première vue se ressembler dans le sens où les deux sont des identifiants composés d'un ou plusieurs caractères (lettres, chiffres et quelques symboles autorisés). Les deux auront également une valeur particulière. Les valeurs détenues par une variable peuvent être modifiées tout au long du programme et peuvent être utilisées dans la plupart des opérations et calculs. Les constantes reçoivent des valeurs une seule fois, placées au début d'un programme. Cette valeur n'est pas modifiée dans le programme. Par exemple, vous pouvez attribuer une constante nommée PI et lui attribuer une valeur 3.1415 . Vous pouvez ensuite l'utiliser comme PI dans le programme, au lieu de devoir écrire 3.1415 à chaque fois que vous en avez besoin.
22) Comment accéder aux valeurs d'un tableau ?
Les tableaux contiennent un certain nombre d'éléments, en fonction de la taille que vous leur avez donnée lors de la déclaration des variables. Chaque élément se voit attribuer un numéro de 0 au nombre d'éléments-1. Pour attribuer ou récupérer la valeur d'un élément particulier, reportez-vous au numéro de l'élément. Par exemple : si vous avez une déclaration qui dit « intscores[5]; », alors vous avez 5 éléments accessibles, à savoir : scores[0], scores[1], scores[2], scores[3] et scores[4 ].
23) Puis-je utiliser le type de données « int » pour stocker la valeur 32768 ? Pourquoi?
Le type de données « int » est capable de stocker des valeurs comprises entre -32768 32767 et 32768 . Pour stocker , vous pouvez utiliser « long int » à la place. Vous pouvez également utiliser « unsigned int », en supposant que vous n'avez pas l'intention de stocker des valeurs négatives.
24) Deux opérateurs ou plus tels que \n et \t peuvent-ils être combinés dans une seule ligne de code de programme ?
Oui, il est tout à fait valable de regrouper des opérateurs, surtout si le besoin s'en fait sentir.
Par exemple : vous pouvez avoir un code comme printf (“Hello\n\n\’World\'”)
pour afficher le texte « Bonjour » sur la première ligne et « Monde » entre guillemets simples pour apparaître sur les deux lignes suivantes.
25) Pourquoi tous les fichiers d'en-tête ne sont-ils pas déclarés dans chaque programme C ?
Le choix de déclarer un fichier d'en-tête en haut de chaque programme C dépendra des commandes/fonctions que vous utiliserez dans ce programme. Étant donné que chaque fichier d'en-tête contient des définitions de fonctions et un prototype différents, vous n'utiliserez que les fichiers d'en-tête qui contiendront les fonctions dont vous aurez besoin. Déclarer tous les fichiers d'en-tête dans chaque programme ne ferait qu'augmenter la taille globale des fichiers et la charge du programme, et n'est pas considéré comme un bon style de programmation.
26) Quand le mot-clé « void » est-il utilisé dans une fonction ?
Lors de la déclaration de fonctions, vous déciderez si cette fonction renverra une valeur ou non. Si cette fonction ne renvoie pas de valeur, par exemple lorsque le but d'une fonction est d'afficher certaines sorties à l'écran, alors « void » doit être placé dans la partie la plus à gauche de l'en-tête de la fonction. Lorsqu'une valeur de retour est attendue après l'exécution de la fonction, le type de données de la valeur de retour est placé à la place de « void ».
27) Que sont les déclarations composées ?
Les instructions composées sont constituées de deux ou plusieurs instructions de programme exécutées ensemble. Cela se produit généralement lors du traitement de conditions dans lesquelles une série d'instructions est exécutée lorsqu'un VRAI ou un FAUX est évalué. Les instructions composées peuvent également être exécutées dans une boucle. Les accolades { } sont placées avant et après les instructions composées.
28) Quelle est l'importance d'un algorithme pour la programmation C ?
Avant de pouvoir écrire un programme, un algorithme doit d’abord être créé. Un algorithme fournit une procédure étape par étape sur la façon dont une solution peut être dérivée. Il sert également de modèle sur la manière dont un programme va démarrer et se terminer, y compris les processus et les calculs impliqués.
29) Quel est l'avantage d'un tableau par rapport aux variables individuelles ?
Lors du stockage de plusieurs données associées, c'est une bonne idée d'utiliser des tableaux. En effet, les tableaux sont nommés en utilisant un seul mot suivi d'un numéro d'élément. Par exemple : pour stocker les 1 résultats de tests d'un élève, on peut utiliser 10 noms de variables différents (grade1, grade10, grade1… grade2). Avec les tableaux, un seul nom est utilisé, les autres sont accessibles via le nom de l'index (grade[3], grade[10], grade[1]… grade[0]).
30) Écrivez une instruction de boucle qui affichera le résultat suivant :
1
12
123
1234
12345
Réponse:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
Questions et réponses d'entretien de programmation C pour les expérimentés
31) Qu’est-ce qui ne va pas dans cette affirmation ? scanf("%d",quelnuméro);
Une esperluette & le symbole doit être placé avant le nom de la variable quelnuméro. Placer & signifie que toute valeur entière saisie par l'utilisateur est stockée à « l'adresse » du nom de la variable. Il s’agit d’une erreur courante chez les programmeurs, conduisant souvent à des erreurs logiques.
32) Comment générer des nombres aléatoires en C ?
Les nombres aléatoires sont générés en C en utilisant le rand() command
. Par exemple: anyNum = rand()
générera n'importe quel nombre entier commençant à 0, en supposant que anyNum est une variable de type entier.
33) Quel pourrait être le problème si un nom de fonction valide tel que tolower() est signalé par le compilateur C comme étant indéfini ?
La raison la plus probable derrière cette erreur est que le fichier d'en-tête de cette fonction n'était pas indiqué en haut du programme. Les fichiers d'en-tête contiennent la définition et le prototype des fonctions et commandes utilisées dans un programme C. Dans le cas de « tolower() », le code « #include » doit être présent au début du programme.
34) Que sont les commentaires et comment les insérer dans un programme C ?
Commentaires sont un excellent moyen de mettre des remarques ou une description dans un programme. Il peut servir de rappel sur le but du programme ou de description de la raison pour laquelle un certain code ou une certaine fonction y a été placé en premier lieu. Les commentaires commencent par /* et se terminent par les caractères */. Les commentaires peuvent comporter une seule ligne ou même s’étendre sur plusieurs lignes. Il peut être placé n'importe où dans le programme.
35) Qu’est-ce que le débogage ?
Le débogage est le processus d'identification des erreurs dans un programme. Lors de la compilation du programme, les erreurs détectées arrêteront complètement l’exécution du programme. Dans cet état, le programmeur examinerait les parties possibles où l'erreur s'est produite. Le débogage garantit la suppression des erreurs et joue un rôle important en garantissant que le résultat attendu du programme est atteint.
36) Que fait l'opérateur && dans un code de programme ?
Le && est également appelé opérateur AND. Lors de l'utilisation de cet opérateur, toutes les conditions spécifiées doivent être VRAIES avant que l'action suivante puisse être effectuée. Si vous avez 10 conditions et que toutes sauf une ne parviennent pas à être évaluées comme VRAI, l'intégralité de l'instruction de condition est déjà évaluée comme FAUX.
37) En programmation C, quelle commande ou quel code peut être utilisé pour déterminer si un nombre est pair ou impair ?
Il n'y a pas de commande unique ou fonction en C qui peut vérifier si un nombre est pair ou impair. Cependant, cela peut être accompli en divisant ce nombre par 2, puis en vérifiant le reste. Si le reste est 0, alors ce nombre est pair, sinon il est impair. Vous pouvez l'écrire en code comme suit :
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) Que signifie le format %10.2 lorsqu'il est inclus dans une instruction printf ?
Ce format est utilisé pour deux choses : définir le nombre d'espaces alloués pour le numéro de sortie et définir le nombre de décimales. Le nombre avant la virgule décimale correspond à l'espace alloué, dans ce cas, il attribuerait 10 espaces pour le numéro de sortie. Si le nombre d'espace occupé par le numéro de sortie est inférieur à 10, des espaces supplémentaires seront insérés avant le numéro de sortie réel. Le nombre après la virgule définit le nombre de décimales, dans ce cas, il s'agit de 2 espaces décimaux.
39) Que sont les erreurs logiques et en quoi diffèrent-elles des erreurs de syntaxe ?
Les programmes contenant des erreurs logiques ont tendance à réussir le processus de compilation, mais le résultat obtenu peut ne pas être celui attendu. Cela se produit lorsqu'une mauvaise formule a été insérée dans le code ou qu'une mauvaise séquence de commandes a été exécutée. Les erreurs de syntaxe, en revanche, concernent des commandes incorrectes, mal orthographiées ou non reconnues par le compilateur.
40) Quels sont les différents types de structures de contrôle en programmation ?
Il existe 3 structures de contrôle principales en programmation : Séquence, Sélection et Répétition. Le contrôle séquentiel suit un flux de haut en bas lors de l'exécution d'un programme, de telle sorte que l'étape 1 est exécutée en premier, suivie de l'étape 2, jusqu'à ce que la dernière étape soit exécutée. La sélection concerne les instructions conditionnelles, ce qui signifie que les codes sont exécutés en fonction de l'évaluation des conditions comme étant VRAI ou FAUX. Cela signifie également que tous les codes ne peuvent pas être exécutés et qu'il existe des flux alternatifs à l'intérieur. Les répétitions sont également connues sous le nom de structures de boucle et répéteront une ou deux instructions de programme définies par un compteur.
41) Qu'est-ce que || opérateur et comment fonctionne-t-il dans un programme ?
Le || est également connu sous le nom d'opérateur OR en programmation C. Lors de l'utilisation de || pour évaluer les conditions logiques, toute condition évaluée à VRAI rendra l'intégralité de l'instruction de condition comme VRAI.
42) La fonction « if » peut-elle être utilisée pour comparer des chaînes ?
Non. La commande « if » ne peut être utilisée que pour comparer des valeurs numériques et des valeurs à caractère unique. Pour comparer les valeurs de chaînes, il existe une autre fonction appelée strcmp qui traite spécifiquement des chaînes.
43) Que sont les directives du préprocesseur ?
Les directives du préprocesseur sont placées au début de chaque programme C. C'est ici que les fichiers de bibliothèque sont spécifiés, ce qui dépend des fonctions qui doivent être utilisées dans le programme. Une autre utilisation des directives du préprocesseur est la déclaration de constantes. Les directives du préprocesseur commencent par le symbole #.
44) Quel sera le résultat de l'instruction conditionnelle suivante si la valeur de la variable s est 10 ?
s >=10 && s < 25 && s!=12
Le résultat sera VRAI. Puisque la valeur de s est 10, s >= 10 est évalué comme VRAI car s n'est pas supérieur à 10 mais est toujours égal à 10. s< 25 est également VRAI puisque 10 est inférieur à 25. De même, s!=12 , ce qui signifie que s n'est pas égal à 12, est évalué à TRUE. Le && est l'opérateur AND et suit la règle selon laquelle si toutes les conditions individuelles sont VRAIES, l'instruction entière est VRAIE.
45) Décrivez l'ordre de priorité en ce qui concerne les opérateurs en C.
L'ordre de priorité détermine quelle opération doit avoir lieu en premier dans une instruction d'opération ou une instruction conditionnelle. Au niveau de priorité le plus élevé se trouvent les opérateurs unaires !, +, – et &. Il est suivi des opérateurs mathématiques réguliers (*, / et module % en premier, suivis de + et -). Viennent ensuite les opérateurs relationnels <, <=, >= et >. Ceci est ensuite suivi des deux opérateurs d'égalité == et !=. Les opérateurs logiques && et || sont ensuite évalués. Au dernier niveau se trouve l'opérateur d'affectation =.
46) Qu'est-ce qui ne va pas dans cette affirmation ? monNom = « Robin » ;
Vous ne pouvez pas utiliser le signe = pour attribuer des valeurs à une variable chaîne. Utilisez plutôt la fonction strcpy. L'instruction correcte serait : strcpy(myName, "Robin");
47) Comment déterminer la longueur d'une valeur de chaîne stockée dans une variable ?
Pour obtenir la longueur d'une valeur de chaîne, utilisez la fonction strlen(). Par exemple, si vous disposez d'une variable nommée FullName, vous pouvez obtenir la longueur de la valeur de chaîne stockée en utilisant cette instruction : I = strlen(FullName); la variable I aura maintenant la longueur des caractères de la valeur de la chaîne.
48) Est-il possible d'initialiser une variable au moment où elle a été déclarée ?
Oui, vous n'êtes pas obligé d'écrire une instruction d'affectation distincte après la déclaration de la variable, sauf si vous envisagez de la modifier ultérieurement. Par exemple : char planète[15] = « Terre » ; fait deux choses : il déclare une variable chaîne nommée planète, puis l'initialise avec la valeur « Terre ».
49) Pourquoi le langage C est-il considéré comme un langage de niveau intermédiaire ?
En effet, le langage C est riche en fonctionnalités qui lui permettent de se comporter comme un langage de haut niveau tout en pouvant interagir avec le matériel en utilisant des méthodes de bas niveau. L'utilisation d'une approche de programmation bien structurée, associée à des mots de type anglais utilisés dans les fonctions, en fait un langage de haut niveau. D’un autre côté, C peut accéder directement à des structures de mémoire similaires aux routines du langage assembleur.
50) Quelles sont les différentes extensions de fichiers impliquées lors de la programmation en C ?
Les codes sources en C sont enregistrés avec l'extension de fichier .C. Les fichiers d'en-tête ou les fichiers de bibliothèque portent l'extension de fichier .H. Chaque fois qu'un code source de programme est compilé avec succès, il crée un fichier objet .OBJ et un fichier exécutable .EXE.
51) Que sont les mots réservés ?
Les mots réservés sont des mots qui font partie de la bibliothèque standard du langage C. Cela signifie que les mots réservés ont une signification particulière et ne peuvent donc pas être utilisés à des fins autres que celles pour lesquelles ils sont initialement destinés. Des exemples de mots réservés sont int, void et return.
52) Que sont les listes chaînées ?
Une liste chaînée est composée de nœuds connectés les uns aux autres. En programmation C, les listes chaînées sont créées à l'aide de pointeurs. L'utilisation de listes chaînées est un moyen efficace d'utiliser la mémoire pour le stockage.
53) Qu'est-ce que le FIFO ?
En programmation C, il existe une structure de données appelée file d'attente. Dans cette structure, les données sont stockées et accessibles au format FIFO, ou First-In-First-Out. Une file d'attente représente une ligne dans laquelle les premières données stockées seront également les premières accessibles.
54) Que sont les arbres binaires ?
Les arbres binaires sont en fait une extension du concept de listes chaînées. Un arbre binaire a deux pointeurs, un gauche et un droit. Chaque côté peut en outre se ramifier pour former des nœuds supplémentaires, chaque nœud ayant également deux pointeurs. En savoir plus sur Arbre binaire dans la structure des données Si tu es intéressé.
55) Tous les mots réservés ne sont pas écrits en minuscules. Vrai ou faux?
FAUX. Tous les mots réservés doivent être écrits en minuscules ; sinon, le compilateur C interpréterait cela comme non identifié et invalide.
56) Quelle est la différence entre l'expression « ++a » et « a++ » ?
Dans la première expression, l'incrément se produirait en premier sur la variable a, et la valeur résultante serait celle à utiliser. Ceci est également connu sous le nom d'incrément de préfixe. Dans la deuxième expression, la valeur actuelle de la variable a serait celle à utiliser dans une opération, avant que la valeur de a elle-même ne soit incrémentée. Ceci est également connu sous le nom d'incrément postfix.
57) Qu'arriverait-il à X dans cette expression : X += 15 ; (en supposant que la valeur de X est 5)
X +=15 est une méthode courte pour écrire X = X + 15, donc si la valeur initiale de X est 5, alors 5 + 15 = 20.
58) En langage C, les variables NAME, name et Name sont toutes identiques. Vrai ou faux?
FAUX. Le langage C est un langage sensible à la casse. Par conséquent, NOM, nom et Nom sont trois variables distinctes.
59) Qu'est-ce qu'une boucle sans fin ?
Une boucle sans fin peut signifier deux choses. La première est qu'il a été conçu pour boucler en continu jusqu'à ce que la condition dans la boucle soit remplie, après quoi une fonction break ferait sortir le programme de la boucle. Une autre idée d'une boucle sans fin est lorsqu'une condition de boucle incorrecte a été écrite, provoquant une exécution erronée de la boucle pour toujours. Les boucles sans fin sont souvent appelées boucles infinies.
60) Qu'est-ce qu'un organigramme de programme et en quoi aide-t-il à écrire un programme ?
Un organigramme fournit une représentation visuelle de la procédure étape par étape pour résoudre un problème donné. Les organigrammes sont constitués de symboles, chaque symbole se présentant sous la forme de formes différentes. Chaque forme peut représenter une entité particulière au sein de la structure entière du programme, comme un processus, une condition ou même une phase d'entrée/sortie.
61) Quel est le problème avec cette déclaration de programme ? vide = 10 ;
Le mot void est un mot réservé en langage C. Vous ne pouvez pas utiliser de mots réservés comme variable définie par l'utilisateur.
62) Cet énoncé de programme est-il valide ? INT = 10.50 ;
En supposant que INT est une variable de type float, cette instruction est valide. On pourrait penser que INT est un mot réservé et ne doit pas être utilisé à d’autres fins. Cependant, rappelez-vous que les mots réservés sont exprimés en minuscules, le compilateur C ne les interprétera donc pas comme un mot réservé.
63) Quels sont les vrais arguments ?
Lorsque vous créez et utilisez des fonctions qui doivent effectuer une action sur certaines valeurs données, vous devez transmettre ces valeurs données à cette fonction. Les valeurs transmises à la fonction appelée sont appelées arguments réels.
64) Qu'est-ce qu'une séquence d'échappement de nouvelle ligne ?
Une séquence d'échappement de nouvelle ligne est représentée par le caractère \n. Ceci est utilisé pour insérer une nouvelle ligne lors de l'affichage des données dans l'écran de sortie. Plus d'espaces peuvent être ajoutés en insérant plus de caractères \n. Par exemple, \n\n insérerait deux espaces. Une séquence d'échappement de nouvelle ligne peut être placée avant ou après l'expression de sortie réelle.
65) Qu’est-ce que la redirection de sortie ?
Il s'agit du processus de transfert de données vers une source de sortie alternative autre que l'écran d'affichage. La redirection de sortie permet à un programme de sauvegarder sa sortie dans un fichier. Par exemple, si vous avez un programme nommé COMPUTE, le fait de taper ceci sur la ligne de commande sous COMPUTE > DATA peut accepter les entrées de l'utilisateur, effectuer certains calculs, puis rediriger la sortie vers un fichier nommé DATA, au lieu de l'afficher à l'écran. .
66) Que sont les erreurs d'exécution ?
Ce sont des erreurs qui se produisent lors de l'exécution du programme. Un cas courant dans lequel des erreurs d'exécution peuvent se produire est lorsque vous essayez de diviser un nombre par zéro. Lorsque des erreurs d'exécution se produisent, l'exécution du programme s'interrompt, indiquant quelle ligne de programme a provoqué l'erreur.
67) Quelle est la différence entre les fonctions abs() et fabs() ?
Ces 2 fonctions effectuent essentiellement la même action, qui consiste à obtenir la valeur absolue de la valeur donnée. Abs() est utilisé pour les valeurs entières, tandis que fabs() est utilisé pour les nombres de type flottant. De plus, le prototype de abs() est sous , tandis que fabs() est sous .
68) Que sont les paramètres formels ?
Lors de l'utilisation de fonctions dans un programme C, les paramètres formels contiennent les valeurs transmises par la fonction appelante. Les valeurs sont substituées dans ces paramètres formels et utilisées dans toutes les opérations indiquées dans le corps principal de la fonction appelée.
69) Que sont les structures de contrôle ?
Les structures de contrôle prennent en charge les instructions qui doivent être exécutées dans un programme. Cela signifie que le flux du programme ne passe pas nécessairement d'une instruction à la suivante, mais que certaines parties alternatives peuvent devoir être transmises ou contournées, en fonction du résultat des instructions conditionnelles.
70) Écrivez un fragment de code simple qui vérifiera si un nombre est positif ou négatif
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Quand une instruction « switch » est-elle préférable à une instruction « if » ?
Le manuel de formation instruction switch est mieux utilisé lorsqu’il s’agit de sélections basées sur une seule variable ou expression. Cependant, les instructions switch ne peuvent évaluer que les types de données entiers et caractères.
72) Que sont les variables globales et comment les déclarer ?
Les variables globales sont des variables accessibles et manipulables n'importe où dans le programme. Pour rendre une variable globale, placez la déclaration de variable dans la partie supérieure du programme, juste après la section des directives du préprocesseur.
73) Que sont les types énumérés ?
Les types énumérés permettent au programmeur d'utiliser des mots plus significatifs comme valeurs d'une variable. Chaque élément de la variable de type énuméré est en fait associé à un code numérique. Par exemple, on peut créer une variable de type énuméré nommée DAYS dont les valeurs sont Monday, mardi… dimanche.
74) Que fait la fonction topper() ?
Il est utilisé pour convertir n’importe quelle lettre en mode majuscule. Le prototype de la fonction Toupper() est déclaré dans . Notez que cette fonction ne convertira qu'un seul caractère, et non une chaîne entière.
75) Est-il possible d'avoir une fonction comme paramètre dans une autre fonction ?
Oui, cela est autorisé en programmation C. Il vous suffit d'inclure l'intégralité du prototype de fonction dans le champ de paramètre de l'autre fonction où elle doit être utilisée.
76) Qu'est-ce qu'un tableau multidimensionnel ?
Les tableaux multidimensionnels sont capables de stocker des données dans une structure à deux dimensions ou plus. Par exemple, vous pouvez utiliser un tableau à 2 dimensions pour stocker la position actuelle des pièces dans un jeu d'échecs ou la position des joueurs dans un programme de morpion.
77) Quelle fonction en C peut être utilisée pour ajouter une chaîne à une autre chaîne ?
La fonction strcat. Il faut deux paramètres, la chaîne source et la valeur de la chaîne à ajouter à la chaîne source.
78) Quelle est la différence entre les fonctions getch() et getche() ?
Les deux fonctions accepteront une valeur de saisie de caractères de la part de l'utilisateur. Lors de l'utilisation de getch(), la touche qui a été enfoncée n'apparaîtra pas à l'écran et est automatiquement capturée et affectée à une variable. Lors de l'utilisation de getche(), la touche qui a été appuyée par l'utilisateur apparaîtra à l'écran, tout en étant affectée à une variable.
79) Ces deux instructions de programme effectuent-elles le même résultat ? 1) scanf("%c", &lettre); 2) lettre=getchar()
Oui, ils font tous les deux exactement la même chose, c'est-à-dire accepter la prochaine touche enfoncée par l'utilisateur et l'attribuer à une variable nommée lettre.
80) Que sont les types de structure en C ?
Les types de structure sont principalement utilisés pour stocker des enregistrements. Un enregistrement est composé de champs liés. Cela facilite l’organisation d’un groupe de données associées.
81) Que signifient les caractères « r » et « w » lors de l'écriture de programmes qui utiliseront des fichiers ?
«r» signifie «lire» et ouvrira un fichier en entrée dans lequel les données doivent être récupérées. « w » signifie « écrire » et ouvrira un fichier pour la sortie. Les données précédentes stockées sur ce fichier seront effacées.
82) Quelle est la différence entre les fichiers texte et les fichiers binaires ?
Les fichiers texte contiennent des données facilement compréhensibles par les humains. Il comprend des lettres, des chiffres et d'autres caractères. En revanche, les fichiers binaires contiennent des 1 et des 0 que seuls les ordinateurs peuvent interpréter.
83) est-il possible de créer vos propres fichiers d'en-tête ?
Oui, il est possible de créer un fichier d'en-tête personnalisé. Incluez-y simplement les prototypes de fonctions que vous souhaitez utiliser dans votre programme et utilisez la directive #include suivie du nom de votre fichier d'en-tête.
84) Qu'est-ce que la structure de données dynamique ?
La structure de données dynamique fournit un moyen de stocker les données plus efficacement dans la mémoire. Utiliser Utiliser allocation de mémoire dynamique, votre programme accédera aux espaces mémoire selon ses besoins. Cela contraste avec la structure de données statique, dans laquelle le programmeur doit indiquer un nombre fixe d'espace mémoire à utiliser dans le programme.
85) Quels sont les différents types de données en C ?
Les bases types de données en C sont int, char et float. Int est utilisé pour déclarer des variables qui stockeront des valeurs entières. Float est utilisé pour stocker des nombres réels. Char peut stocker des valeurs de caractères individuelles.
86) Quelle est la forme générale d'un programme C ?
Le programme AC commence par les directives du préprocesseur, dans lesquelles le programmeur spécifie quel fichier d'en-tête et quelles constantes (le cas échéant) être utilisées. Ceci est suivi du titre de la fonction principale. Dans la fonction principale se trouvent la déclaration de variable et l'instruction de programme.
87) Quel est l'avantage d'un fichier à accès aléatoire ?
Si la quantité de données stockées dans un fichier est assez importante, l'utilisation de l'accès aléatoire vous permettra d'y effectuer une recherche plus rapide. S'il s'agissait d'un fichier à accès séquentiel, vous devrez parcourir un enregistrement à la fois jusqu'à ce que vous atteigniez les données cibles. Un fichier à accès aléatoire vous permet d'accéder directement à l'adresse cible où se trouvent les données.
88) Dans une instruction switch, que se passera-t-il si une instruction break est omise ?
Si une instruction break n'était pas placée à la fin d'une partie de cas particulière ? Il passera à la partie suivante du cas, provoquant éventuellement une sortie incorrecte.
89) Décrire comment les tableaux peuvent être transmis à une fonction définie par l'utilisateur
Une chose à noter est que vous ne pouvez pas transmettre l’intégralité du tableau à une fonction. Au lieu de cela, vous lui transmettez un pointeur qui pointera vers le premier élément du tableau en mémoire. Pour ce faire, vous indiquez le nom du tableau sans les parenthèses.
90) Que sont les pointeurs ?
Pointeurs vers des zones spécifiques de la mémoire. Les pointeurs contiennent l'adresse d'une variable, qui à son tour peut contenir une valeur ou même une adresse vers une autre mémoire.
91) Pouvez-vous transmettre une structure entière à des fonctions ?
Oui, il est possible de passer une structure entière à une fonction dans un style appel par méthode. Cependant, certains programmeurs préfèrent déclarer la structure globalement, puis transmettre une variable de ce type de structure à une fonction. Cette méthode permet de maintenir la cohérence et l’uniformité en termes de type d’argument.
92) Qu'est-ce que la fonction gets() ?
Le manuel de formation gets() function
permet une saisie de données en ligne complète de la part de l'utilisateur. Lorsque l'utilisateur appuie sur la touche Entrée pour terminer la saisie, la ligne entière de caractères est stockée dans une variable chaîne. Notez que la touche Entrée n'est pas incluse dans la variable, mais qu'un terminateur nul \0 est placé après le dernier caractère.
93) Le symbole % a une utilisation particulière dans une instruction printf. Comment placeriez-vous ce personnage dans le cadre de la sortie à l’écran ?
Vous pouvez le faire en utilisant %% dans l'instruction printf. Par exemple, vous pouvez écrire printf(« 10%% ») pour que la sortie apparaisse à 10 % à l'écran.
94) Comment rechercher des données dans un fichier de données en utilisant la méthode d'accès aléatoire ?
Utilisez l'option fseek()
fonction pour effectuer des entrées/sorties à accès aléatoire sur un fichier. Une fois le fichier ouvert par la fonction fopen(), fseek nécessiterait trois paramètres pour fonctionner : un pointeur de fichier vers le fichier, le nombre d'octets à rechercher et le point d'origine dans le fichier.
95) Les commentaires sont-ils inclus lors de la phase de compilation et également placés dans le fichier EXE ?
Non, les commentaires rencontrés par le compilateur sont ignorés. Les commentaires sont principalement destinés à guider le programmeur uniquement et n'ont aucune autre utilité significative dans la fonctionnalité du programme.
96) Existe-t-il une fonction intégrée en C qui peut être utilisée pour trier les données ?
Oui, utilisez le qsort()
fonction. Il est également possible de créer des fonctions de tri définies par l'utilisateur, telles que celles basées sur l'algorithme de tri par ballons et de tri par bulles.
97) Quels sont les avantages et les inconvénients d'un tas ?
Le stockage des données sur le tas est plus lent qu’il ne le faudrait lors de l’utilisation de la pile. Cependant, le principal avantage de l’utilisation du tas est sa flexibilité. En effet, la mémoire de cette structure peut être allouée et supprimée dans n'importe quel ordre particulier. La lenteur du tas peut être compensée si un algorithme a été bien conçu et implémenté.
98) Comment convertir des chaînes en nombres en C ?
Vous pouvez écrire vos propres fonctions pour effectuer des conversions de chaîne en nombre, ou utiliser à la place les fonctions intégrées de C. Vous pouvez utiliser atof pour convertir en valeur à virgule flottante, atoi pour convertir en valeur entière et atol pour convertir en valeur entière longue.
99) Créez un fragment de code simple qui échangera les valeurs de deux variables num1 et num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) A quoi sert un point-virgule (;) à la fin de chaque instruction de programme ?
Cela concerne le processus d’analyse et la compilation du code. Un point-virgule agit comme un délimiteur, de sorte que le compilateur sache où se termine chaque instruction et peut procéder à la division de l'instruction en éléments plus petits pour la vérification de la syntaxe.
Ces questions d'entretien vous aideront également dans votre soutenance