Programmation bas niveau (BNV) Help

Exercices Bonus

Exercice Bonus 1 :

Objectif : créer une fonction qui va échanger les contenus de deux variables en utilisant des pointeurs.

Consignes

Dans un fichier swap_ptr.c vous allez devoir compléter la fonction suivante :

void swap_ptr(int *ptr1, int *ptr2) { }

Cette fonction devra échanger les valeurs pointées par ptr1 et ptr2.

La fonction main ci-dessous est obligatoire et ne peut pas être modifiée :

#include <stdlib.h> #include <stdio.h> #include "swap_ptr.h" int main() { int val1 = 42; int val2 = 21; printf("val1 : %d, val2 : %d\n", val1, val2); swap_ptr(&val1, &val2); printf("val1 : %d, val2 : %d\n", val1, val2); exit(0); }

Votre programme devra renvoyer le code de fin 0.

Compilez votre programme via un Makefile et exécutez-le.

Compilation et exécution

Compilation

make all

Re-Compilation

make re

Exécution

./bonus-1

Exercice Bonus 2 :

Objectif : créer une fonction qui compte le nombre de mots dans une chaine de caractères et le retourne. Compiler le programme et l'exécuter.

Consignes

Créer une fonction int count_words(char *str) qui compte le nombre de mots dans la chaine de caractères str reçue en paramètre et le retourne. Les mots sont séparés par des espaces ou des apostrophes.

Votre programme devra renvoyer le code de fin 0.

Compilez votre programme via un Makefile et exécutez-le.

Votre main de départ :

#include <stdlib.h> #include <stdio.h> #include "count_words.h" int main() { int nb_words; nb_words = count_words("Hello World!"); printf("La phrase contient %d mots\n", nb_words); nb_words = count_words("La vie l'univers et tout le reste"); printf("La phrase contient %d mots\n", nb_words); exit(0); }

Il faut également que cette appel à count_words() soit correct :

nb_words = count_words("La vie l'univers et tout le reste"); printf("La phrase contient %d mots\n", nb_words);

Compilation et exécution

Compilation

make all

Re-Compilation

make re

Exécution

./bonus-2

Exercice Bonus 3 :

Objectif : créer une fonction qui affiche les mots d'une chaine de caractères à l'envers. Compiler le programme et l'exécuter.

Consignes

Créer une fonction void revert_words(char *str) qui affiche les mots de la chaine de caractères str reçue en paramètre du dernier au premier suivi d'un retour à la ligne.

Votre programme devra renvoyer le code de fin 0.

Compilez votre programme via un Makefile et exécutez-le.

Votre main de départ :

#include <stdlib.h> #include "revert_words.h" int main() { revert_words("Hello World!"); revert_words("La vie, l'univers et tout le reste"); exit(0); }

Compilation et exécution

Compilation

make all

Re-Compilation

make re

Exécution

./bonus-3
14 October 2025