TP
Langage C
Pointeurs et Tableaux
Exercice 1 :
int A[]={1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15};
int X,Y;
int *P;
Quelles valeurs ou adresses fournissent les expressions suivantes :
P = A;
X=*P;
Y=*(P+1);
X = *(P+9);
P = A+9;
P = A+10;
P = A+11;
P = A-1;
X = *P;
Exercice 2 :
Soit P un pointeur qui "pointe" sur un tableau A :
int A[] = {14, 5, 3, 25, 156, 67, 80, 99, 100};
int *P;
P = A;
Quelles valeurs ou adresses fournissent les expressions suivantes :
a) *P+5
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 :
Soit T un tableau de dimension N de type entier (dimension maximale : 10). Remplir le tableau
par des valeurs entrées au clavier et afficher le tableau.
Exercice 4 :
Ecrire un programme C qui remplit un tableau d'entiers et calcule la somme de ses éléments en
utilisant un pointeur pour son parcours.
Exercice 5 :
Ecrire un programme qui saisit la dimension N d’un tableau de int (le tableau est initialement
définit avec une taille maximum MAX que N ne doit pas excéder) remplit le tableau par des
valeurs entrées au clavier et l’affiche.
Le programme doit ensuite effacer toutes les occurrences de la valeur 0 dans le tableau, tasser les
éléments restants et afficher le tableau ainsi modifier.
Exercice 6 :
Ecrire un programme qui saisit la dimension N d’un tableau de int remplit le tableau par des
valeurs entrées au clavier et l’affiche. Copier ensuite toutes les composantes strictement positives
dans un deuxième tableau Tpos et toutes les valeurs strictement négatives dans un tableau Tneg.
Afficher Tpos et Tneg.