QCM : Introduction à la Programmation et Algorithmique — 20 questions

Questions et réponses du QCM

1. Quelle fonction Python transforme une chaîne JSON en dictionnaire Python ?

json.load
json.loads
json.dumps
json.dump

json.loads

Explication

json.loads lit une chaîne JSON et la convertit en structure Python, souvent un dictionnaire. json.dumps fait l’opération inverse en produisant une chaîne JSON.

2. Quel élément du programme C lance l’exécution du programme ?

Le préprocesseur
Une directive include
La fonction main
La fonction printf

La fonction main

Explication

L’exécution d’un programme C démarre dans la fonction main. Le préprocesseur agit avant la compilation, pas au démarrage.

3. Dans une expression de pointeur, que représente *ptr ?

La valeur pointée à l’adresse contenue dans le pointeur
Le nom du bloc mémoire alloué
Un type réservé aux tableaux
L’adresse du pointeur lui-même

La valeur pointée à l’adresse contenue dans le pointeur

Explication

*ptr déréférence le pointeur pour accéder à la valeur stockée à cette adresse. Sans *, ptr représente l’adresse.

4. Pourquoi utilise-t-on souvent if (!p) après new (nothrow) ?

Pour initialiser le tableau à zéro
Pour tester si l’allocation a échoué en renvoyant un pointeur nul
Pour convertir le pointeur en référence
Pour libérer automatiquement la mémoire

Pour tester si l’allocation a échoué en renvoyant un pointeur nul

Explication

new (nothrow) renvoie un pointeur nul en cas d’échec au lieu de lever une exception. Le test if (!p) permet donc de détecter cet échec avant d’utiliser *p.

5. En JavaScript, qu’est-ce qu’une classe ?

Une fonction qui affiche du texte
Un module réservé à Node.js
Un objet déjà instancié
Un modèle servant à créer des objets

Un modèle servant à créer des objets

Explication

Une classe est un modèle qui permet de créer des objets. Elle n’est pas l’objet lui-même, mais la structure à partir de laquelle on instancie des objets.

6. Quel opérateur permet d’obtenir l’adresse mémoire d’une variable en C ?

%
->
*
&

&

Explication

L’opérateur & renvoie l’adresse mémoire d’une variable. L’opérateur * sert ensuite à déréférencer cette adresse pour lire la valeur.

7. Quelle affirmation correspond à l’encodage ASCII classique ?

Il code les caractères sur 7 bits, pour des valeurs de 0 à 127
Il code les couleurs en hexadécimal sur 6 valeurs
Il code les caractères sur 8 bits, pour des valeurs de 128 à 255
Il code les caractères sur 16 bits par défaut

Il code les caractères sur 7 bits, pour des valeurs de 0 à 127

Explication

L’ASCII classique utilise 7 bits et couvre les valeurs de 0 à 127. L’Extended ASCII, lui, passe à 8 bits.

8. Que fait realloc sur un bloc déjà alloué ?

Elle libère immédiatement la mémoire et retourne NULL
Elle initialise tous les nouveaux emplacements à zéro
Elle alloue toujours un nouveau bloc sans copier l’ancien contenu
Elle peut changer la taille du bloc en conservant les valeurs existantes

Elle peut changer la taille du bloc en conservant les valeurs existantes

Explication

realloc redimensionne un bloc existant et conserve les valeurs déjà présentes. Les nouveaux emplacements ont une valeur indéfinie, pas zéro.

9. Que décrit la complexité asymptotique d’un algorithme ?

Le nombre exact d’instructions exécutées dans tous les cas
La vitesse du processeur utilisé
La taille du fichier source de l’algorithme
L’évolution de son temps ou de son espace quand la taille d’entrée grandit

L’évolution de son temps ou de son espace quand la taille d’entrée grandit

Explication

La complexité asymptotique étudie comment le temps ou l’espace évoluent lorsque la taille de l’entrée augmente. Elle ne dépend pas d’une machine précise ni du nombre exact d’instructions.

10. Quel couple d’opérateurs est correct pour libérer respectivement un objet unique et un tableau alloués avec new en C++ ?

delete[] pour un objet, delete pour un tableau
delete pour un objet, delete[] pour un tableau
free pour un objet, delete pour un tableau
realloc pour un objet, free pour un tableau

delete pour un objet, delete[] pour un tableau

Explication

Un objet créé avec new se libère avec delete, tandis qu’un tableau créé avec new[] se libère avec delete[]. Inverser les deux est une erreur classique.

11. Que signifie la notation O(g(n)) dans l’analyse d’un algorithme ?

Une croissance exactement égale à g(n)
Une borne supérieure sur la croissance
Une mesure du meilleur cas uniquement
Une borne inférieure sur la croissance

Une borne supérieure sur la croissance

Explication

O(g(n)) donne une borne supérieure de la croissance, souvent utilisée pour raisonner sur le pire cas. La borne inférieure correspond plutôt à Ω(g(n)).

12. Quel rôle JavaScript joue-t-il principalement dans une page Web ?

Dessiner la mise en page visuelle
Définir uniquement le contenu textuel
Programmer le comportement de la page
Remplacer le serveur côté navigateur

Programmer le comportement de la page

Explication

JavaScript sert à gérer le comportement et l’interactivité de la page. Le contenu est défini par HTML et la mise en page par CSS.

13. Comment appelle-t-on un fichier Python réutilisable que l’on peut importer dans un autre programme ?

Un module Python
Une classe Python
Un paquet JSON
Un script compilé

Un module Python

Explication

Un module Python est un fichier .py contenant du code réutilisable et importable. Le paquet json est une bibliothèque intégrée spécifique au traitement du JSON, pas le nom général d’un fichier réutilisable.

14. En Python, quel mot-clé sert à définir une fonction ?

func
lambda
function
def

def

Explication

En Python, une fonction se définit avec le mot-clé def. lambda existe aussi, mais il sert à créer une fonction anonyme, pas à définir une fonction classique avec ce nom.

15. En C++, qu’exprime une variable de type référence ?

Un pointeur obligatoirement nul au départ
Une adresse mémoire stockée dans un entier
Une copie indépendante de la variable
Un alias d’une variable existante

Un alias d’une variable existante

Explication

Une référence est un autre nom pour la même donnée. Toute modification via la référence agit donc sur la variable d’origine.

16. Dans une page Web, entre quelles balises place-t-on le code JavaScript ?

<style> et </style>
<script> et </script>
<code> et </code>
<js> et </js>

<script> et </script>

Explication

Le code JavaScript est inséré entre les balises <script> et </script>. Les balises <style> servent au CSS, pas au JavaScript.

17. Quelle fonction du langage C réserve un bloc de mémoire contigu pour plusieurs éléments et les initialise à zéro ?

realloc
calloc
free
malloc

calloc

Explication

calloc alloue un espace pour n éléments et initialise chaque bloc à 0. malloc alloue aussi de la mémoire, mais sans initialisation.

18. Dans Node.js, quel mécanisme permet de charger un module avant de l’utiliser ?

import json
require
constructor
export

require

Explication

Dans Node.js, require permet de charger un module pour l’utiliser ensuite. export sert à rendre des éléments disponibles depuis un module, mais pas à le charger.

19. Quel mécanisme Python permet de transmettre un nombre inconnu d’arguments nommés à une fonction ?

return
*args
**kwargs
pass

**kwargs

Explication

**kwargs collecte les arguments nommés supplémentaires dans un dictionnaire. *args sert, lui, à récupérer un nombre variable d’arguments positionnels.

20. Quel énoncé décrit correctement un octet ?

Un groupe de 16 bits utilisé par défaut pour Unicode
Un caractère codé sur 7 bits en ASCII
Une valeur binaire unique égale à 0 ou 1
Un groupe de 8 bits utilisé pour mesurer la taille des données

Un groupe de 8 bits utilisé pour mesurer la taille des données

Explication

Un octet correspond à 8 bits. Les 7 bits concernent l’ASCII, tandis qu’un bit est la plus petite unité de données.

Révisez avec les flashcards

Mémorisez les réponses avec 20 flashcards sur Introduction à la Programmation et Algorithmique.

Système binaire — définition ?

Un système de numération en 0 et 1.

Bit — unité ?

La plus petite unité de donnée, 0 ou 1.

Octet — taille ?

Groupe de 8 bits.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Introduction à la Programmation et Algorithmique.

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