Institut supérieur d'informatique et LSIM1
de multimédia gabes Atelier de Programmation 2024/2025
Les Pointeurs
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;
}
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
1
A=++*P2**P1
P1=&A
*P2=*P1/=*P2;
Exercice 2
Soit P un pointeur qui 'pointe' sur un tableau A :
int A[] = {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 deux tableaux A et B et leurs dimensions N et M au clavier et qui ajoute
les éléments de B à la fin de A. Utiliser le formalisme pointeur à chaque fois que cela est possible.
Exercice 4
Ecrire un programme qui range les éléments d'un tableau A du type int dans l'ordre inverse. Le
programme utilisera des pointeurs P1 et P2 et une variable numérique AIDE pour la permutation
des éléments.
Exercice 5
Ecrire la fonction LONG_CH qui retourne la longueur d'une chaîne de caractères CH comme
résultat. Implémentez LONG_CH sans utiliser de variable d'aide numérique.
Exercice 6
Ecrire de deux façons différentes, un programme qui vérifie sans utiliser une fonction de <string>,
si une chaîne CH introduite au clavier est un palindrome:
a) en utilisant uniquement le formalisme tableau
b) en utilisant des pointeurs au lieu des indices numériques
Rappel: Un palindrome est un mot qui reste le même qu'on le lise de gauche à droite ou de droite
à gauche:
Exemples: PIERRE ==> n'est pas un palindrome
OTTO ==> est un palindrome
23432 ==> est un palindrome
2
Exercice 7
Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 au clavier et supprime la
première occurrence de CH2 dans CH1. Utiliser uniquement des pointeurs, une variable logique
TROUVE et la fonction strcpy.
Exemples:
Alphonse phon ==> Alse
totalement t ==> otalement
abacab aa ==> abacab