Creative Commons License

Questions: deuxième session

Question 1

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

Quelle est la principale différence entre la boucle while et la boucle do..while? (1 point)

Question 2.b

Coder en C la fonction void afficher_while() qui permet d’afficher les nombres inférieurs ou égaux à 1000, qui sont divisibles par 25 et non divisibles par 7 en utilisant une boucle while.

Coder en C la fonction void afficher_dowhile() qui permet d’afficher les nombres inférieurs ou égaux à 1000, qui sont divisibles par 25 et non divisibles par 7 en utilisant une boucle do..while.

(2 points)

Question 3.a

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

Question 3.b

Coder en C une structure de données Livre qui comporte les éléments suivants : identifiant, titre, nom d’écrivain(e), nombre de pages, année de publication, nom de la maison d’édition, prix. Instanciez une variable de cette structure (par exemple, les détails de votre livre préféré). (1 point)

Question 4.a

Quelle est la valeur renvoyée par chacune des lignes suivantes?

  1. 10 % 4
  2. 10 & 4
  3. 10 | 4
  4. 10 && 4
  5. 10 || 4

Justifiez votre réponse. (1 point)

Question 4.b

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?

  1. sizeof (char)
  2. sizeof (char *)
  3. sizeof (char **)
  4. sizeof (char ***)

Justifiez votre réponse. (1 point)

Question 5

Codez en C un programme qui prend des numéros (un ou plusieurs) passé par la ligne de commande. L’objectif de cette fonction est de calculer

  1. Le numéro plus grand
  2. Le numéro plus petit
N’utilisez pas scanf. (1.5 points)

Question 6

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

En utilisant une méthode récursive, coder en C la fonction fibonacci qui prend n comme entrée et affiche les n termes de la suite de Fibonacci U0, U1, U2,...Un. (1.5 points)

Question 7

Une des bonnes pratiques de programmation en C est de diviser le code en plusieurs modules (module1, module2,etc...) Pour chaque module on associe un fichier .h (exemple module1.h) et un fichier .c (exemple module2.c).

  1. Quel code est implémenté dans le fichier .h ?
  2. Quel code est implémenté dans le fichier .c ?
  3. Quelle commande de compilation permet d’obtenir le fichier .o à partir du fichier.c? Donner la commande pour avoir le module1.o à partir du module1.c
  4. Que contient le fichier module1.o?
  5. Est-ce que le fichier module1.o est un fichier exécutable ?

(1.5 points)

Question 8

Coder en C la fonction trier qui prend un tableau des entiers et qui range et affiche ces entiers dans l’ordre croissant. (1.5 points)

Question 9

Coder en C la fonction qui permet d’afficher les 10 dernières lignes d’un fichier dont le nom est passé en ligne de commande. (1.5 points)

Question 10

Examiner le contenu des deux fichiers repertoire.h et repertoire.c. Compléter le code de la fonction void lire_dossier(char* nom_dossier) qui permet de parcourir le répertoire, dont le nom est passé en paramètre, et affiche les noms de tous les répertoires dans ce répertoire. (1.5 points)

Question 11

Codez en C le programme qui cherche un fichier dans un répertoire. Le nom de fichier ainsi que le chemin de répertoire sont saisis par l’utilisateur. Le programme affiche ‘oui’ ou ‘non’. Pour simplifier notre question, nous imaginons qu’il n’y a pas des sous-répertoires dans le répertoire saisi par l’utilisateur. (1.5 points)

Question 12

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

(1.5 points)