• Aucun résultat trouvé

Université de Xidian – Polytech’Sophia 2017–2018

N/A
N/A
Protected

Academic year: 2022

Partager "Université de Xidian – Polytech’Sophia 2017–2018"

Copied!
3
0
0

Texte intégral

(1)

Université de Xidian – Polytech’Sophia 2017–2018

Langage C

(V. Granet)

Durée : 1h30 Aucun document autorisé - Téléphones interdits

Nom chinois : Nom Pinyin :

Numéro étudiant : Classe :

I1. En utilisant uniquement la notation de pointeur et à l’exclusion de toute autre fonction, écri- vez en C la fonctionnIemeOccurrencequi renvoie un pointeur sur la neoccurrence d’un carac- tère dans une chaîne. Si la neoccurrence n’existe pas, la fonction renverraNULL. Par exemple, l’appel nIemeOccurrence("abcaaer",’a’, 2), renvoie l’adresse du 2èmea, et l’appel suivant : nIemeOccurrence("abcaaer",’a’, 10)renvoieNULL. Cette fonction possède l’en-tête suivant :

char * nIemeOccurrence (char *s , c o n s t char c , c o n s t i n t n)

1

On souhaite représenter une liste d’éléments de typeTde façon circulaire (le dernier élément est lié au premier) par une structure simplement chaînée. Pour cela, on définit le typeLISTE_CIR suivant :

t y p e d e f i n t T; // par exemple s t r u c t noeud {

T elt ;

s t r u c t noeud * suivant ; };

t y p e d e f s t r u c t {

s t r u c t noeud * first , * last ; } LISTE_CIR ;

I 2. En utilisant cette déclaration deLISTE_CIR, dessinez une liste à0élément, une liste à1élément, une liste à2éléments, et enfin une liste à3éléments.

2

(2)

I3. Écrivez la procéduretournerqui prend en paramètre une listeliet un entiernet qui faitnfois le tour de la liste de façon circulaire.

3

I 4. Écrivez la procédureajouterEnTetequi ajoute un élément au début de la liste circulaire. Cette procédure possède l’en-tête suivant (que vous devez respecter) :

v oi d ajouterEnTete ( LISTE_CIR *li , T e)

4

(3)

I5. Donnez la déclaration d’une structureDatepour représenter une date formée de 3 entiers :jour, moisetannée.

I6. Un fichier de caractères contient un suite d’entiers séparés par un ou plusieurs espaces. Trois entiers consécutifs représentent une date. Écrivez la fonctioncreerFichDatesqui lit un fichier de caractères contenant la suite d’entiers, et qui crée un fichier de dates valides (de typeDate). Sans l’écrire, vous pourrez utiliser la fonction booléennedateValidequi teste si la date (de typeDate) passée en paramètre correspond à une date valide ou pas. La fonctioncreerFichDatesprend les noms des deux fichiers en paramètre. Son en-tête est le suivant :

v oi d creerFichDates (char *in , char * out );

5 6

Références

Documents relatifs

Question sur 1 pt : Il faut d’abord compiler le programme Java en Java Byte Code à l’aide de la commande javac, puis on exécute le .class qui contient la méthode main à l’aide

On souhaite écrire une petite application graphique qui permet à l’utilisateur de dessiner deux points dans un carré, de les relier par une droite et d’afficher la distance entre

Écrivez la fonction lireReel qui lit sur l’entrée standard caractère à caractère (à l’aide de la fonction getchar() , à l’exclusion de toute autre fonction), un réel (positif

Écrivez la fonction creerFichDates qui lit un fichier de texte contenant la suites d’entiers, et qui crée un fichier de dates valides (de type Date ).. Sans l’écrire, vous

Écrivez la fonction creerFichDates qui lit un fichier de texte contenant la suites d’entiers, et qui crée un fichier de dates valides (de type Date ).. Sans l’écrire, vous

Au lieu de retirer, à chaque itération, 1 diviseur au dividende et d’incrémenter de 1 le quotient, le diviseur est multiplié successivement par 2 pour trouver son plus grand

qui prend en paramètre une chaîne de caractères, et qui remplace chaque chiffre par le caractère ’_’ dans celle-ci.. La fonction renvoie un pointeur sur le 1er caractère de

Il est nécessaire d’écrire un destructeur pour libérer explicitement la mémoire occupée par le tableau et les 3 points du triangle