0% ont trouvé ce document utile (0 vote)
47 vues13 pages

Manuel TD TP Programmation C

Le document est un manuel de travaux dirigés et pratiques en programmation C, destiné aux étudiants de l'Université Cadi Ayyad. Il contient une série d'exercices organisés par thèmes, tels que les boucles, les tableaux, les chaînes de caractères, les fonctions, les pointeurs, les fichiers et les structures. Chaque section propose des exercices pratiques pour renforcer les compétences en programmation C.

Transféré par

mariaaitbenaoumar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
47 vues13 pages

Manuel TD TP Programmation C

Le document est un manuel de travaux dirigés et pratiques en programmation C, destiné aux étudiants de l'Université Cadi Ayyad. Il contient une série d'exercices organisés par thèmes, tels que les boucles, les tableaux, les chaînes de caractères, les fonctions, les pointeurs, les fichiers et les structures. Chaque section propose des exercices pratiques pour renforcer les compétences en programmation C.

Transféré par

mariaaitbenaoumar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Manuel TD/TP Informatique 3

Programmation C
Ahmed Bentajer
CP2
[Link]@[Link]

Université Cadi Ayyad


École Nationale des Sciences Appliquées de Safi

1
Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Table des matières

TP 0 : Hello World 3

TP 1 : Les boucles 5

TP 2 : Les Tableaux 7

TP 3 : Les Chaînes de Caractère 8

TP 4 : Les fonctions et les pointeurs 9

TP 5 : Les Fichiers 12

TP 5 : Les structures 12

Ahmed Bentajer | CP2 2 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

TP 0 : Hello World
Exercice 1
Écrire un programme qui saisit 2 entiers et affiche successivement :
— La somme,
— La différence,
— Le produit,
— Le quotient de ces 2 entiers.

Exercice 2
Écrire un programme qui demande à l’utilisateur de donner le rayon d’un cercle et lui
retourne :
— La surface,
— Le périmètre du cercle.

Exercice 3
Écrire un programme qui saisit deux entiers a et b, et permute leurs valeurs. Les
valeurs après permutation doivent être affichées.

Exercice 4
Écrire un programme qui saisit un réel x et un entier n, et affiche x à la puissance n.

Exercice 5
Écrire un programme qui retourne la factorielle d’un nombre entier entré par l’utili-
sateur.

Exercice 6
Écrire un programme qui résout les équations du premier degré de la forme ax+b = 0.
Le programme doit :
— Demander les valeurs de a et b à l’utilisateur,
— Indiquer le nombre de solutions,
— Afficher leurs valeurs si elles existent.

Exercice 7
Écrire un programme qui résout les équations du second degré de la forme ax2 +bx+c =
0. Le programme doit :
— Demander les valeurs de a, b, et c à l’utilisateur,
— Indiquer le nombre de solutions,
— Afficher leurs valeurs si elles existent.

Ahmed Bentajer | CP2 3 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 8
Écrire un programme qui calcule le PGCD (Plus Grand Commun Diviseur) de deux
entiers entrés par l’utilisateur.

Ahmed Bentajer | CP2 4 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

TP 1 : Les boucles
Exercice 9 :
Écrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme,
leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le
nombre N est à entrer au clavier. Résolvez ce problème : a) en utilisant while, b) en
utilisant do-while, c) en utilisant for.

Exercice 10 :
Calculez par multiplications successives X N de deux entiers naturels X et N entrés
au clavier.

Exercice 11 :
Calculez la somme des N premiers termes de la série harmonique :
1 1 1
1+ + + ··· +
2 3 N

Exercice 12 :
Affichez un triangle isocèle formé d’étoiles de N lignes (N est fourni au clavier) :
Exemple pour N = 7 :

*
***
*****
*******
*********
***********
*************

Exercice 13 :
Écrivez un programme en C qui calcule n! (factoriel) : a) une fois avec un while, b)
une seconde fois avec un for.

Exercice 14 :
Affichez un triangle formé d’étoiles de N lignes (N est fourni au clavier) : Exemple
pour N = 5 :

*
**
***
****
*****

Ahmed Bentajer | CP2 5 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 15 :
a) Écrivez un programme en C qui teste si un nombre est premier ou pas. b) Écrivez
un programme en C qui teste tous les nombres entre 1 et N .

Ahmed Bentajer | CP2 6 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

TP 2 : Les Tableaux
Exercice 17 :
Écrivez un programme dans lequel vous déclarez et initialisez un tableau, puis affichez
les éléments du tableau.

Exercice 18 :
Écrivez un programme qui demande à l’utilisateur de déclarer un tableau de 10 élé-
ments, de remplir le tableau, puis de l’afficher.

Exercice 19 :
Écrivez un programme qui :
— Lit la taille N d’un tableau T de type int (dimension maximale : 50).
— Vérifie que la taille est comprise entre 10 et 50 (redemandez la taille tant que ce
n’est pas le cas).
— Remplit le tableau avec des valeurs saisies au clavier.
— Affiche le tableau.

Exercice 20 :
Écrivez un programme qui :
— Lit la taille N d’un tableau T de type int (dimension maximale : 50, avec vérifi-
cation comme dans l’exercice précédent).
— Remplit le tableau avec des valeurs saisies au clavier.
— Affiche le tableau.
— Efface toutes les occurrences de la valeur 5, tasse les éléments restants, et affiche
le tableau résultant.

Exercice 21 :
Écrivez un programme qui :
— Lit la taille N d’un tableau T de type int.
— Remplit le tableau avec des valeurs saisies au clavier et affiche le tableau.
— Range les éléments du tableau dans l’ordre inverse sans utiliser de tableau d’aide.
— Affiche le tableau résultant.

Exercice 22 :
Écrivez un programme qui :
— Lit la taille N d’un tableau T de type int.
— Remplit le tableau avec des valeurs saisies au clavier et affiche le tableau.
— Copie toutes les valeurs strictement positives dans un tableau T P et toutes les
valeurs strictement négatives dans un tableau T N .
— Affiche les tableaux T P et T N .

Ahmed Bentajer | CP2 7 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 23 :
Écrivez un programme qui :
1. Demande à l’utilisateur de saisir la taille du tableau.
2. Demande à l’utilisateur de remplir le tableau.
3. Calcule la somme des éléments saisis.
4. Calcule la moyenne des éléments.
5. Copie les éléments du tableau dans un deuxième tableau T 2 et l’affiche.
6. Classe les éléments du tableau dans un ordre croissant.
Exemple : Tableau de taille = 5 Somme = 5 + 10 + 2 + 17 + 23 = 57

5 10 2 17 23

Tableau trié
2 5 10 17 23

Exercice 24 :
Écrivez un programme qui calcule le plus grand écart dans un tableau (l’écart est la
valeur absolue de la différence entre deux éléments).

TP 3 : Les Chaînes de Caractère


Exercice 25 :
Écrivez un programme qui détermine le nombre de lettres « e » présentes dans un
texte.

Exercice 26 :
Écrivez un programme qui supprime toutes les lettres « e » d’un texte, puis affiche le
nouveau texte.

Exercice 27 :
Écrivez un programme qui lit au clavier un mot et l’affiche à l’envers.

Exercice 28 :
Écrivez un programme qui lit un verbe régulier en er au clavier et qui affiche sa
conjugaison au présent de l’indicatif. Vérifiez s’il s’agit bien d’un verbe en er avant de le
conjuguer. Utilisez les fonctions gets, puts, strcat et strlen.

Exercice 29 :
Écrivez un programme qui demande à l’utilisateur d’entrer son nom et son prénom,
puis affiche la longueur totale du nom sans compter les espaces.

Ahmed Bentajer | CP2 8 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 30 :
Écrivez un programme qui lit deux chaînes de caractères CH1 et CH2, les compare
lexicographiquement, et affiche le résultat.

Exercice 31 :
Écrivez un programme qui lit deux chaînes de caractères CH1 et CH2, puis copie la
première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3.
Affichez le résultat.

Exercice 32 :
Écrivez un programme qui lit 10 mots, les mémorise dans un tableau de chaînes
de caractères, puis trie les 10 mots lexicographiquement en utilisant les fonctions de la
bibliothèque string. Affichez le tableau trié en utilisant la méthode de tri par sélection
directe.

Exercice 33 :
Écrivez un programme qui lit un nombre entre 1 et 7, puis affiche le nom du jour de
la semaine correspondant.

Exercice 34 :
Écrivez un programme qui lit une chaîne de caractères CH, convertit toutes les majus-
cules en minuscules et vice-versa, puis mémorise le résultat dans la même variable CH et
l’affiche après la conversion.

Exercice 35 :
Écrivez un programme qui supprime la première occurrence d’une chaîne de caractères
OBJ dans une chaîne de caractères SUJ.

Exercice 36 :
Écrivez un programme qui détermine si le mot saisi au clavier est un palindrome.

TP 4 : Les fonctions et les pointeurs


Exercice 37 :
Écrire 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 autant que
possible.

Ahmed Bentajer | CP2 9 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 38 :
Tester le problème suivant et donner les résultats : Soit P un pointeur pointant 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 ?
— *P+2
— *(P+2)
— &P+1
— &A[4]-3
— A+3
— &A[7]-P
— P+(*P-10)
— *(P+*(P+8)-A[7])

Exercice 39 :
Écrire un programme qui lit un entier X et un tableau A du type int au clavier, et
qui élimine toutes les occurrences de X dans A en tassant les éléments restants. Utiliser
les pointeurs P1 et P2 pour parcourir le tableau.

Exercice 40 :
Écrire un programme qui range les éléments d’un tableau A du type int dans l’ordre
inverse. Utiliser des pointeurs P1 et P2, ainsi qu’une variable AIDE pour la permutation
des éléments.

Exercice 41 :
Écrire un programme qui vérifie si une chaîne CH introduite au clavier est un palin-
drome :
1. En utilisant uniquement le formalisme tableau.
2. En utilisant des pointeurs au lieu des indices numériques.

Exercice 42 :
Écrire un programme qui lit une chaîne de caractères CH 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 43 :
Écrire un programme qui lit une chaîne de caractères CH au clavier et compte les
occurrences des lettres de l’alphabet, sans distinguer les majuscules et les minuscules.
Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat, un pointeur PCH
pour parcourir la chaîne CH et un pointeur PABC pour parcourir ABC. Afficher uniquement
les lettres qui apparaissent au moins une fois dans le texte.

Ahmed Bentajer | CP2 10 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

Exercice 44 :
Écrire un programme qui lit une matrice A de dimensions N et M au clavier et affiche :
1. La matrice A.
2. La transposée de A.
3. La matrice A interprétée comme tableau unidimensionnel.
Utiliser le formalisme pointeur autant que possible.

Exercice 45 :
Écrire un programme qui lit deux matrices A et B de dimensions NxM et MxP, et qui
effectue la multiplication des deux matrices. Le résultat sera affecté à une matrice C, qui
sera ensuite affichée. Utiliser le formalisme pointeur autant que possible.

Exercice 46 :
É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 les mots.

Exercice 47 :
Écrire un programme contenant :
— Une fonction MOYENNE de type float qui calcule la moyenne arithmétique de deux
nombres réels.
— Une fonction qui calcule la valeur XN pour une valeur réelle X (double) et un entier
positif N (int).
— Des fonctions MIN et MAX qui déterminent respectivement le minimum et le maxi-
mum de deux nombres réels.
Le programme doit afficher un menu pour permettre à l’utilisateur de choisir la fonction
désirée et continuer tant que l’utilisateur ne choisit pas de quitter.

Exercice 48 :
1. Écrire la fonction AFFICHE_T qui affiche les N composantes d’un tableau T du type
int.
2. Écrire la fonction SOMME_T qui calcule la somme des N éléments d’un tableau T du
type int. La somme doit être retournée comme un résultat de type long.

Exercice 49 :
Écrire des fonctions pour trier un tableau :
— En utilisant le tri de shell.
— En utilisant le tri par sélection.
— En utilisant le tri par insertion.
— En utilisant le tri par propagation.
Ajouter également :
— Une fonction qui lit un tableau.

Ahmed Bentajer | CP2 11 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

— Une fonction qui affiche un tableau.


— Un menu permettant à l’utilisateur de choisir le tri voulu et s’affichant tant que
l’utilisateur ne demande pas de quitter.

TP 5 : Les Fichiers
Exercice 51 :
Créer puis afficher à l’écran le fichier [Link] dont les informations sont struc-
turées de la manière suivante :
— code (entier)
— Nom (chaîne de caractères)
— Prénom (chaîne de caractères)
Le nombre d’enregistrements à créer est à entrer au clavier par l’utilisateur.

Exercice 52 :
Écrire un programme qui crée un fichier [Link], qui est la copie exacte
(enregistrement par enregistrement) du fichier [Link].

Exercice 53 :
Créer puis afficher à l’écran le fichier [Link] dont les informations sont struc-
turées de la manière suivante :
— Nom de famille
— Prénom du père
— Prénom de la mère
— Nombre d’enfants
— Prénoms des enfants
Le nombre d’enregistrements à créer est entré au clavier. Note : Le nombre de rubriques
des enregistrements varie en fonction du nombre d’enfants !

TP 6 : Les structures
Exercice 54 :
Créer une structure Étudiant ayant les informations suivantes :
— Nom (chaîne de caractères)
— Prénom (chaîne de caractères)
— Date de naissance : Jour (entier), Mois (entier) et Année (entier)
— codeApogee (chaîne de caractères)
Déclarer une variable de type structure Etudiant puis la remplir avec des informations
puis afficher les.

Exercice 55 :
Créer une structure point définit par ses coordonnées (x et y). Créer les fonctions
suivantes :
1. SaisirPoint() : permettant de saisir un point.

Ahmed Bentajer | CP2 12 Printemps 2025


Manuel TD/TP Université Cadi Ayyad / ENSA Safi Programmation C

2. AfficherPoint() : permettant d’afficher un point.


3. DeplacerPoint(int dx, int dy) : permettant de déplacer un point avec un déplace-
ment dx horizontalement et dy verticalement.
Créer un programme un programme principale permettant de d’implémenter les diffé-
rentes fonctions

Exercice 56 :
Définir la structure Complexe permettant de représenter un nombre complexe défini
par sa partie réelle et imaginaire, puis définir les fonctions suivantes :
— SaisiComplexe() permettant de lire la partie réelle et la partie imaginaire d’un
nombre complexe.
— SommeCompexe() permettant de calculer la somme de deux nombres com-
plexes.
— ProduitCompexe() permettant de calculer le produit de deux nombres com-
plexes.
Implémenter un exemple dans le main dans lequel vous saisissez deux nombre complexe
puis leurs sommes et enregistrées dans z3 et produit dans z4

Ahmed Bentajer | CP2 13 Printemps 2025

Vous aimerez peut-être aussi