QCM : Algorithmique et programmation impérative — 19 questions

Questions et réponses du QCM

1. Quelle distinction décrit correctement le rapport entre un algorithme et un programme ?

L’algorithme compile le code, tandis que le programme analyse le problème initial.
L’algorithme produit le langage machine, tandis que le programme décrit les étapes générales.
L’algorithme exécute les instructions, tandis que le programme définit les sous-problèmes.
L’algorithme expose les étapes, tandis que le programme les traduit dans un langage informatique.

L’algorithme expose les étapes, tandis que le programme les traduit dans un langage informatique.

Explication

Un algorithme décrit une méthode de résolution, alors qu’un programme traduit cette méthode dans un langage destiné à l’ordinateur. La compilation relève du traitement du programme et non de la définition de l’algorithme.

2. Quel enchaînement correspond à une résolution complète d’un problème informatique ?

Analyser, décrire l’algorithme, coder en C, compiler, puis exécuter.
Coder en C, analyser, exécuter, décrire l’algorithme, puis compiler.
Décrire l’algorithme, exécuter, coder en C, analyser, puis compiler.
Analyser, compiler en C, décrire l’algorithme, exécuter, puis coder.

Analyser, décrire l’algorithme, coder en C, compiler, puis exécuter.

Explication

La démarche commence par l’analyse et la description de la solution, puis se poursuit par le codage, la compilation et l’exécution. Compiler avant de coder ne respecte pas cet enchaînement logique.

3. Une équipe transforme un problème général en plusieurs tâches, puis chaque tâche en éléments encore plus simples : quelle démarche applique-t-elle ?

Une analyse modulaire par décomposition progressive.
Une exécution séquentielle du programme final.
Une traduction de l’algorithme en instructions C.
Une compilation directe vers le langage machine.

Une analyse modulaire par décomposition progressive.

Explication

L’analyse modulaire consiste à décomposer progressivement un problème en sous-problèmes de plus en plus simples. La traduction en instructions C intervient ensuite, au moment du codage.

4. Qui a créé le langage C et à quelle date ?

Ken Thompson, en 1969.
Dennis Ritchie, en 1972.
Brian Kernighan, en 1978.
Bjarne Stroustrup, en 1983.

Dennis Ritchie, en 1972.

Explication

Le langage C a été créé par Dennis Ritchie aux Laboratoires Bell en 1972. Bjarne Stroustrup est associé au C++, ce qui ne correspond pas à l’origine du langage C.

5. Quelle différence caractérise principalement le C++ par rapport au langage C ?

Le C++ réserve le langage aux systèmes d’exploitation UNIX.
Le C++ remplace la compilation par une interprétation directe.
Le C++ prend en charge les classes et les objets.
Le C++ a été conçu pour supprimer les fonctions principales.

Le C++ prend en charge les classes et les objets.

Explication

Le C++ prend en charge les classes et les objets, contrairement au langage C. L’association historique avec UNIX concerne le développement du C et ne définit pas la différence demandée.

6. Quel ensemble correspond à la structure minimale attendue d’un programme en C ?

Une compilation, une fonction source et une sortie binaire.
Une fonction printf, une boucle principale et une déclaration globale.
Une inclusion de bibliothèque, une fonction main et un retour 0.
Une bibliothèque standard, une classe principale et un constructeur.

Une inclusion de bibliothèque, une fonction main et un retour 0.

Explication

Un programme C minimal contient notamment une directive d’inclusion, la fonction principale main et l’instruction return 0. Les classes et les constructeurs relèvent plutôt de la programmation orientée objet et ne constituent pas cette structure minimale.

7. Quel symbole doit terminer une déclaration en langage C ?

Le point-virgule.
Le deux-points.
Le point.
La virgule.

Le point-virgule.

Explication

En C, chaque déclaration se termine par un point-virgule, qui marque la fin de l’instruction. Les autres signes proposés peuvent avoir d’autres usages syntaxiques, mais ne remplissent pas cette fonction générale.

8. Que produit l’instruction printf("Bonjour\n");\texttt{printf("Bonjour\n");} lors de son affichage ?

Elle efface « Bonjour » après avoir créé une ligne vide.
Elle transforme « Bonjour » en commentaire avant de l’afficher.
Elle affiche « Bonjour », puis place le curseur sur la ligne suivante.
Elle affiche « Bonjour\n » comme une suite de caractères visible.

Elle affiche « Bonjour », puis place le curseur sur la ligne suivante.

Explication

La fonction printf() affiche le texte fourni et la séquence \\n provoque un retour à la ligne. Cette séquence n’est donc pas affichée comme deux caractères ordinaires dans le résultat.

9. Quel rôle joue une variable en langage C ?

Elle transforme automatiquement les caractères en nombres entiers.
Elle indique au compilateur la taille mémoire de chaque programme.
Elle impose une valeur fixe qui ne peut plus être modifiée.
Elle stocke une valeur de donnée, comme un nombre ou un caractère.

Elle stocke une valeur de donnée, comme un nombre ou un caractère.

Explication

Une variable sert de conteneur pour stocker une donnée, par exemple un nombre ou un caractère. Une constante impose une valeur immuable, tandis que la taille mémoire relève de l’opérateur sizeof\texttt{sizeof}.

10. Quel type C convient pour stocker une valeur numérique avec des chiffres après la virgule ?

Le type char
Le type void
Le type int
Le type float

Le type float

Explication

Le type float\texttt{float} est destiné aux nombres à virgule flottante. Le type int\texttt{int} stocke des nombres entiers et char\texttt{char} un caractère simple.

11. Quel spécificateur de format permet d’afficher une chaîne de caractères en C ?

%c
%s
%d
%f

%s

Explication

Le spécificateur %s\texttt{\%s} sert à afficher une chaîne de caractères. Le spécificateur %c\texttt{\%c} correspond à un caractère individuel, tandis que %d\texttt{\%d} et %f\texttt{\%f} servent aux valeurs numériques.

12. Laquelle de ces déclarations respecte les règles de formation d’un identifiant C ?

2total
float
_total2
total-prix

_total2

Explication

Un identifiant peut commencer par une lettre ou un trait de soulignement et contenir des chiffres. Un chiffre initial, un trait d’union ou un mot réservé comme float\texttt{float} ne respecte pas ces règles.

13. Quel résultat produit l’expression 5/25 / 2 en C lorsque ses deux opérandes sont des entiers ?

0.4
2.5
2
3

2

Explication

La division de deux entiers est une division entière, donc 5/25 / 2 produit 22. En impliquant un float\texttt{float}, par exemple (float)5 / 2\texttt{(float)5 / 2}, le résultat devient 2.52.5.

14. Quelle opération calcule le reste d’une division entière en C ?

L’opérateur d’incrémentation ++\texttt{++}
L’opérateur d’addition +\texttt{+}
L’opérateur de division /\texttt{/}
L’opérateur modulo %\texttt{\%}

L’opérateur modulo $$\texttt{\%}$$

Explication

L’opérateur modulo %\texttt{\%} renvoie le reste d’une division entière. L’opérateur /\texttt{/} calcule le quotient, tandis que les autres opérations ont des fonctions différentes.

15. Dans une expression où la valeur de retour est utilisée, quelle différence distingue x++x++ de ++x++x ?

x++x++ incrémente x avant son utilisation, tandis que ++x++x conserve sa valeur initiale.
Les deux expressions utilisent la valeur incrémentée, mais une seule modifie ensuite la variable.
Les deux expressions utilisent la valeur initiale, puis remplacent x par une valeur décrémentée.
x++x++ utilise d’abord la valeur de x, tandis que ++x++x incrémente x avant son utilisation.

$$x++$$ utilise d’abord la valeur de x, tandis que $$++x$$ incrémente x avant son utilisation.

Explication

Avec x++x++, la valeur courante est utilisée avant l’incrémentation, alors qu’avec ++x++x, l’incrémentation précède l’utilisation. Les deux opérateurs augmentent bien xx, mais leur ordre d’évaluation diffère.

16. Quelle valeur représente en C le résultat faux produit par un opérateur relationnel ou logique ?

Une chaîne vide
1
0
-1

0

Explication

Les opérateurs relationnels et logiques produisent une valeur vraie représentée par 11 ou une valeur fausse représentée par 00. Une chaîne vide n’est pas la représentation indiquée pour ce résultat.

17. Quel est le rôle général d’une structure conditionnelle dans un programme ?

Stocker plusieurs valeurs dans une même variable
Répéter une instruction selon un nombre fixé d’itérations
Transformer automatiquement les données en texte
Tester une condition pour choisir les instructions à exécuter

Tester une condition pour choisir les instructions à exécuter

Explication

Une structure conditionnelle évalue si une condition est vraie ou fausse afin de sélectionner les instructions correspondantes. La répétition d’instructions relève plutôt d’une structure itérative, comme une boucle.

18. Dans une instruction `if`, quand le bloc associé est-il exécuté ?

Lorsque le programme atteint la fin de toutes ses instructions
Après l’exécution d’un bloc `else` présent dans le programme
Lorsque la condition placée entre parenthèses est fausse
Lorsque la condition placée entre parenthèses est vraie

Lorsque la condition placée entre parenthèses est vraie

Explication

Le bloc associé à `if` s’exécute lorsque la condition évaluée est vraie. Si cette condition n’est pas remplie, c’est le bloc `else`, lorsqu’il existe, qui peut être exécuté.

19. Un programme contient une structure `if...else` dont la condition est fausse : quel bloc est alors exécuté ?

Le bloc `if`, car il traite la situation contraire à la condition
Aucun bloc, car une condition fausse arrête nécessairement le programme
Le bloc `else`, car il correspond au cas où la condition est fausse
Les deux blocs, car une structure `if...else` évalue chaque branche

Le bloc `else`, car il correspond au cas où la condition est fausse

Explication

Dans une structure `if...else`, le bloc `if` correspond à une condition vraie et le bloc `else` au cas où elle est fausse. Le bloc `if` n’est donc pas exécuté lorsque l’évaluation donne faux.

Révisez avec les flashcards

Mémorisez les réponses avec 39 flashcards sur Algorithmique et programmation impérative.

Quelle différence existe-t-il entre un algorithme et un programme ?

Un algorithme décrit les étapes, un programme les traduit en code exécutable.

Quelles sont les étapes de la résolution d’un problème ?

Analyser, décrire l’algorithme, coder, compiler, exécuter.

Qu'est-ce que l’analyse modulaire ?

C’est la décomposition progressive d’un problème en sous-problèmes.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Algorithmique et programmation impérative.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM