TP3 - Programmation C - Tableaux Et Pointeurs
TP3 - Programmation C - Tableaux Et Pointeurs
TP3 - Programmation C - Tableaux Et Pointeurs
Université de Carthage
École Nationale d’Ingénieurs de Carthage
Année Universitaire : 2022/2023
Enseignants TP
Cours : Mr. Alaeddine BAROUNI Programmation C Classe : 1ère Ing. Info
TP : Mr. Slaheddine LASSIR
Mr. Med Chiheb BEN CHAABANE
Objectifs :
Maîtrise des Tableaux en tant que Structure de Données en langage C.
Maîtrise des Algorithmes de Tri en langage C.
Maîtrise du mécanisme des Pointeurs en langage C.
I. Les Tableaux
EXERCICE 1
Écrire un programme qui lit 12 nombres, en fait la moyenne, et affiche les nombres supérieurs à cette
moyenne.
EXERCICE 2
Écrire un programme C qui affiche le nombre maximum d’un Tableau. Procéder de 2 manières.
EXERCICE 3
Écrire un programme C qui permet de faire le Tri d’un tableau en utilisant les algorithmes suivants :
EXERCICE 4
Écrire un programme C qui permet de faire la multiplication de 2 matrices carrées.
Page 1 sur 3
EXERCICE 5
Écrire un programme C qui permet de faire la multiplication de 2 matrices « non carrées ».
EXERCICE 6
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;
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 7
Écrire un programme C qui lit une chaîne de caractères CH de taille maximum 100 et détermine la longueur
de la chaîne à l'aide d'un pointeur P. Le programme n'utilisera pas de variables numériques.
EXERCICE 8
Écrire un programme qui lit 5 mots d'une longueur maximale de 50 caractères et les mémorise dans un
tableau de chaînes de caractères TABCH.
Inverser l'ordre des caractères à l'intérieur des 5 mots à l'aide de deux pointeurs P1 et P2. Afficher ces mots.
Page 2 sur 3
EXERCICE 9
Écrire en C une fonction : void pos_car(char T[],int n, char c, int *p_occ, int *d_occ), qui étant donnés un
tableau T de n caractères et un caractère c, détermine les valeurs p_occ et d_occ qui désignent
respectivement les indices de la première et de la dernière occurrence du caractère c dans le tableau T.
Exemple :
Soit le caractère c = ‘a’ et le tableau T suivant contenant 10 caractères :
b a a a b a c a a b
0 1 2 3 4 5 6 7 8 9
alors p_occ recevra 1 et d_occ recevra 8. En effet, le caractère ‘a’ apparaît pour la première fois à la
position 1 et pour la dernière fois à la position 8.
EXERCICE 10
0 1 1 0 1 0 1 1 1 0 1 0
0 1 2 3 4 5 6 7 8 9 10 11
1. Écrire une fonction : int est_equilibree(int tab[], int i, int j) , qui, étant donné un tableau tab, et deux
entiers i et j, retourne vrai si la coupe tab[i..j] est équilibrée et faux sinon.
2. Écrire une fonction : void max_coupe(int tab[], int n, int *l, int *i, int *j) , qui, étant donnés un tableau
tab de n éléments, retourne la longueur l de la plus longue coupe équilibrée (celle qui a le plus grand
nombre d’éléments) ainsi que les indices i et j de début et de fin de cette plus longue coupe.
/. Bon Travail ./
Page 3 sur 3