QCM : Algorithmique basique en Python (10 questions)

Questions et réponses du QCM

1. Concernant le changement d’une roue, cochez la (les) proposition(s) exacte(s) :

Si la roue crevée est à gauche, le cric est installé à droite après l’avoir fait monter.
Pour une roue crevée à gauche, le cric est installé à gauche avant de le faire monter.
Après avoir sorti le cric, la manivelle et la roue de secours, on monte la voiture.
La roue de secours est montée avant que la roue crevée soit démontée.
Après le montage de la roue de secours, on enlève le cric puis on range le matériel.

Pour une roue crevée à gauche, le cric est installé à gauche avant de le faire monter. · Après avoir sorti le cric, la manivelle et la roue de secours, on monte la voiture. · Après le montage de la roue de secours, on enlève le cric puis on range le matériel.

Explication

Le matériel est sorti avant la mise sur cric, et le cric est placé du côté de la roue crevée avant d’être fait monter. La roue crevée est démontée avant le montage de la roue de secours; après ce montage, le cric est enlevé puis le matériel rangé. Ainsi, pour une roue crevée à gauche, le cric n’est pas installé à droite après l’avoir fait monter.

2. Un étudiant distingue les constituants d’un langage algorithmique et les symboles d’une grammaire. Parmi les propositions suivantes, laquelle(s) est(sont) exacte(s) ?

La pragmatique peut s’ajouter aux trois autres composantes d’un langage algorithmique.
La pragmatique fait partie de tout langage algorithmique au même titre que la syntaxe.
Un langage algorithmique comprend un lexique, une syntaxe et une sémantique.
Les non-terminaux désignent les mots du langage écrits comme éléments lexicaux.
Les symboles « si » et « + » sont des terminaux dans une grammaire informatique.

La pragmatique peut s’ajouter aux trois autres composantes d’un langage algorithmique. · Un langage algorithmique comprend un lexique, une syntaxe et une sémantique. · Les symboles « si » et « + » sont des terminaux dans une grammaire informatique.

Explication

Le lexique, la syntaxe et la sémantique sont des composantes du langage; la pragmatique peut également être présente. « Si » et « + » sont des terminaux, tandis que les non-terminaux désignent des structures syntaxiques à décliner.

3. Une grammaire formelle doit décrire précisément la syntaxe d’un langage de programmation. Quelle(s) proposition(s) est(sont) juste(s) au sujet de sa notation en BNF étendue ?

Dans une règle, ::= introduit la définition du symbole placé à gauche.
Les parenthèses servent à regrouper des éléments dans une règle grammaticale.
Le symbole + indique qu’un élément peut apparaître une fois ou davantage.
Le symbole | sépare des possibilités alternatives dans une règle grammaticale.
Une paire de crochets indique qu’un élément peut apparaître au plus une fois.

Dans une règle, ::= introduit la définition du symbole placé à gauche. · Les parenthèses servent à regrouper des éléments dans une règle grammaticale. · Le symbole + indique qu’un élément peut apparaître une fois ou davantage. · Le symbole | sépare des possibilités alternatives dans une règle grammaticale. · Une paire de crochets indique qu’un élément peut apparaître au plus une fois.

Explication

En BNF étendue, ::= signifie « par définition » et | exprime une alternative; + signifie « une fois ou plus ». Les crochets indiquent une présence au plus une fois, tandis que les parenthèses servent au regroupement; la grammaire formelle définit précisément la syntaxe.

4. Que représente le type `float` en Python ?

Des entiers relatifs dont la taille est limitée par la mémoire disponible
Des nombres à virgule flottante qui approchent les nombres réels avec une précision limitée
Des nombres entiers obtenus par division avec conservation du reste
Des nombres décimaux représentés exactement quelle que soit leur valeur

Des nombres à virgule flottante qui approchent les nombres réels avec une précision limitée

Explication

Le type `float` sert à représenter des nombres à virgule flottante, qui constituent une approximation limitée des nombres réels. Contrairement à cette représentation, les entiers Python ne sont pas limités en taille par une précision numérique fixe.

5. Lors d’un test logique en Python, quel résultat produit l’expression `not False` ?

La valeur booléenne True
La valeur None
Une erreur de comparaison
La valeur booléenne False

La valeur booléenne True

Explication

L’opérateur `not` inverse une valeur booléenne : appliqué à False, il produit True. À la différence de `and` et `or`, il ne renvoie pas l’un de ses opérandes non booléens.

6. Quel est le rôle de la fonction `int()` lors d’une conversion de type en Python ?

Convertir un entier ou une chaîne en flottant
Convertir une chaîne ou un flottant en entier
Transformer une valeur en représentation textuelle lisible
Évaluer une chaîne comme du code Python

Convertir une chaîne ou un flottant en entier

Explication

La fonction `int()` convertit une chaîne ou un flottant en entier. `float()` sert plutôt à obtenir un flottant à partir d’une chaîne ou d’un entier.

7. Quelle différence distingue l’effet de `print()` de celui de `input()` dans un programme Python ?

`print()` transmet des valeurs du programme vers l’utilisateur, tandis que `input()` reçoit du texte de l’utilisateur.
`print()` modifie la valeur d’une variable, tandis que `input()` définit son type de données.
`print()` convertit les saisies en nombres, tandis que `input()` affiche ces nombres à l’écran.
`print()` reçoit du texte de l’utilisateur, tandis que `input()` transmet des valeurs vers l’écran.

`print()` transmet des valeurs du programme vers l’utilisateur, tandis que `input()` reçoit du texte de l’utilisateur.

Explication

`print()` affiche des valeurs à l’utilisateur, alors que `input()` fournit au programme le texte saisi par l’utilisateur. La conversion en nombre peut être effectuée après la lecture avec `int()` ou `float()` ; `input()` n’affiche pas les valeurs à l’écran.

8. Quelle propriété distingue une affectation parallèle comme `x, y = y, x` de deux affectations successives destinées à échanger les valeurs ?

Elle copie les deux variables dans une nouvelle liste.
Elle ajoute les valeurs aux variables avec `+=`.
Elle échange les valeurs sans écrasement intermédiaire.
Elle attribue la même valeur aux deux variables.

Elle échange les valeurs sans écrasement intermédiaire.

Explication

L’affectation parallèle évalue les valeurs à droite avant de les attribuer, ce qui permet d’échanger les variables sans perdre leur contenu initial. Avec des affectations successives, la première modification peut écraser une valeur dont la seconde instruction aurait besoin.

9. Dans une boucle `while`, quelle conséquence découle du fait que sa condition reste vraie ?

Les instructions suivantes sont ignorées après un seul passage.
Les instructions du corps de la boucle sont répétées.
Les valeurs de la boucle sont parcourues jusqu’à une borne exclue.
Le corps de la boucle est exécuté avant tout test de condition.

Les instructions du corps de la boucle sont répétées.

Explication

La boucle `while` répète ses instructions tant que sa condition est vraie. À la différence d’un parcours avec `for` et `range`, sa répétition dépend d’un test logique plutôt que de bornes entières prédéfinies.

10. Pour déterminer la condition d’une boucle lors de la conception d’un algorithme, quelle démarche permet de savoir quand elle doit s’arrêter ?

Repérer la condition d’arrêt qui décide si les répétitions doivent continuer.
Fixer une condition qui empêche les variables de changer pendant la boucle.
Définir une condition qui affiche les résultats après chaque étape intermédiaire.
Choisir une condition qui vérifie que les données initiales sont toutes numériques.

Repérer la condition d’arrêt qui décide si les répétitions doivent continuer.

Explication

La condition d’arrêt détermine si la répétition doit se poursuivre ou prendre fin, après avoir identifié l’étape répétée. Vérifier le type des données initiales peut être utile à d’autres égards, mais ne définit pas à lui seul l’arrêt de la boucle.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Algorithmique basique en Python.

Quelles étapes principales composent le changement d’une roue ?

Sortir le matériel, lever la voiture, remplacer la roue, enlever le cric et ranger le matériel.

Quels sont les trois types d’ordonnancement d’un algorithme ?

Séquentiel, conditionnel et itératif.

Quels composants un langage algorithmique comprend-il ?

Un lexique, une syntaxe, une sémantique et éventuellement une pragmatique.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Algorithmique basique en Python.

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