QCM : Anatomie d’un programme C — 19 questions

Questions et réponses du QCM

1. Concernant la fonction main dans un programme C ou C++ :

La fonction main est facultative et peut être remplacée par plusieurs fonctions équivalentes.
La fonction main appartient aux bibliothèques incluses avant la compilation.
La fonction main réalise une tâche spécifique sans lancer l’exécution générale.
La fonction main renvoie une valeur indiquant le nombre de sous-programmes utilisés.
La fonction main est obligatoire, unique et exécutée en premier dans le programme.

La fonction main est obligatoire, unique et exécutée en premier dans le programme.

Explication

La fonction main est obligatoire, unique et exécutée en premier. Elle ne remplace pas les sous-programmes, n’appartient pas aux bibliothèques et son code retour indique la réussite de l’exécution plutôt que leur nombre.

2. Parmi les propositions suivantes concernant les directives de pré-compilation, la(les)quelle(s) est(sont) exacte(s) ?

Elles interviennent avant la compilation du programme.
Elles sont exécutées après le lancement de la fonction main.
Elles peuvent inclure des déclarations provenant de bibliothèques.
Elles contribuent à préparer le programme avant sa compilation.
Elles remplacent les sous-programmes définis dans le programme principal.

Elles interviennent avant la compilation du programme. · Elles peuvent inclure des déclarations provenant de bibliothèques. · Elles contribuent à préparer le programme avant sa compilation.

Explication

Les directives de pré-compilation interviennent avant la compilation et peuvent inclure des déclarations de fonctions et procédures issues de bibliothèques. Elles ne sont pas exécutées après main et ne remplacent pas les sous-programmes.

3. Les caractéristiques d’un sous-programme en C comprennent :

Un mécanisme pouvant distinguer une tâche particulière du programme principal.
Un bloc de code autonome accomplissant une tâche spécifique.
Un élément qui forme le programme avec la fonction main.
Un composant chargé de lancer l’exécution générale du programme.
Un sous-programme de type procédure renvoie une valeur au programme appelant.

Un mécanisme pouvant distinguer une tâche particulière du programme principal. · Un bloc de code autonome accomplissant une tâche spécifique. · Un élément qui forme le programme avec la fonction main.

Explication

Un sous-programme est un mécanisme autonome qui accomplit une tâche spécifique et forme, avec la fonction main, un programme C. La fonction main lance l’exécution générale du programme, tandis qu’un sous-programme ne doit pas être exécuté avant elle. Parmi les sous-programmes, les fonctions renvoient une valeur, alors que les procédures n’en renvoient pas.

4. Concernant la bibliothèque iostream, cochez la (les) proposition(s) exacte(s) :

La bibliothèque iostream fournit les fonctions sin, cos, log et pow.
L’objet cin sert principalement à afficher un message sur la console.
L’objet cin permet de lire une valeur saisie par l’utilisateur.
L’objet cout permet d’afficher une donnée sur la console.
La bibliothèque iostream gère des entrées au clavier et des sorties sur console.

L’objet cin permet de lire une valeur saisie par l’utilisateur. · L’objet cout permet d’afficher une donnée sur la console. · La bibliothèque iostream gère des entrées au clavier et des sorties sur console.

Explication

iostream gère les entrées et sorties liées au clavier et à la console. cin lit une valeur saisie, tandis que cout affiche une donnée. Les fonctions mathématiques citées relèvent de math.h et non d’iostream.

5. Une utilisation correcte de cout et cin est décrite par les propositions suivantes :

L’instruction cout >> valeur; lit une valeur saisie par l’utilisateur.
L’instruction cout permet d’afficher une donnée sur la console.
L’instruction cout << "hello"; affiche le texte « hello ».
La bibliothèque math.h fournit notamment cin et cout.
L’instruction cin >> valeur; lit une valeur fournie par l’utilisateur.

L’instruction cout permet d’afficher une donnée sur la console. · L’instruction cout << "hello"; affiche le texte « hello ». · L’instruction cin >> valeur; lit une valeur fournie par l’utilisateur.

Explication

L’instruction cout >> valeur; n’est pas adaptée à la lecture d’une saisie : cout affiche une donnée avec l’opérateur <<. L’instruction cout << "hello"; affiche bien le texte indiqué. La bibliothèque math.h fournit des fonctions mathématiques comme sin, cos, log et pow, et non les objets cin et cout. Enfin, l’instruction cin >> valeur; lit une valeur fournie par l’utilisateur.

6. À propos des deux types de sous-programmes, quelles sont les réponses exactes ?

Une procédure ne renvoie aucune valeur.
Une fonction renvoie une valeur à l’issue de son traitement.
Une fonction correspond nécessairement au programme principal main.
Une procédure renvoie une valeur tandis qu’une fonction n’en renvoie pas.
Les fonctions et les procédures constituent deux types de sous-programmes.

Une procédure ne renvoie aucune valeur. · Une fonction renvoie une valeur à l’issue de son traitement. · Les fonctions et les procédures constituent deux types de sous-programmes.

Explication

Une fonction renvoie une valeur, alors qu’une procédure n’en renvoie aucune. Fonctions et procédures sont les deux types de sous-programmes ; leurs rôles ne sont pas inversés et une fonction n’est pas nécessairement main.

7. L’utilisation de sous-programmes apporte notamment :

Une maintenance nécessitant la modification du programme entier.
Une lisibilité accrue grâce à une organisation en composants.
Une réutilisabilité limitée à une seule invocation du sous-programme.
Une maintenance facilitée lors de la correction d’un traitement.
Une meilleure modularité dans l’organisation du programme.

Une lisibilité accrue grâce à une organisation en composants. · Une maintenance facilitée lors de la correction d’un traitement. · Une meilleure modularité dans l’organisation du programme.

Explication

Les sous-programmes apportent modularité, lisibilité et maintenance facilitée. Ils favorisent aussi la réutilisabilité, qui ne se limite pas à une seule invocation ; la maintenance vise notamment à corriger un traitement sans modifier tout le reste.

8. Concernant la structure d’une fonction en C, cochez la (les) proposition(s) exacte(s) :

Une fonction C possède un type de retour décrivant la valeur produite.
Les paramètres formels d’une fonction C sont des données typées reçues lors de l’appel.
Une fonction C reçoit les valeurs des paramètres effectifs dans ses variables locales.
Le nom d’une fonction C indique le type de valeur qu’elle retourne.
Le corps d’une fonction C est composé d’instructions et peut utiliser des variables locales.

Une fonction C possède un type de retour décrivant la valeur produite. · Les paramètres formels d’une fonction C sont des données typées reçues lors de l’appel. · Le corps d’une fonction C est composé d’instructions et peut utiliser des variables locales.

Explication

Le type de retour décrit la valeur produite, tandis que les paramètres formels, déclarés dans la fonction, reçoivent les valeurs des paramètres effectifs lors de l’appel. Le corps contient des instructions et peut comporter des variables locales. Une fonction peut avoir zéro paramètre, et son nom ne détermine pas son type de retour.

9. Parmi les propositions suivantes concernant la fonction factorielle, la(les)quelle(s) est(sont) exacte(s) ?

La variable i mémorise la valeur finale renvoyée par la fonction.
La fonction factorielle reçoit un entier n comme donnée d’entrée.
La fonction factorielle retourne la valeur mémorisée dans f.
La variable i sert à compter les itérations du calcul.
La variable f mémorise le résultat intermédiaire du calcul factoriel.

La fonction factorielle reçoit un entier n comme donnée d’entrée. · La fonction factorielle retourne la valeur mémorisée dans f. · La variable i sert à compter les itérations du calcul. · La variable f mémorise le résultat intermédiaire du calcul factoriel.

Explication

La fonction reçoit un entier n, utilise i pour compter les itérations et f pour conserver le résultat intermédiaire. Elle retourne ensuite f. La variable i ne mémorise donc pas la valeur finale.

10. Une fonction C appelée produit un résultat compatible avec le type d’une variable ; quelles utilisations sont exactes ?

Le résultat de la fonction peut être affecté à une variable de même type.
Le résultat de la fonction ne peut être utilisé que dans une affectation.
Le résultat de la fonction peut être affiché directement.
Le résultat de la fonction peut être comparé à une valeur compatible.
Le résultat de la fonction doit être affiché avant toute autre utilisation.

Le résultat de la fonction peut être affecté à une variable de même type. · Le résultat de la fonction peut être affiché directement. · Le résultat de la fonction peut être comparé à une valeur compatible.

Explication

Lors d’un appel, le résultat peut être affecté à une variable de même type, affiché directement ou comparé à une valeur compatible. Il n’est donc pas limité à l’affectation et ne doit pas être affiché au préalable.

11. À propos d’une procédure en C :

Une procédure C exécute des instructions dans son corps.
Une procédure C est dépourvue de paramètres formels.
Une procédure C est un sous-programme de type void.
Une procédure C retourne une valeur destinée à l’appelant.
Une procédure C peut posséder des paramètres formels.

Une procédure C exécute des instructions dans son corps. · Une procédure C est un sous-programme de type void. · Une procédure C peut posséder des paramètres formels.

Explication

Une procédure C est de type void, peut posséder des paramètres formels et exécute des instructions. Elle ne retourne pas de valeur, et elle peut comporter des paramètres.

12. Concernant la procédure affiche_mention(int note), quelles propositions sont exactes ?

Elle reçoit note comme paramètre entier.
Elle compare note à la valeur 12 pour choisir le message.
Elle affiche « recalé » lorsque note est inférieure ou égale à 10.
Elle affiche « admis » lorsque note est supérieure à 10.
Elle affiche « admis » lorsque note est inférieure ou égale à 10.

Elle reçoit note comme paramètre entier. · Elle affiche « recalé » lorsque note est inférieure ou égale à 10. · Elle affiche « admis » lorsque note est supérieure à 10.

Explication

La procédure reçoit un entier note et affiche « admis » si note est supérieure à 10. Dans le cas contraire, donc pour une note inférieure ou égale à 10, elle affiche « recalé ». Le seuil utilisé est 10, non 12.

13. Lors de l’appel d’une procédure C, cochez la (les) proposition(s) exacte(s) :

Une procédure appelée permet d’afficher sa valeur de retour.
L’appel d’une procédure exige une valeur retournée pour s’exécuter.
Le résultat d’une procédure appelée ne peut pas être comparé à une autre valeur.
L’appel d’une procédure fournit des paramètres effectifs.
Une procédure appelée ne fournit pas de valeur retournée à affecter.

Le résultat d’une procédure appelée ne peut pas être comparé à une autre valeur. · L’appel d’une procédure fournit des paramètres effectifs. · Une procédure appelée ne fournit pas de valeur retournée à affecter.

Explication

L’appel fournit des paramètres effectifs, mais une procédure ne retourne aucune valeur à affecter. Il n’existe donc ni valeur retournée à afficher ni résultat à comparer. L’exécution ne dépend pas d’une valeur de retour.

14. Les éléments décrits par une fonction algorithmique comprennent :

Les instructions qui se terminent par le renvoi d’une valeur.
Les préconditions éventuelles de la fonction algorithmique.
Les données utilisées par la fonction algorithmique.
Les variables locales de la fonction algorithmique.
Une instruction retourner absente de la description fonctionnelle.

Les instructions qui se terminent par le renvoi d’une valeur. · Les préconditions éventuelles de la fonction algorithmique. · Les données utilisées par la fonction algorithmique. · Les variables locales de la fonction algorithmique.

Explication

Une fonction algorithmique décrit ses préconditions, ses données, ses variables locales et ses instructions. Ces instructions se terminent par le renvoi d’une valeur. Une fonction comporte donc une instruction de retour, et non une absence de retour.

15. Concernant minimum-fct(x : entier, y : entier), la(les)quelle(s) est(sont) la(les) proposition(s) exacte(s) ?

La fonction reçoit deux paramètres entiers nommés x et y.
La fonction affiche le minimum entre x et y sans le retourner.
La fonction renvoie le minimum entre x et y.
La fonction impose une précondition sur les valeurs de x et y.
La fonction minimum-fct modifie l’environnement en affichant son résultat.

La fonction reçoit deux paramètres entiers nommés x et y. · La fonction renvoie le minimum entre x et y.

Explication

minimum-fct reçoit deux entiers et renvoie leur minimum. Elle ne possède aucune précondition et ne se caractérise pas par un affichage ou une modification de l’environnement. L’affichage sans retour correspond à minimum-proc.

16. Au sujet d’une procédure algorithmique, cochez la (les) proposition(s) exacte(s) :

Elle fonctionne sans paramètres décrits dans son en-tête.
Elle réalise une suite d’instructions à partir de paramètres décrits dans son en-tête.
Elle décrit un résultat numérique dans son en-tête.
Elle ne comporte pas d’instruction retourner.
Elle se termine par une instruction retourner fournissant une valeur.

Elle réalise une suite d’instructions à partir de paramètres décrits dans son en-tête. · Elle ne comporte pas d’instruction retourner.

Explication

Une procédure algorithmique exécute une suite d’instructions à partir de paramètres décrits dans son en-tête. Elle ne comporte pas d’instruction retourner et ne renvoie donc pas de valeur. La présence de paramètres dépend de sa description, tandis qu’un résultat numérique relève de la description d’une fonction algorithmique.

17. Quelles sont les réponses exactes au sujet de la distinction entre fonction et procédure algorithmiques ?

Une fonction algorithmique retourne une valeur sans modifier l’environnement.
Une procédure algorithmique produit une valeur sans agir sur l’environnement.
Une procédure algorithmique ne retourne aucune valeur.
Une fonction algorithmique modifie l’environnement sans produire de valeur.
Une procédure algorithmique peut modifier l’environnement en affichant un résultat.

Une fonction algorithmique retourne une valeur sans modifier l’environnement. · Une procédure algorithmique ne retourne aucune valeur. · Une procédure algorithmique peut modifier l’environnement en affichant un résultat.

Explication

Une fonction retourne une valeur sans modifier l’environnement. Une procédure ne retourne aucune valeur, mais elle peut agir sur l’environnement, notamment en affichant. Les deux dernières formulations inversent ces caractéristiques.

18. Concernant la portée des variables locales, cochez la (les) proposition(s) exacte(s) :

Une variable locale n’existe pas en dehors du sous-programme concerné.
Une variable locale est conservée jusqu’à la fin du programme.
Une variable locale est détruite à la sortie de son sous-programme.
Une variable locale reste accessible après la fin du sous-programme.
Une variable locale est déclarée dans un sous-programme déterminé.

Une variable locale n’existe pas en dehors du sous-programme concerné. · Une variable locale est détruite à la sortie de son sous-programme. · Une variable locale est déclarée dans un sous-programme déterminé.

Explication

Une variable locale appartient au sous-programme où elle est déclarée et disparaît lorsque celui-ci se termine. Elle n’est donc plus accessible après cette sortie et n’est pas conservée jusqu’à la fin du programme.

19. L’indentation du code permet notamment de :

Faciliter la compréhension de l’organisation des instructions.
Modifier automatiquement la portée des variables locales.
Représenter visuellement la hiérarchie des blocs de code.
Rendre plus lisible la structure imbriquée d’un programme.
Décaler des lignes vers la droite avec des espaces ou des tabulations.

Faciliter la compréhension de l’organisation des instructions. · Représenter visuellement la hiérarchie des blocs de code. · Rendre plus lisible la structure imbriquée d’un programme. · Décaler des lignes vers la droite avec des espaces ou des tabulations.

Explication

L’indentation décale les lignes avec des espaces ou des tabulations et rend visible la hiérarchie des blocs. Elle améliore ainsi la compréhension de la structure du code, mais ne modifie pas la portée des variables.

Révisez avec les flashcards

Mémorisez les réponses avec 40 flashcards sur Anatomie d’un programme C.

Qu'est-ce qu'une directive de pré-compilation en C ?

C'est une instruction incluant des déclarations avant la compilation.

Quelle est la fonction obligatoire et unique dans un programme C ?

La fonction main est obligatoire et unique.

Quelle fonction est exécutée en premier dans un programme C ?

La fonction main est exécutée en premier.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Anatomie d’un programme C.

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