Académique Documents
Professionnel Documents
Culture Documents
Plus généralement, la soustraction de deux pointeurs qui pointent dans le même tableau est
équivalente à la soustraction des indices correspondants.
E) Comparaison de deux pointeurs
On peut comparer deux pointeurs par : <, >, <=, >=, ==, !=.
La comparaison de deux pointeurs qui pointent dans le même tableau est équivalente à la
comparaison des indices correspondants. (Si les pointeurs ne pointent pas dans le même tableau,
alors le résultat est donné par leurs positions relatives dans la mémoire).
Consigne: Tous les exercices devront se faire en utilisant l’arithmétique des pointeurs. En
particulier, vous ne devrez pas utiliser d’indices pour accéder aux éléments des tableaux.
Exercice 1
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 2
Écrire la fonction sommeEtMultiplie calculant la somme et le produit de deux réels passés en
paramètres, puis un programme qui utilise cette fonction. Pour cela vous écrirez votre code dans un
fichier sommemult.c:
void sommeEtMultiplie ( float a , float b , float *somme, float *mult );
1. Ecrire une fonction inverser qui permet d’inverser les éléments d’un tableau.
2. Ecrire une fonction convertir qui permet de convertir un nombre décimal en binaire.
3. Ecrire une fonction affiche qui affiche les éléments d’un tableau.
4. Ecrire le programme principal.
Exercice 4
Déterminez le résultat de l'exécution du programme suivant sans le compiler:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (void)
{
char s1[] = "bonne";
char s2[] = "journee";
char resul[] = "...........";
strcpy( resul+2, s1 );
strncpy( resul+5, s2, 4 );
Exercice 6
NB: On appelle palindrome une suite de caractères qui se lit de la même façon dans les deux sens:
de droite à gauche ou de gauche à droite. (laval, aziza, ressasser …)
1. Écrire une fonction "palindrome" qui reçoit en argument une chaîne de caractères (un mot),
puis retourne 1 si cette chaîne est un palindrome, sinon retourne 0.
2. Écrire un programme qui lit une chaîne de caractères et fait appel à la fonction "palindrome"
pour déterminer si cette chaîne est un palindrome ou non.