Université de Xidian – Polytech’Sophia 2019–2020
Langage C
(V. Granet)Durée : 1h30 Aucun document autorisé - Téléphones interdits
Nom chinois : Nom Pinyin :
Numéro étudiant : Classe :
I 1. Écrivez la structure compteurs qui contient deux champs de type int appelés nbLettres et nbChiffres.
I 2. En utilisant uniquement la notation de pointeur, écrivez la fonction compter qui renvoie une structure de typecompteursqui contient le nombre de lettres et de chiffres contenus dans la chaîne de caractères passée en paramètres. Vous pourrez utiliser les fonctionsisalpha etisdigit.
1
I 3. En utilisant la fonctioncompter précédente, écrivez en C le programme myprog qui affiche sur la sortie standard le nombre de lettres et de chiffres d’une chaîne de caractères passée en para- mètre au programme par l’intermédiaire deargcetargv. Vous ferez les vérification nécessaires des paramètres. Par exemple, les exécutions du programme myprog suivantes donneront :
./myprog toto123+-xx9 6 4
./myprog
Error! Usage : myprog string
2
I 4. Un fichier contient une suite de réelsdouble (attention ce n’est pas un fichier de caractères).
À partir de ce fichier, on veut fabriquer une liste chaînée de double. La liste est définie par la déclaration de type suivante :
t y p e d e f s t r u c t n o e u d { d o u b l e elt ;
s t r u c t n o e u d * s u i v a n t ; } * l i s t e D ;
Écrivez la procédure creerListeD qui crée une liste de réels double à partir d’un fichier de double. Le nom du fichier est passé en paramètre. Vous vérifierez la validité de l’ouverture du fichier. Pensez à insérer chaque nouveau réeldoublelu en tête de liste. L’en-tête de cette procédure (que vous devez respecter) est le suivant :
/*
* R ô l e : c r é e la l i s t e de d o u b l e l à p a r t i r du f i c h i e r
* de d o u b l e de nom f
*
*/
v o i d c r e e r L i s t e D (c o n s t c h a r * f , l i s t e D * l ) {
3
I 5. Écrivez la procédure printListeDqui affiche sur la sortie standard tous les réels doublede la liste. Cette procédure possède l’en-tête suivant :
/*
* R ô l e : é c r i t sur la s o r t i e s t a n d a r d les r é e l s d o u b l e
* c o n t e n u s d a n s la l i s t e l
*/
v o i d p r i n t L i s t e D ( l i s t e D l ) {
4