Vous êtes sur la page 1sur 2

Matière : Informatique 3

Série de TD N° 2

Exercice 1
Soit le programme C suivant, complétez le tableau pour chaque instruction du programme :

#include<stdio.h>
int a = 1;
int b = 2; a b c P1 P2

int c = 3; 1 2 3 &a &c

int *p1, *p2;

int main(){
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;
}
Exercice 2
Soit la portion de code suivante :

int A[] = {13, 22, 31, 40, 49, 58, 67, 76, 78};
int *P;
P = A;
Quelles valeurs ou adresses fournissent chacune des expressions suivantes:

a) *P+3
b) *(P+3)
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 une fonction qui a comme paramètre une chaîne de caractères et qui renvoie le nombre
d'occurrences de la lettre 'A' dans cette chaîne de caractères. Utiliser un pointeur P pour
parcourir la chaîne.

Exercice 4
Ecrire une fonction qui a pour paramètre un tableau A d’entiers et sa taille. Cette fonction doit
ranger les éléments du tableau A dans l’ordre inverse. La fonction utilisera deux pointeurs P1
et P2 pour le parcours du tableau.

Exercice 5
Ecrire une fonction qui a pour paramètre deux tableaux d’entiers A et B et leurs tailles
respectives N et M et qui ajoute les éléments de B à la fin de A. Utiliser deux pointeurs PA et
PB pour le transfert des éléments.

Exercice 6
Ecrire une fonction à laquelle on envoie un nombre de minutes. Celle-ci renverrait le nombre
d’heures et minutes correspondantes.

Exemples :
si on envoie 45, la fonction doit renvoyer 0 heure et 45 minutes ;
si on envoie 60, la fonction doit renvoyer 1 heure et 0 minutes ;
si on envoie 90, la fonction doit renvoyer 1 heure et 30 minutes.

Vous aimerez peut-être aussi