QCM Programmation bas niveau et fonctionnement d'un ordinateur
Informations de l'étudiant·e
NOM Prénom
Informations de rendu
Dans un fichier nom-prenom-qcm.txt, notez vos réponses sous la forme
Envoyez ensuite ce fichier par mail avec l'objet [QCM BNV] Prénom NOM à : hugues.froger@kornog.bzh
Conditions d'examen
Vous avez le droit à internet, Google et toutes les ressources présentes dessus (oui y compris ChatGPT), mais vous n'avez pas le droit de communiquer avec d'autres humains.
Le questionnaire se divise en 35 questions.
1 bonne réponse : 1 point
une réponse incomplète : 0.5 point
pas de réponse ou réponse fausse : 0 point.
Vous avez deux heures pour répondre à ces 35 questions.
Que la Force soit avec vous !
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 Manualb. Éteindre et rallumer l'ordinateur
Reboot The F*****g Machinec. À reformatter votre poste
Restore Trial Format Machined. À danser
Rotate Turn Fly Mambo
Question 2
Que va afficher le script shell suivant :
a. Rien, la variable
$1n'est pas déclaréeb. 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.
dogb.
showc.
detailsd.
cat
Question 4
Comment s'appelle l'outil que nous utilisons dans le cours pour compiler du C sans Makefile ?
a.
compb.
vsbuildc.
gccd.
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
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
Dans le code ci-dessus, à quoi sert le symbole & dans scanf("%d", &number);?
a. À obliger
scanfà récupérer une valeur numériqueb. À décorer afin de changer un peu
c. À s'assurer que
scanfva récupérer un nombre entierd. À passer à
scanfl'adresse denumber
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'erreurb.
>écrit dans un fichier et>>écrit dans plusieursc.
>écrase le contenu du fichier,>>rajoute à la fin du contenud. Dans un script, on peut utiliser
>mais pas>>
Question 12
Qu'affiche le programme ci-dessus ?
a.
La vie l'univers et tout le reste!et un retour à la ligneb. 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.txtb.
touch fichier1.txt && touch fichier2.txtc.
echo "Tralalala" >> fichier1.txtd.
mkdir dossier && touch dossier/fichier1
Question 14
Qu'affiche le code ci-dessus ?
a. La longueur de la chaine de caractères
strb. Rien, cela ne compile pas, il manque une librairie
c.
5d.
Hello
Question 15
À quoi sert la directive #ifndef dans le code ci-dessus ?
a. à nommer le fichier
.hb. À 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
À 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
À quoi peut servir la condition dans le code ci-dessus ?
a. À empêcher de diviser par 0
b. À savoir si
numberest pairc. À savoir si
numberest impaird. À déterminer combien fait 2% de
number
Question 18
Dans un script shell, quelle commande est l'équivalent de la fonction C scanf?
a. scan
b. ask
c. prompt
d. read
Question 19
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
Quelle(s) fonction(s) vais-je devoir utiliser si je veux écrire dans un fichier en C ?
a.
fopenb.
fprintfc.
fclosed.
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.
wb.
ac.
rd.
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.
cursoretregistreb.
conditionc.
storaged.
conditionetread
Question 25
question.json
Dans le pseudo-assembleur (codé par Mari), qu'effectue ce programme ?
a. il inscrit
21dans le registrecursoren première instructionb. il écrit
21dans la pseudo-mémoire à la case d'index 42c. il écrit
42dans la pseudo-mémoire à la case d'index 21d. 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.txtb.
touch J12 && mkdir J12/qcm.txtc.
mkdir -p J12 && touch J12/qcm.txtd.
rm -rf J12/qcm.txt
Question 31
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
Laquel/Lesquelles de ces affirmations est/sont vraie(s) ?
a.
argccompte le nombre d'arguments reçu au moment de l'exécutionb.
argvcompte le nombre d'arguments reçu au moment de l'exécutionc.
argv[argc]estNULLd.
argc[argv]estNULL
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 pointeurc. L’opérateur
&obtient l’adresse d’une variabled.
int *p; p = 42;p contient l'adresse de la valeur 42
Question 34
À propos des boucles en C :
a.
foretwhilesont deux moyens de réaliser des itérationsb.
do ... whilelance deux boucles en simultanéc.
breakquitte la boucle couranted.
exitpermet de quitter la boucle et continuer le programme
Question 35
Laquelle/lesquelles de ces affirmations est/sont vraie(s) en C ?
a.
==compare deux valeursb.
=affecte une valeur à une variablec.
if(a = 0)teste correctement queavaut0d.
!=teste l’inégalité