Université de Xidian – Polytech’Sophia 2016–2017
Langage C
(V. Granet)Durée : 1h30 Aucun document autorisé - Téléphones interdits
Nom chinois : Nom Pinyin :
Numéro étudiant : Classe :
Notez que les affirmations (antécédents, conséquents, rôles, et invariants) dans vos codes C entreront pour partie dans la note finale.
I1. En utilisant la notation de tableau, écrivez la fonctionstrRchrqui renvoie l’indice de la dernière occurrence d’un caractèrecdans une chaîne de caractères. Si le caractère n’est pas présent dans la chaîne, la fonctionstrRchrrenvoie−1.
1
I 2. Récrivez la fonctionstrRchrprécédente, mais cette fois-ci, en utilisant la notation de pointeur.
La fonctionstrRchr2renverra l’adresse de la dernière occurrence d’un caractèrecdans une chaîne de caractères. Si le caractère n’est pas présent dans la chaîne, la fonctionstrRchr2renvoieNULL.
I 3. Écrivez une fonctionmainqui donne plusieurs exemples d’utilisation de vos deux fonctions strRchrprécédentes.
2
I4. Écrivez la déclaration du typeDate, une structure formée de 3 champs entiers,jour,moiset anneepour représenter une date.
I5. Écrivez la déclaration du typePersonne, une structure, pour représenter une personne. Elle sera formée de 3 champs :nom(une chaîne de caractères),sexe(homme ou femme, un type énuméré) etnaissance(la date de naissance, de typeDate).
I6. Écrivez la déclaration de type d’un tableautpersdeMAXPERSONNES Personne. Vous définirez la constanteMAXPERSONNES, par exemple, égale à100
3
I 7. On considère que le tableau dePersonne tpersest entièrement initialisé (i.e. lesMAXPERSONNES personnes). Écrivez un programme qui écrit sur la sortie standard le nom et l’âge de toutes les femmes qui sont nées avant1999. On considère que l’année courante est2017. Pour calculer l’âge d’une personne, vous définirez la macroAGEavec une date en paramètre.
4