Programmation bas niveau (BNV) Help

Correction : QCM Programmation bas niveau et fonctionnement d'un ordinateur

🟩 : Vrai

πŸ”΄ : Faux

Questions

Question 1

Si vous posez une question à un·e dev et qu'iel vous répond "RTFM", qu'est-ce qu'iel vous incite à faire ?

  • 🟩 a. Consulter le manuel de la fonction Read The F*****g Manual

  • πŸ”΄ b. Éteindre et rallumer l'ordinateur Reboot The F*****g Machine

  • πŸ”΄ c. À reformatter votre poste Restore Trial Format Machine

  • πŸ”΄ d. À danser Rotate Turn Fly Mambo

Question 2

Que va afficher le script shell suivant :

#!/bin/bash echo "$1";
  • πŸ”΄ a. Rien, la variable $1 n'est pas déclarée

  • 🟩 b. Il va afficher le premier argument que l'on lui transmet à l'éxécution

  • πŸ”΄ c. 1

  • πŸ”΄ d. 1 et retour à la ligne

Question 3

Quelle commande permet d'afficher le contenu d'un fichier dans le terminal ?

  • πŸ”΄ a. dog

  • πŸ”΄ b. show

  • πŸ”΄ c. details

  • 🟩 d. cat

Question 4

Comment s'appelle l'outil que nous utilisons dans le cours pour compiler du C sans Makefile ?

  • πŸ”΄ a. comp

  • πŸ”΄ b. vsbuild

  • 🟩 c. gcc

  • πŸ”΄ d. cbuild

Question 5

Si la RAM est la mémoire à court terme et le disque dur est la mémoire à long-terme, quel composant d'un ordinateur est considéré comme son cerveau ?

  • 🟩 a. Le processeur

  • πŸ”΄ b. La carte mère

  • πŸ”΄ c. L'alimentation

  • πŸ”΄ d. La carte graphique

Question 6

fichier main.c

#include <stdlib.h> #include <stdio.h> int main() { printf("Hello World!\n") return(0); }

Qu'affiche le programme ci-dessus ?

  • πŸ”΄ a. "Hello World"

  • πŸ”΄ b. "Hello World" et un retour à la ligne

  • 🟩 c. Rien il ne compile pas

  • πŸ”΄ d. "Hello" retour à la ligne "World"

Question 7

En C, dans quelle librairie vais-je trouver les fonctions strcpy et strcmp?

  • πŸ”΄ a. stdlib.h

  • 🟩 b. string.h

  • πŸ”΄ c. stdio.h

  • πŸ”΄ d. unistd.h

Question 8

Classez les langages suivants du plus bas niveau au plus haut niveau :

C, Binaire, Assembleur, PHP.

  • πŸ”΄ a. Binaire, Assembleur, PHP, C

  • πŸ”΄ b. Assembleur, Binaire, C, PHP

  • 🟩 c. Binaire, Assembleur, C, PHP

  • πŸ”΄ d. PHP, C, Assembleur, Binaire

Question 9

int main() { int number; scanf("%d", &number); printf("%d\n", number); return(0); }

Dans le code ci-dessus, à quoi sert le symbole & dans scanf("%d", &number);?

  • πŸ”΄ a. À obliger scanf à récupérer une valeur numérique

  • πŸ”΄ b. À décorer afin de changer un peu

  • πŸ”΄ c. À s'assurer que scanf va récupérer un nombre entier

  • 🟩 d. À passer à scanf l'adresse de number

Question 10

En C, que contient un pointeur ?

  • πŸ”΄ a. De la magie noire

  • 🟩 b. L'adresse de la variable pointée

  • πŸ”΄ c. Une variable

  • πŸ”΄ d. Ça dépend du pointeur

Question 11

Quelle est la différence entre une redirection simple > et une redirection double >>?

  • πŸ”΄ a. > redirige la sortie standard et >> la sortie d'erreur

  • πŸ”΄ b. > écrit dans un fichier et >> écrit dans plusieurs

  • 🟩 c. > écrase le contenu du fichier, >> rajoute à la fin du contenu

  • πŸ”΄ d. Dans un script, on peut utiliser > mais pas >>

Question 12

#include <stdio.h> #include <stdlib.h> int main() { if('*' == 42) { printf("La vie l'univers et tout le reste!\n"); } return(0); }

Qu'affiche le programme ci-dessus ?

  • 🟩 a. La vie l'univers et tout le reste! et un retour à la ligne

  • πŸ”΄ b. Rien la comparaison ne peut pas marcher

  • πŸ”΄ c. Rien ça ne compile pas

  • πŸ”΄ d. *

Question 13

Laquelle ou lesquelles de ces commandes permet de rajouter des informations à la fin d'un fichier ?

  • 🟩 a. cat fichier1.txt >> fichier2.txt

  • πŸ”΄ b. touch fichier1.txt && touch fichier2.txt

  • 🟩 c. echo "Tralalala" >> fichier1.txt

  • πŸ”΄ d. mkdir dossier && touch dossier/fichier1

Question 14

#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char * str = "Hello"; int len = strlen(str); printf("%d", len); return(0); }

Qu'affiche le code ci-dessus ?

  • 🟩 a. La longueur de la chaine de caractères str

  • πŸ”΄ b. Rien, cela ne compile pas, il manque une librairie

  • 🟩 c. 5

  • πŸ”΄ d. Hello

Question 15

#ifndef __STRUCT_H__ #define __STRUCT_H__ #endif

À quoi sert la directive #ifndef dans le code ci-dessus ?

  • πŸ”΄ a. à nommer le fichier .h

  • πŸ”΄ b. À rien, c'est comme un commentaire

  • πŸ”΄ c. À indiquer à l'ordinateur qu'il va y avoir des structures

  • 🟩 d. À éviter les conflits en incluant deux fois les mêmes informations

Question 16

#include <stdlib.h> #include <stdio.h> int main() { char * str = malloc(6 * sizeof(char)); str[5] = '\0'; }

À quoi sert le caractère \0 dans le code ci-dessus ?

  • πŸ”΄ a. À initialiser la chaine

  • 🟩 b. À fournir une condition d'arrêt pour les boucles

  • 🟩 c. À indiquer la fin de la chaine de caractères

  • πŸ”΄ d. À faire fonctionner le malloc

Question 17

#include <stdlib.h> #include <stdio.h> int main() { int number; scanf("%d", &number); if((number % 2) == 0) { } return(0); }

À quoi peut servir la condition dans le code ci-dessus ?

  • πŸ”΄ a. À empêcher de diviser par 0

  • 🟩 b. À savoir si number est pair

  • πŸ”΄ c. À savoir si number est impair

  • πŸ”΄ d. À déterminer combien fait 2% de number

Question 18

Dans un script shell, quelle commande est l'équivalent de la fonction scanf?

  • πŸ”΄ a. scan

  • πŸ”΄ b. ask

  • πŸ”΄ c. prompt

  • 🟩 d. read

Question 19

void * malloc(size_t tailleNecessaire);

Que représente le void * dans le prototype de la fonction malloc?

  • πŸ”΄ a. Un pointeur vers le néant distordu

  • πŸ”΄ b. C'est l'équivalent de NULL

  • 🟩 c. Un pointeur dont on ne connait pas encore le type

  • πŸ”΄ d. Un booléen

Question 20

Quelles fonctions vais-je devoir utiliser si je veux écrire dans un fichier en C ?

  • 🟩 a. fopen

  • 🟩 b. fprintf

  • 🟩 c. fclose

  • πŸ”΄ d. file_write

Question 21

Dans le pseudo-assembleur (codé par Mari), à quoi sert le registre cursor?

  • πŸ”΄ a. À personnaliser l'apparence de votre curseur de souris

  • πŸ”΄ b. À lire ou écrire dans la RAM

  • 🟩 c. À stocker la position actuelle dans la RAM

  • πŸ”΄ d. À se deplacer vers une autre instruction

Question 22

Qu’entend‑on par "écoconception" ?

  • 🟩 a. Mettre en place des pratiques visant à réduire au minimum son impact environnemental

  • πŸ”΄ b. Le nom de l'éditeur du jeu vidéo Eco

  • πŸ”΄ c. Concevoir ses programmes pour qu’ils soient le plus évolutifs possible

  • 🟩 d. Écrire du code qui n’emploie que les ressources strictement nécessaires

Question 23

En utilisant la fonction vu en cours pour ouvrir un fichier, quel(s) mode(s) puis-je utiliser pour écrire à la fin d'un fichier ?

  • πŸ”΄ a. w

  • 🟩 b. a

  • πŸ”΄ c. r

  • 🟩 d. a+

Question 24

Dans le pseudo-assembleur (codé par Mari), zjump vérifie la valeur de quel(s) registre(s) pour être déclenché ?

  • πŸ”΄ a. cursor et registre

  • 🟩 b. condition

  • πŸ”΄ c. storage

  • πŸ”΄ d. condition et read

Question 25

question.json

{ "program_name": "Question 25", "instructions": [ { "name": "add", "register": "cursor", "value": 21 }, { "name": "add", "register": "storage", "value": 42 }, { "name": "write" }, { "name" : "exit" } ] }

Dans le pseudo-assembleur (codé par Mari), qu'effectue ce programme ?

  • 🟩 a. il inscrit 21 dans le registre cursor en première instruction

  • πŸ”΄ b. il écrit 21 dans la pseudo-mémoire à la case d'index 42

  • 🟩 c. il écrit 42 dans la pseudo-mémoire à la case d'index 21

  • πŸ”΄ d. il ne fonctionne pas

Question 26

De quel(s) composant(s) est/sont dépendant(s) l'assembleur utilisé par votre ordinateur ?

  • πŸ”΄ a. La RAM

  • πŸ”΄ b. Le Disque Dur

  • 🟩 c. Le Processeur

  • πŸ”΄ d. Le Système d'Exploitation

Question 27

Parmi ces langages, lequel est le plus bas-niveau :

  • 🟩 a. Assembleur

  • πŸ”΄ b. C

  • πŸ”΄ c. PHP

  • πŸ”΄ d. C++

Question 28

En assembleur où sont stockées les valeurs que vous manipulez ?

  • πŸ”΄ a. Dans le disque dur

  • 🟩 b. Dans les registres

  • πŸ”΄ c. Nulle part

  • πŸ”΄ d. Dans la RAM

Question 29

Comment appelle-t-on les commandes que l'assembleur peut exécuter ?

  • πŸ”΄ a. Des commandes

  • πŸ”΄ b. Des fonctions

  • πŸ”΄ c. Des ordres

  • 🟩 d. Des instructions

Question 30

Quelle(s) commande(s) crée(s) un dossier puis un fichier à l’intérieur (si le dossier n’existe pas) ?

  • 🟩 a. mkdir J12 && touch J12/qcm.txt

  • πŸ”΄ b. touch J12 && mkdir J12/qcm.txt

  • 🟩 c. mkdir -p J12 && touch J12/qcm.txt

  • πŸ”΄ d. rm -rf J12/qcm.txt

Question 31

int number; scanf("%d", &number);

Pourquoi passe-t-on &number à scanf?

  • 🟩 a. Pour fournir l’adresse où stocker la valeur lue

  • πŸ”΄ b. Parce que scanf renvoie toujours un pointeur

  • πŸ”΄ c. Sinon scanf lirait sur l’entrée standard

  • πŸ”΄ d. Pour forcer scanf à lire un entier

Question 32

int main(int argc, char **argv);

Laquel/Lesquelles de ces affirmations est/sont vraie(s) ?

  • 🟩 a. argc compte le nombre d'arguments reçu au moment de l'exécution

  • πŸ”΄ b. argv compte le nombre d'arguments reçu au moment de l'exécution

  • 🟩 c. argv[argc] est NULL

  • πŸ”΄ d. argc[argv] est NULL

Question 33

Laquel/Lesquelles de ces affirmations est/sont vraie(s) ?

  • 🟩 a. Un pointeur stocke une adresse

  • 🟩 b. L’opérateur * déréférence un pointeur

  • 🟩 c. L’opérateur & obtient l’adresse d’une variable

  • πŸ”΄ d. int *p; p = 42; p contient l'adresse de la valeur 42

Question 34

À propos des boucles en C :

  • 🟩 a. for et while sont deux moyens de réaliser des itérations

  • πŸ”΄ b. do ... while lance deux boucles en simultané

  • 🟩 c. break quitte la boucle courante

  • πŸ”΄ d. exit permet de quitter la boucle et continuer le programme

Question 35

Laquelle/lesquelles de ces affirmations est/sont vraie(s) en C ?

  • 🟩 a. == compare deux valeurs

  • 🟩 b. = affecte une valeur à une variable

  • πŸ”΄ c. if(a = 0) teste correctement que a vaut 0

  • 🟩 d. != teste l’inégalité

23 October 2025