QCM : Algorithmique et programmation 1 — 24 questions

Questions et réponses du QCM

1. Quel type C# convient à chacune des valeurs suivantes : 42, 3,14, 'x', "salut" et vrai ?

double, int, string, char et bool, en associant les types selon la longueur de chaque valeur
char, double, int, bool et string, en choisissant le type d’après la manière dont la valeur est affichée
int, char, double, string et bool, en utilisant char pour les nombres courts et double pour les textes
int, double, char, string et bool, selon qu’il s’agit d’un entier, d’un nombre approché, d’un caractère, d’un texte ou d’une valeur logique

int, double, char, string et bool, selon qu’il s’agit d’un entier, d’un nombre approché, d’un caractère, d’un texte ou d’une valeur logique

Explication

C# utilise int pour les entiers, double pour les nombres à virgule approchés, char pour un caractère, string pour une suite de caractères et bool pour vrai ou faux. Les autres associations intervertissent plusieurs de ces types fondamentaux.

2. Quelle démarche permet de résoudre méthodiquement un problème complexe par décomposition ?

Recomposer les solutions existantes, décomposer ensuite le problème, puis tester le programme obtenu
Décomposer le problème, résoudre les sous-problèmes atomiques, recomposer les solutions, puis implanter le programme
Résoudre le problème global en une étape, avant de préciser les entrées et les résultats attendus
Implanter directement le programme, puis rechercher les sous-problèmes à partir des erreurs rencontrées

Décomposer le problème, résoudre les sous-problèmes atomiques, recomposer les solutions, puis implanter le programme

Explication

La démarche consiste à décomposer le problème, traiter les sous-problèmes atomiques, recomposer leurs solutions et enfin implanter le programme. Une implantation directe ne garantit pas cette progression structurée.

3. Quelle écriture représente correctement un caractère puis une chaîne contenant la lettre a en C# ?

(a) pour le caractère et [a] pour la chaîne
"a" pour le caractère et 'a' pour la chaîne
'a' pour le caractère et "a" pour la chaîne
`a` pour le caractère et "a" pour la chaîne

'a' pour le caractère et "a" pour la chaîne

Explication

En C#, un caractère de type char s’écrit entre apostrophes, tandis qu’une chaîne de type string s’écrit entre guillemets. Ainsi, 'a' et "a" désignent deux types distincts malgré leur contenu apparent.

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

L’algorithme correspond au langage machine, tandis que le programme décrit les étapes générales
L’algorithme décrit la solution, tandis que le programme la traduit dans un langage donné
L’algorithme exécute les instructions, tandis que le programme choisit le problème à résoudre
L’algorithme définit la syntaxe, tandis que le programme fournit les entrées et les sorties

L’algorithme décrit la solution, tandis que le programme la traduit dans un langage donné

Explication

L’algorithme présente le scénario de résolution avec ses entrées, instructions et sous-programmes, tandis que le programme traduit ce scénario avec une syntaxe et des structures de données. Le programme n’est donc pas celui qui choisit le problème à résoudre.

5. Quel type de valeur Console.ReadLine renvoie-t-elle avant toute conversion explicite ?

Une chaîne de caractères
Un entier directement utilisable dans un calcul
Un nombre réel directement utilisable dans un calcul
Une valeur booléenne indiquant la validité de la saisie

Une chaîne de caractères

Explication

Console.ReadLine renvoie une valeur de type string, même lorsque l’utilisateur saisit des chiffres. Une conversion explicite est nécessaire pour obtenir un int ou un double exploitable comme nombre.

6. Pourquoi faut-il éviter de tester directement l’égalité de deux valeurs de type double en C# ?

Parce qu’un double arrondit toujours les résultats vers zéro
Parce qu’un double ne peut représenter que des nombres entiers
Parce qu’un double convertit chaque valeur en chaîne de caractères
Parce qu’un double stocke une approximation du nombre réel

Parce qu’un double stocke une approximation du nombre réel

Explication

Le type double représente les nombres réels par approximation, ce qui explique notamment que 0.1+0.2==0.30.1 + 0.2 == 0.3 soit faux en C#. Il ne s’agit pas d’un type limité aux entiers, même si certaines valeurs réelles sont représentées avec une précision finie.

7. Pour une chaîne de longueur LengthLength, que se passe-t-il lors de l’accès à l’indice LengthLength ?

Une erreur d’exécution se produit, car le dernier indice vaut Length−1Length - 1
Une valeur vide est retournée, car l’indice dépasse la chaîne
Le dernier caractère est retourné, car LengthLength désigne son indice
Le premier caractère est retourné, car les indices recommencent à zéro

Une erreur d’exécution se produit, car le dernier indice vaut $$Length - 1$$

Explication

Les indices valides d’une chaîne vont de 00 à Length−1Length - 1, de sorte que l’indice LengthLength est hors limites. L’accès à cet indice provoque donc une erreur à l’exécution plutôt qu’un retour automatique du dernier caractère.

8. Dans un chiffrement de César, quel caractère obtient-on pour c=’x’c = \text{'x'} avec decal=5decal = 5 ?

La lettre « b », car le rang initial de « x » vaut 22
La lettre « c », car (23+5)%26=2(23 + 5) \% 26 = 2
La lettre « z », car le décalage s’arrête à la dernière lettre
La lettre « d », car (23+5)%26=3(23 + 5) \% 26 = 3

La lettre « c », car $$(23 + 5) \% 26 = 2$$

Explication

La lettre « x » a le rang 23 et le calcul donne 28%26=228 \% 26 = 2, qui correspond à « c ». La lettre « d » correspondrait au rang 3, tandis que le rang initial 22 appartient à « w » et non à « x ».

9. Dans la spécification d’un algorithme, que représente la précondition ?

Ce qui doit être vrai avant l’exécution pour que l’algorithme ait un sens
Le format utilisé pour stocker les résultats produits par l’algorithme
La suite des calculs effectués pendant l’exécution de l’algorithme
Ce que l’algorithme doit produire après avoir traité les données

Ce qui doit être vrai avant l’exécution pour que l’algorithme ait un sens

Explication

La précondition précise les éléments qui doivent être vrais avant l’exécution afin que l’algorithme soit applicable. La sortie décrit plutôt le résultat attendu après l’exécution.

10. Lors d’un contrôle sur table, quelle combinaison de ressources est autorisée ?

Les documents personnels sont autorisés, mais les outils électroniques sont interdits
Les documents personnels et les outils électroniques sont interdits
Les documents personnels et les outils électroniques sont autorisés
Les outils électroniques sont autorisés, mais les documents personnels sont interdits

Les documents personnels sont autorisés, mais les outils électroniques sont interdits

Explication

Les étudiants peuvent consulter leurs documents personnels de cours, de TD et de TP, tandis que les outils électroniques sont interdits. La confusion consiste donc à inverser le statut de ces deux types de ressources.

11. Quel opérateur faut-il utiliser pour comparer deux valeurs et vérifier leur égalité en C# ?

====
!!
==
&&

$$==$$

Explication

L’opérateur ==== compare deux valeurs et produit un résultat booléen selon leur égalité. L’opérateur == sert à affecter une valeur, tandis que && et !! réalisent des opérations logiques.

12. Quel résultat produit la division entière de 77 par 22 en C# lorsque les deux opérandes sont des entiers ?

22, car le diviseur est retiré du dividende
33, car la partie décimale est supprimée
3.53.5, car la division conserve les décimales
44, car le résultat est arrondi

$$3$$, car la partie décimale est supprimée

Explication

La division de deux entiers produit un entier en supprimant la partie décimale, donc 7/27 / 2 donne 33. Le résultat 3.53.5 nécessite qu’au moins un opérande soit converti en nombre réel avant la division.

13. Comment définir correctement un algorithme ?

Un ensemble de règles opératoires permettant de résoudre un problème en un nombre fini d’opérations
Un résultat calculé par une machine après l’exécution d’un programme informatique
Une suite d’instructions écrites dans un langage de programmation pour exécuter une application
Une description générale d’un problème sans indication sur les opérations à effectuer

Un ensemble de règles opératoires permettant de résoudre un problème en un nombre fini d’opérations

Explication

Un algorithme est constitué de règles opératoires qui permettent de résoudre un problème au moyen d’un nombre fini d’opérations. Il ne se confond donc ni avec un programme particulier ni avec le résultat obtenu.

14. Que se passe-t-il avant l’exécution lorsqu’un compilateur traite un programme ?

Chaque ligne est lue et exécutée progressivement pendant la traduction
L’ensemble du code est traduit en langage machine avant l’exécution
Les entrées sont remplacées par des sorties sans traduction du code
Le programme est converti en algorithme avant d’être envoyé à la machine

L’ensemble du code est traduit en langage machine avant l’exécution

Explication

Un compilateur traduit tout le code en langage machine avant que son exécution ne commence. La lecture et l’exécution ligne par ligne correspondent plutôt au fonctionnement d’un interpréteur.

15. Quelle règle s’applique à un code présenté par un étudiant en cours, en TD, en TP ou à l’examen ?

Il doit avoir été compilé avec succès avant sa présentation
Il doit être accompagné d’un schéma détaillé de son exécution
Il doit produire un résultat identique sur plusieurs machines
Il doit pouvoir être expliqué ligne à ligne par l’étudiant

Il doit pouvoir être expliqué ligne à ligne par l’étudiant

Explication

Un code est considéré comme faux si l’étudiant ne sait pas expliquer chacune de ses lignes. La compilation réussie ou la stabilité sur plusieurs machines ne suffit donc pas à établir que le code est acceptable.

16. Pour une lettre minuscule cc, que fournit l’expression c−′a′c - 'a' ?

La longueur de la chaîne contenant cc
Le code numérique absolu de la lettre cc
Le caractère situé avant cc dans l’alphabet
Son rang alphabétique sous forme d’un entier, de 00 à 2525

Son rang alphabétique sous forme d’un entier, de $$0$$ à $$25$$

Explication

La soustraction de la valeur de ′a′'a' transforme une lettre minuscule en rang alphabétique, avec ′a′'a' associé à 00 et ′z′'z' à 2525. L’expression produit donc un entier relatif au début de l’alphabet, plutôt que le caractère lui-même.

17. Quelle distinction décrit correctement la déclaration, l’affectation et l’expression ?

La déclaration affiche une valeur, l’affectation change le type et l’expression nomme une case mémoire
La déclaration décrit une variable, l’affectation lui attribue une valeur et l’expression calcule une valeur
La déclaration calcule une valeur, l’affectation décrit une variable et l’expression réserve une case mémoire
La déclaration compare des valeurs, l’affectation crée un résultat et l’expression réserve le stockage

La déclaration décrit une variable, l’affectation lui attribue une valeur et l’expression calcule une valeur

Explication

La déclaration annonce le nom et le type, l’affectation place une valeur dans la variable et l’expression produit une valeur par un calcul. Confondre déclaration et affectation revient à mélanger la description d’une variable avec son remplissage.

18. Qu’est-ce qu’une variable informatique ?

Une case mémoire identifiée par un nom, associée à un type et pouvant contenir une valeur
Une instruction qui calcule une valeur à partir de plusieurs opérateurs et de plusieurs données
Une règle qui impose la forme des données manipulées par un programme
Un résultat temporaire affiché à l’écran sans emplacement réservé dans la mémoire

Une case mémoire identifiée par un nom, associée à un type et pouvant contenir une valeur

Explication

Une variable correspond à une case mémoire dotée d’un nom et d’un type, avec éventuellement une valeur. Une expression, en revanche, est un calcul qui produit une valeur.

19. Une variable C# déclarée comme un entier reçoit ensuite une chaîne de caractères. Que se passe-t-il ?

L’opération est refusée, car le type de la variable reste celui fixé lors de sa déclaration
La variable adopte automatiquement le type de la chaîne, comme cela peut arriver dans Python
La variable conserve deux types simultanément afin d’accepter les deux valeurs
La chaîne est convertie en entier dans chaque situation, sans dépendre de son contenu

L’opération est refusée, car le type de la variable reste celui fixé lors de sa déclaration

Explication

En C#, le type d’une variable est fixé lors de sa déclaration et ne peut pas être changé, car le langage est fortement typé. L’adaptation automatique du type correspond davantage à une confusion avec le comportement attribué ici à Python.

20. Que représente la valeur de x%26x \% 26 lorsqu’elle est utilisée avec des entiers ?

Le reste de la division entière de xx par 2626
La valeur arrondie de xx après division par 2626
La différence entre xx et le nombre 2626
Le quotient de la division entière de xx par 2626

Le reste de la division entière de $$x$$ par $$26$$

Explication

L’opérateur modulo donne le reste de la division entière, et x%26x \% 26 est compris entre 00 et 2525. Le quotient correspond à la division entière, qui est une opération différente.

21. Quelle expression permet d’obtenir 3.53.5 lors de la division de 77 par 22 en C# ?

(double)7/2\text{(double)}7 / 2
7/(int)27 / \text{(int)}2
(int)(7/2)\text{(int)}(7 / 2)
(double)(7/2)\text{(double)}(7 / 2)

$$\text{(double)}7 / 2$$

Explication

La conversion d’un opérande avant la division force une division réelle et produit 3.53.5. Convertir le résultat après une division entière ne restitue pas la partie décimale déjà supprimée.

22. Quelle suite d’opérations permet de chiffrer correctement un caractère par décalage dans le chiffrement de César ?

Ajouter le décalage au code du caractère, puis supprimer les lettres dépassant la fin de l’alphabet
Convertir la lettre en rang, ajouter le décalage, appliquer le modulo 26, puis reconvertir en caractère
Convertir la lettre en rang, multiplier ce rang par le décalage, puis reconvertir directement en caractère
Déplacer la lettre dans l’alphabet, inverser le résultat, puis appliquer le modulo 26

Convertir la lettre en rang, ajouter le décalage, appliquer le modulo 26, puis reconvertir en caractère

Explication

Le procédé consiste à passer du caractère à son rang, à ajouter le décalage, à ramener le résultat modulo 26, puis à revenir à un caractère. La suppression des lettres dépassant l’alphabet ne remplace pas l’application du modulo, qui assure le bouclage correct.

23. Laquelle de ces propriétés caractérise un algorithme correctement défini ?

Il est détaillé, graphique, interactif et conserve toutes les étapes intermédiaires
Il est rapide, automatisé, portable et utilise une structure de données complexe
Il est général, commenté, récursif et produit plusieurs résultats simultanément
Il est fini, non ambigu, effectif et s’arrête avec un résultat ou une action

Il est fini, non ambigu, effectif et s’arrête avec un résultat ou une action

Explication

Un algorithme doit être fini, non ambigu et effectif, puis s’arrêter en fournissant un résultat ou en réalisant une action. Des qualités comme le caractère graphique ou récursif ne font pas partie des exigences énoncées.

24. Comment un caractère est-il représenté par la machine ?

Par une adresse mémoire contenant son mot complet
Par une image indépendante de toute numérotation
Par un code numérique ASCII ou Unicode
Par une valeur booléenne indiquant sa casse

Par un code numérique ASCII ou Unicode

Explication

La machine stocke un caractère sous la forme d’un code numérique, notamment selon ASCII ou Unicode. Une image ou une adresse mémoire ne constitue pas le codage du caractère lui-même.

Révisez avec les flashcards

Mémorisez les réponses avec 63 flashcards sur Algorithmique et programmation 1.

Comment le cours, le TD et le TP sont-ils articulés ?

Le cours présente les outils, le TD choisit les outils, le TP les utilise.

Quels documents sont autorisés lors des contrôles sur table ?

Les documents personnels de cours, TD et TP sont autorisés.

Quels outils sont interdits lors des contrôles sur table ?

Les outils électroniques sont interdits.

Voir les flashcards →

Approfondir avec la fiche

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

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