Vous êtes sur la page 1sur 3

Université Hassan II Casablanca 2020/2021

Ecole supérieure de Technologie

Dep. GI

TD1 : Pointeurs et Structures

Exercice 1 :

Soit le programme suivant :

main()
{
int A = 1;
int B = 2;
int C = 3;
int *P1, *P2;
P1=&A;
P2=&C;
*P1=(*P2)++;
P1=P2;
P2=&B;
*P1-=*P2;
++*P2;
*P1*=*P2;
A=++*P2**P1;
P1=&A;
*P2=*P1/=*P2;
return 0;
}

Copiez le tableau suivant et complétez-le pour chaque instruction du programme ci-dessus.

A B C P1 P2
Init. 1 2 3 / /
P1=&A 1 2 3 &A /
P2=&C
*P1=(*P2)++
P1=P2
P2=&B
*P1-=*P2
++*P2
*P1*=*P2
A=++*P2**P1
P1=&A
*P2=*P1/=*P2

Exercice 2 :

Soit P un pointeur qui 'pointe' sur un tableau A:

1
Université Hassan II Casablanca 2020/2021

Ecole supérieure de Technologie

Dep. GI

intA[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P;
P = A;

Quelles valeurs ou adresses fournissent ces expressions:

a) *P+2
b) *(P+2)
c) &P+1
d) &A[4]-3
e) A+3
f) &A[7]-P
g) P+(*P-10)
h) *(P+*(P+8)-A[7])

Exercice 3:

Ecrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine toutes les
occurrences de X dans A en tassant les éléments restants. Le programme utilisera les pointeurs P1
et P2 pour parcourir le tableau.

Exercice 4:

Ecrire une fonction de saisie des éléments d’un tableau de réels. Le nombre d’éléments du tableau
sera donné en argument de la fonction qui retournera l’adresse du tableau. Ce tableau devra être
alloué dynamiquement. Une gestion des erreurs permettra de renvoyer le pointeur NULL en cas
d’erreur d’allocation mémoire.

Exercice 5:

Soit une structure Pointcontenant deux champs x et w de typefloat.

a- Ecrire une fonction qui échange deux structures point passés par adresse.
b- Ecrire le programme principal qui saisit deux structures Point dans des variables, échange le
contenu de ces variables en appelant la fonction et affiche le nouveau contenu des variables.

Soit le modèle de structure suivant :

Structs_point

{char c ;

Int x,y;

};

Ecrire une fonction qui reçoit en argument une structure de type s_point et qui en affiche le contenu
sous la forme :

2
Université Hassan II Casablanca 2020/2021

Ecole supérieure de Technologie

Dep. GI

Point A de coordonnées 10 15

c- En transmettant en argument la valeur de la structure concernée.


d- En transmettant en argument la valeur de la structure concernée.

Dans les deux cas, on écrira un petit programme d’essai de la fonction ainsi réalisée.

Exercice 6:

Ecrire un programme qui lit une chaîne de caractères CH au clavier et qui compte les occurrences
des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules. Utiliser un tableau
ABC de dimension 26 pour mémoriser le résultat et un pointeur PCH pour parcourir la chaîne CH et
un pointeur PABC pour parcourir ABC. Afficher seulement le nombre des lettres qui apparaissent au
mois une fois dans le texte.

Exemple:

Entrez une ligne de texte (max. 100 caractères) :


Maroc
La chaîne "Jeanne" contient :
1 fois la lettre 'M'
1 fois la lettre 'A'
1 fois la lettre 'R'
1 fois la lettre 'O'
1 fois la lettre 'C'

Exercice 7:

Ecrire un programme qui lit le jour, le mois et l'année d'une date au clavier et qui affiche la date en
français et en allemand. Utiliser deux tableaux de pointeurs, MFRAN et MANG que vous initialisez
avec les noms des mois dans les deux langues. La première composante de chaque tableau
contiendra un message d'erreur qui sera affiché lors de l'introduction d'une donnée illégale.

Exemples:

Introduisez la date: 2 4 1993


Casablanca, le 2 avril 1993
Casablanca, April 2 1993

Vous aimerez peut-être aussi