Creative Commons License

Questions: deuxième session

Question 1.a

Quels sont les avantages à utiliser un Makefile et la commande make. (1 point)

Question 1.b

Quelles sont les différences entre un compilateur et un interpréteur. Donnez des exemples de langages compilés et de langages interprétés. (1 point)

Question 2.a

Quelles sont les différentes étapes de compilation d’un programme C en utilisant un compilateur comme gcc. (1 point)

Question 2.b

Quels sont les objectifs des options -o et -c? Donnez un exemple d’utilisation pour chaque option. (1 point)

Question 3

Vous êtes sur une machine de 64 bits et vous utilisez également un système d’exploitation 64bits. Quelle est la valeur renvoyée par chacune des lignes suivantes ?

Justifiez votre réponse. (1 point)

Question 4.a

Quelles sont les différences entre les mots-clés struct et union en C ? (1 point)

Question 4.b

Coder en C une structure de données chanson qui comporte les éléments suivants : identifiant, titre, nom de chanteur(s)/chanteuse(s), durée de la chanson, année de la sortie, nom de compositeur/compositrice, prix. Instanciez une variable de cette structure (par exemple, les détails de votre chanson préférée). (1 point)

Question 5

Coder en C la fonction float conversion (char * str) qui permet de convertir une chaine de caractères str à un nombre flottant (float). La fonction conversion renvoie le nombre après la conversion. Vous pouvez utiliser les fonctions disponibles dans les bibliothèques standards ou vous pouvez écrire votre propre fonction. (1 point)

Question 6

La suite de Fibonacci est une suite d’entiers définie comme suit:

Codez en C la fonction fibonacci(int n), qui affiche les n termes de la suite de Fibonacci U0, U1, U2,...Un. Vous devrez utiliser les boucles (par exemple, for, while, do..while) pour cette question. Par exemple fibonacci(6) affiche

1 1 2 3 5 8

(1.5 points)

Question 7

Vous avez des fichiers C suivants : calcule.c, serveur.c et client.c. Ecrivez un Makefile qui peut générer deux fichiers exécutables appelés serveur et client. L’exécutable serveur est généré en utilisant calcule.c, serveur.c et l’exécutable client est généré en utilisant calcule.c et client.c. (1.5 points)

Question 8

Considérer un entier d (int d ;). Codez en C une fonction qui vérifie si les 5eme et 20eme bits de droite sont 1 (en binaire). Si les deux bits sont 1, la fonction renvoie 1 sinon 0. (1.5 points)

Question 9

Codez en C la fonction qui affiche les mots uniques dans un fichier. Le nom du fichier est saisi par l’utilisateur. C’est important que votre programme n’affiche pas un mot plus d’une fois. Par exemple, la sortie de votre programme peut ressembler à ceci

(1.5 points)

Question 10

Codez en C le code qui affiche le compte de différents caractères (a-z, A-Z, 0-9) dans un fichier. Le nom du fichier est saisi par l’utilisateur. Par exemple, la sortie de votre programme peut rassembler comme ci-dessous.
  A : 25 fois
  B : 3 fois
… (2 points)

Question 11

Codez en C un programme qui cherche une phrase (par exemple ‘Bonjour le monde !’) passée par l’utilisateur dans un fichier. Le nom du fichier est également saisi par l’utilisateur. Votre programme doit afficher les numéros de lignes où la phrase apparait. Par exemple, si l’utilisateur cherche le mot ‘Bonjour le monde !’ dans un fichier message.txt, l’affichage de votre programme peut ressembler à ceci :
  Ligne 123   Ligne 678   ... (2 points)

Question 12

En utilisant les listes simplement chainées, écrivez le code liste.c (et liste.h) et implémentez les fonctions suivantes :

(2 points)