Notions de base
Exercice 1: Ecrire un programme C qui permet d’a�cher le message suivant: Bonjour.
Exercice 2: Ecrire un programme C qui permet de lire en entrée un entier constitué de trois chiffres et
d’a�cher celui-ci inversé. Exemple: si l’entrée est 123 on a�che 321.
Exercice 3: Ecrire un programme C qui permet de lire deux nombres réels, et d’a�cher ensuite leur produit,
avec une précision de trois chiffres après la virgule.
Exercice 4: Ecrire un programme C qui permet de permuter le contenu de deux variables entières en passant
par une troisième variable auxiliaire. Ceci et en a�chant les deux variables avant et après permutation.
Exercice 5: Ecrire un programme C qui lit en entrée trois entiers et a�che leur moyenne avec une précision
de deux chiffres après la virgule.
Exercice 6: Ecrire un programme C qui lit en entrée un caractère alphabétique entre a et y, qui peut être soit
une majuscule ou une minuscule. Et a�che la lettre qui vient juste après lui dans l’ordre alphabétique.
Exercice 7: Ecrire un programme C qui lit deux réels R1 et R2 qui représentent les rayons de deux cercles
concentriques, et renvoie ensuite l’aire de la surface comprise entre les deux cercles (surface grise).
Remarque: R1 peut être supérieur à R2, comme il peut lui être inférieur.
Exercice 8: Ecrire un programme C qui lit deux entiers est a�che le plus grand d’entre eux.
Exercice 9: Ecrire un programme C qui trouve pour un réel les deux carrés parfaits les plus proches qui
l’encadrent.
On rappelle qu’un carré parfait est un entier dont la racine carrée est aussi un entier. Exemple: 9 = 3×3 et 4 =
2×2 sont des carrés parfaits ; or, 5 ne l’est pas.
Exercice 10: Ecrire un programme C qui lit une fraction au format a/b où a et b sont deux entiers, et donne
son équivalent décimal avec une précision de quatre chiffres après la virgule.
Ex: si l’utilisateur entre 3/2, le programme doit a�cher: 3/2 = 1.5000
Exercice 11: Ecrire un programme C qui lit un entier V représentant un volume en litres. Puis calcule le
nombre de canettes de 33cl que peut remplir en entier une citerne contenant un volume V de soda.
Exercice 12: Ecrire un programme C qui permet de tracer la forme suivante :
Exercice 13: Ecrire un programme C qui lit un nombre réel et a�che sa partie fractionnaire.
Exemple : la partie fractionnaire de 3.09 est 0.09.
Exercice 14: Ecrire un programme C qui lit les dimensions (nombres entiers) a, b et c d’un parallélépipède
rectangle puis calcule et a�che sa super�cie.
Exercice 15: Ecrire un programme C qui lit un entier n. Puis a�che les trois entiers impairs qui le suivent.
Exemple : pour 5 on a�che 7 9 11, et pour 2 on a�che 3 5 7.
Conditions
Exercice 1: Ecrire un programme C qui permet de dire si un entier est pair ou impair.
Exercice 2: Ecrire un programme C qui permet de comparer deux entiers a et b, et d’a�cher selon le cas l’un
des messages suivants: a=b, a>b ou a<b.
Exercice 3: Ecrire un programme C qui lit trois entiers pour les a�cher ensuite dans un ordre croissant.
Exercice 4: Ecrire un programme C qui lit un nombre réel et détermine s’il est entier ou non.
Exercice 5: Ecrire un programme C qui lit un caractère et détermine s’il fait partie des alphabets ou non. Et
s’il l’est, dire en plus s’il est une minuscule ou une majuscule.
Exercice 6: Ecrire un programme C qui lit une date au format 15/09/2012 et l’a�che sous le format suivant:
15-Septembre-2012.
Exercice 7: Ecrire un programme C qui lit un entier et dit s’il est un carré parfait ou non.
On rappelle qu’un entier est carré parfait, si sa racine carrée est entière. Ex: les nombre 1 (1×1), 4 (2×2) et 9
(3×3) sont tous des carrés parfaits.
Exercice 8: Ecrire un programme C qui lit les coordonnées des deux extrémités d’un segment, et lit ensuite
les coordonnées d’un point dans le plan et dit si ce dernier se trouve ou non sur le segment.
Exercice 9: Ecrire un programme C qui lit deux instants dans le format HH:MM:SS, et a�che un des
messages suivants:
• Le premier instant vient avant le deuxième;
• Le deuxième instant vient avant le premier;
• Il s’agit du même instant.
Exercice 10: Ecrire un programme C qui a�che d’une manière aléatoire un des jours de la semaine.
Exercice 11: Ecrire un programme C qui lit un nombre impair n et con�rme que 32 divise (n2+3)(n2+7).
Exercice 12: Ecrire un programme C qui lit deux entiers représentant le grand rayon a et le petit rayon b d’une
ellipse. Puis détermine si oui ou non l’aire de cette ellipse est supérieure ou égale à 100.
Exercice 13: Ecrire un programme C qui lit trois entiers qui représentent les longueurs des côtés d’un
triangle, et permet de dire s’il s’agit d’un triangle équilatéral, isocèle ou scalène.
Exercice 14: Ecrire un programme C qui lit un caractère et détermine ensuite s’il est un chiffre, une lettre de
l’alphabet ou un autre type de caractères.
Exercice 15: Ecrire un programme C qui permet de lire deux nombres réels a et b, puis un entier n et a�cher
le résultat de la division de a par b avec une précision de n (0≤n≤3) chiffres après la virgule.
Boucles
Exercice 1: Ecrire un programme C qui dé�nit un nombre magique (un nombre secret), et lit des entiers à
l’entrée jusqu’à ce que l’utilisateur trouve ce nombre. En lui indiquant à chaque fois s’il est en dessus ou au-
dessous du nombre magique.
Exercice 2: Ecrire un programme C qui lit un entier puis détermine s’il est premier ou non.
On rappelle qu’un entier est dit premier s’il a exactement deux diviseurs différents; 1 et lui-même.
Ex: 2, 3, 7, 17, 101 sont tous premiers, et 4, 10, 27 ne le sont pas.
Exercice 3: Ecrire un programme C qui lit une série d’entiers positifs inférieurs à 100 terminée par 0. Et qui
doit négliger toute entrée strictement supérieure à 100. Puis calcule et a�che la somme et le max des
éléments de cette série.
Exercice 4: Ecrire un programme C qui lit un entier et l’a�che inversé. On choisira de ne pas a�cher chiffre
par chiffre mais de construire l’entier inversé puis l’a�cher.
Ex: si l’entrée est 12345 on doit a�cher l’entier 54321.
Exercice 5: Ecrire un programme C qui lit un entier puis a�che tous les nombres premiers qui lui sont
inférieurs.
Exercice 6: Ecrire un programme C qui calcule le nième terme de la suite de Fibonacci, dé�nie comme suit:
Un=Un-1+Un-2 où U1=U0=1.
Exercice 7: Ecrire un programme C qui utilise le principe de dichotomie pour trouver la solution de l’équation
x3+12x2+1=0 dans l’intervalle [-15,-10] avec une précision de 0,00001.
Exercice 8: Ecrire un programme C qui permet de reproduire le schéma suivant :
Exercice 9: Ecrire un programme C qui approxime le nombre π à une précision de 0.00001 en utilisant la
formule suivante :
Exercice 10: Ecrire un programme C qui permet de calculer les nièmes termes des deux suites réelles
suivantes :
Tableaux
Exercice 1: Ecrire un programme C qui lit un entier n, puis n autres entiers positifs dans un tableau, l’a�che
puis calcul la somme, le max, et le min de ses éléments.
Exercice 2: Ecrire un programme C qui lit un entier n, puis n autres éléments dans un tableau. Et, a�che ce
dernier avant et après la suppression de toutes les occurrences d’un nombre entré par l’utilisateur.
Exercice 3: Ecrire un programme C qui lit un entier n. Puis n autres entiers inférieurs à 100, dans un tableau.
Et a�che le nombre d’occurrences de chaque élément du tableau de la façon suivante:
Si le tableau est: 1 2 5 2 1 2, on a�che:
1 est répété 2 fois.
2 est répété 3 fois.
5 est répété 1 fois.
Pas nécessairement dans un ordre précis, mais chaque élément ne doit être cité qu’une seule fois.
Exercice 4: Ecrire un programme C qui construit la table de multiplication des entiers entre 1 et 9 puis
l’a�che.
Exercice 5: Ecrire un programme C qui lit un entier n inférieur à 10, et une matrice (tableau à deux
dimensions) carrée nxn. Puis l’a�che et véri�e si tous les entiers entre 1 et n2 y sont présents ou non.
Ex: la matrice 3×3 suivante véri�e cette contrainte.
253
196
748
Exercice 6: Ecrire un programme C qui lit un tableau de taille nxm, et cherche tous les points-col qui s’y
trouvent.
Un point-col est un élément qui est max sa ligne et min sur sa colonne.
Exercice 7: Ecrire un programme C qui lit une position (i,j) d’un tableau 8×8, rempli par des zéros. Et marque
toutes les cases des deux diagonales qui passent par cette position en y mettant des uns.
Exercice 8: Ecrire un programme C qui lit un tableau nxn, et véri�e s’il est magique ou non. Un tableau est dit
magique, si la somme des éléments de chaque ligne, de chaque colonne et de chaque une des deux
diagonales est la même. En plus il doit contenir tous les entiers entre 1 et n2.
L’exemple suivant montre un carré magique de dimension 3×3 :
Exercice 9: Ecrire un programme C qui lit les dimensions n et m d’un tableau à deux dimensions, le remplit
d’une manière spirale en utilisant les entiers de l’intervalle 1 à n*m comme indiqué sur le tableau ci-dessous:
Exercice 10: Ecrire un programme C qui lit un tableau de taille nxm, et cherche tous les points-col qui s’y
trouvent.
Un point-col est un élément qui est max sa ligne et min sur sa colonne.
Exercice 11: Ecrire un programme C qui lit un tableau d’entiers puis a�che une des plus longues séquences
croissantes qu’il contient.
Exercice 12: Ecrire un programme C qui lit un tableau d’entiers, puis un entier m et déplace les m premiers
éléments du tableau vers la �n de celui-ci.
Exemple : déplacement des trois premiers éléments d’un tableau.
Exercice 13: Ecrire un programme C qui effectue la demi-vectorisation d’une matrice carrée.
La demi-vectorisation (vech : half vectorization) d’une matrice carrée est une opération qui donne un vecteur
constitué des éléments du triangle inférieur, comme montré sur l’exemple suivant :
Exercice 14: Ecrire un programme C qui lit deux matrices de mêmes dimensions, et réalise leur produit de
Hadamard. Ce produit est obtenu en multipliant les coe�cients qui occupent les mêmes positions, comme
montré sur l’exemple suivant :
Tris
Exercice 1: Ecrire un programme C qui lit un tableau d’entiers et le tri dans un ordre croissant en utilisant le
tri à bulles.
Exercice 2: Ecrire un programme C qui trie dans un ordre croissant les éléments d’un tableau d’entiers en
utilisant le tri par insertion.
Exercice 3: Ecrire un programme C qui lit un tableau d’entiers et le trie en utilisant la méthode du tri par
sélection.
Exercice 4: Ecrire un programme C qui lit un tableau d’entiers, le trie puis a�che, dans un ordre croissant,
tous les éléments qui y sont présents sans les répéter.
Exemple : pour le tableau suivant 2 4 3 5 5 9 2 9 on doit a�cher 2 3 4 5 9.
Exercice 5: Ecrire un programme C qui lit un tableau d’entiers à deux dimensions puis trie les éléments de
chaque ligne indépendamment et l’a�che.
Chaînes de caractères
Exercice 1: Ecrire un programme C qui lit une chaîne de caractères et véri�e si elle est palindrome ou non. On
rappelle qu’une chaîne de caractères est dite palindrome, si elle se lit de la même manière dans les deux
sens. Exemple: non, touot et 1234321 sont toutes des chaînes de caractères palindromes.
Exercice 2: Ecrire un programme C qui lit deux chaînes de caractères et les a�che dans l’ordre alphabétique,
en utilisant les deux méthodes suivantes:
• En utilisant la fonction strcmp.
• Sans utiliser la fonction strcmp.
Par exemple, si on donne en entrée les deux chaînes suivantes: acb et abcd, le programme doit a�cher la
chaîne abcd puis acb.
Exercice 3: Ecrire un programme C qui lit deux chaînes de caractères et permute leurs contenus en utilisant
les deux méthodes suivantes:
• Avec la fonction strcpy;
• Sans la fonction strcpy.
Exercice 4: Ecrire un programme C qui lit une chaîne de caractères, et transforme chaque caractère
majuscule en minuscule et vice versa.
Exercice 5: Ecrire un programme C qui lit deux chaînes de caractères et véri�e si la deuxième est une sous
chaîne de la première ou non.
Exemple: tout est une sous chaîne de surtout.
Exercice 6: Ecrire un programme C, qui lit une chaîne de caractères représentant une phrase, et a�che dans
l’ordre alphabétique toutes les lettres qui ne �gurent pas dans cette chaîne de caractères.
Exercice 7: Ecrire un programme C qui lit une chaîne de caractères et supprime toutes les occurrences d’un
caractère entré par l’utilisateur.
Exercice 8: Ecrire un programme C qui lit une chaîne de caractères puis un ensemble de caractères et a�che
le nombre de fois que chacun d’eux a apparu dans cette chaîne.
Exercice 9: Ecrire un programme C qui lit une chaîne de caractères et calcule le nombre d’occurrences de
chacun de ses caractères.
Exercice 10: Ecrire un programme C qui lit une liste de prénoms puis demande à l’utilisateur d’entrer une
lettre et a�che tous les prénoms commençant par cette lettre.
Exercice 11: Ecrire un programme C qui lit deux chaînes de caractères et dit si la deuxième est une rotation
de la première.
Exemple : les chaines de caractères abcde, bcdea, cdeab, deabc et eabcd sont toutes les rotations possibles
de la chaîne abcde.
Exercice 12: Ecrire un programme C qui permet de trouver la plus grande frontière d’une chaîne de
caractères, si elle existe.
Une frontière d’une chaîne de caractère, est une sous chaîne qui apparait au début et à la �n de la chaîne.
Exemples : aab est une frontière de aabbaab, bab est une frontière de babab et ab n’a pas de frontière.
Exercice 13: Ecrire un programme C qui lit deux caractères et un entier n. Puis calcule et a�che la nième
chaîne de Fibonacci basée sur ces deux caractères.
La nième chaîne de Fibonacci Sn est obtenue en concaténant Sn-1 avec Sn-2, en mettant Sn-1 devant Sn-2.
Exemple :
S0=b
S1=a
S2=ab
S3=aba
S4=abaab
S5=abaababa
S6=abaababaabaab
Exercice 14: Ecrire un programme C qui lit deux chaînes de caractères et véri�e si la deuxième est une
période de la première.
Exemple : abc est une période de abcabcabc mais pas de aabcabc.
Exercice 15: Ecrire un programme C qui lit deux chaînes de caractères, et a�che toutes les sous chaînes de
la première, qui ne sont constituées que de caractères existants dans la deuxième chaîne.
Structures
Exercice 1: Ecrire un programme C qui dé�nit une structure point qui contiendra les deux coordonnées d’un
point du plan. Puis lit deux points et a�che la distance entre ces deux derniers.
Exercice 2: Ecrire un programme C qui dé�nit une structure etudiant où un étudiant est représenté par son
nom, son prénom et une note. Lit ensuite une liste d’étudiants entrée par l’utilisateur et a�che les noms de
tous les étudiants ayant une note supérieure ou égale à 10 sur 20.
Exercice 3: Ecrire un programme C, qui lit les noms complets des étudiants et leurs moyennes dans un
tableau de structures. Puis actualise ces moyennes en ajoutant un bonus de:
• 1 point pour les étudiants ayant une note strictement inférieure à 10.
• 0.5 point pour les étudiants ayant une note entre 10 et 15 incluses.
N.B.: la structure doit avoir deux éléments: une chaîne de caractères et un réel.
Exercice 4: Ecrire un programme C, qui lit le nom, le prénom et l’âge de plusieurs personne dans un tableau
de structures, puis insère une nouvelle personne dans une position entrée par l’utilisateur.
Exercice 5: Ecrire un programme C, qui lit un ensemble de villes avec leur nombre d’habitants dans un
tableau de structures, les trie et les a�che dans l’ordre croissant des nombres d’habitants.
Exercice 6: Ecrire un programme C qui lit un ensemble de personnes avec leurs âges, dans un tableau de
structures, et supprime ensuite toutes celles qui sont âgées de vingt ans et plus.
Exercice 7: Ecrire un programme C qui lit un instant donné, sous forme d’heures et de minutes vers une
variable de structures, puis a�che cet instant sous la forme hh:mm (ex : 02:37). La structure à utiliser est
composée de deux éléments entiers h pour les heures et m pour les minutes.
Exercice 8: Ecrire un programme C qui lit un ensemble de cercles dé�nis par les coordonnées de leurs
centres et leurs rayons. Puis lit les coordonnées d’un point et a�che ensuite tous les cercles contenant ce
point.
Exercice 9: Ecrire un programme C qui crée un structure couple contenant deux entiers représentant l’âge de
la femme et celui de l’homme. Puis l’utilise pour créer un tableau de structures où il stocke une liste des
âges des couples. Ensuite a�che le pourcentage de couples où la femme est plus âgée que l’homme.
Exercice 10: Ecrire un programme C qui dé�nit une structure personne contenant le nom et le prénom d’une
personne. Puis dé�nit une autre structure appelée couple contenant deux éléments h et f de type struct
personne, représentant un homme et une femme constituant un couple. Lire ensuite une liste de couples
puis mettre la première lettre de tous les noms et prénoms en majuscule. Et a�cher pour chaque couple la
phrase suivante :
Mr prénom nom est le mari de Mme prénom nom
Pointeurs
Exercice 1: Ecrire un programme C qui utilise la notion de pointeur pour lire deux entiers et calculer leur
somme.
Exercice 2: Ecrire un programme C qui utilise la notion de pointeur pour la permuter le contenu de deux
variables de type char.
Exercice 3: Ecrire un programme C qui remplit un tableau d’entiers et calcule la somme de ses éléments en
utilisant un pointeur pour son parcours.
Exercice 4: Ecrire un programme C qui lit une chaîne de caractères et a�che cette chaîne à partir de la
première occurrence d’un caractère entré par l’utilisateur. En utilisant pour ceci la fonction strchr et un
pointeur pour le parcours de la chaîne.
Exercice 5: Ecrire un programme C qui dé�nit une structure permettant de stocker le nom, le prénom et l’âge
d’une personne. Lit ensuite ces informations pour deux personnes et a�che le nom complet de la moins
âgée d’entre elles en utilisant une seule fonction printf pour l’a�chage du résultat.
Exercice 6: Ecrire un programme C qui véri�e si une chaîne de caractères est palindrome en utilisant deux
pointeurs pour son parcours.
Exercice 7: Ecrire un programme C qui réserve l’espace mémoire à un tableau d’entiers de taille entrée par
l’utilisateur, le lit puis l’a�che.
Exercice 8: Ecrire un programme C qui réserve l’espace mémoire à un tableau d’entiers à deux dimensions
dont la taille est entrée par l’utilisateur, puis le lit et l’a�che.
Exercice 9: Ecrire un programme C qui réserve l’espace mémoire à un tableau de caractères sous forme d’un
triangle droit, le remplit par des étoiles (*) puis l’a�che.
Exercice 10: Ecrire un programme C qui lit une phrase et l’a�che à partir du deuxième mot. En s’aidant dans
ceci de la fonction strchr et sans utiliser aucune boucle.
N.B. : Si un seul mot est entré, il faudra seulement le réa�cher.
Exercice 11: Ecrire un programme C qui lit un mot et détermine si ce dernier est composé par redoublement
de syllabe, en utilisant des pointeurs pour parcourir la chaîne de caractères.
Exemples : bonbon, blabla, coucou et glouglou font partie des mots composés par redoublement de syllabe.
Exercice 12: Ecrire un programme C qui calcule le produit de deux entiers en n’utilisant que les pointeurs.
Exercice 13: Ecrire un programme C qui utilise une structure point, constituée de trois entiers, pour stocker
un ensemble de points dans un tableau de structures. Puis cherche une des coordonnées maximales (si elle
en existe plusieurs) et lui change le signe.
Exercice 14: Ecrire un programme C qui crée un tableau d’entiers dynamique à deux dimensions, le lit, puis
permute deux lignes spéci�ées par l’utilisateur sans pour autant déplacer les entiers de leur emplacement
mémoire.
Fonctions
Exercice 1: Ecrire un programme C qui dé�nit et utilise une fonction de prototype int Somme(int,int) qui
prend en paramètres deux entiers et renvoie leur somme.
Exercice 2: Ecrire un programme C qui dé�nit et appelle une fonction bonjour qui a�che le message Bonjour.
Exercice 3: Ecrire un programme C qui détermine le max de quatre entiers à l’aide d’une fonction Max_4, et
qui doit utiliser une autre fonction Max_2 qui trouve le max de deux entiers.
Exercice 4: Ecrire un programme C qui a�che les carrés des éléments d’un tableau d’entiers en utilisant les
deux méthodes suivantes: la première se base sur une fonction A�che_Carre qui prends en paramètre le
tableau est a�che les carrés de tout ses éléments, et la deuxième utilise une fonction Carre qui a�che le
carré d’un entier entré en paramètre.
Exercice 5: Ecrire un programme C qui dé�nit et utilise une fonction Permuter qui permute les valeurs de
deux variables réelles.
Exercice 6: Ecrire un programme C, qui dé�nit et utilise une fonction Inserer, qui insère un entier dans un
tableau. L’entier à insérer et la position d’insertion sont lus par cette fonction même.
Exercice 7: Ecrire un programme C qui dé�nit et utilise une fonction de prototype char * Reserver(int) qui
réserve l’espace mémoire, d’une manière dynamique, à une chaîne de caractères.
Exercice 8: Ecrire un programme C qui dé�nit quatre fonctions pour effectuer les tâches suivantes:
• Réservation de l’espace mémoire pour un tableau d’entiers dynamique à deux dimensions;
• Lecture du tableau;
• A�chage du tableau;
• Libération de l’espace mémoire réservé.
Exercice 9: Ecrire un programme C qui dé�nit et utilise une fonction Trier qui trie, dans un ordre croissant, les
éléments d’un tableau d’entiers.
Exercice 10: Ecrire un programme C qui dé�nit une fonction récursive qui calcule la somme des entiers entre
zéro et un nombre passé en paramètre.
Exercice 11: Ecrire un programme C qui dé�nit une structure point, et une fonction Affecter de prototype void
Affecter(struct point *, struct point) qui permet d’affecter une variable de cette structure à une autre.
Déclarer ensuite deux variables de type struct point. Lire une, et affecter la à l’autre en utilisant la fonction
Affecter.
La structure point contient deux entiers x et y.
Exercice 12: Ecrire un programme C qui dé�nit et utilise une fonction Chercher, de prototype char *
Chercher(char *,char) qui renvoie un pointeur sur la dernière occurrence d’un caractère dans une chaîne. Le
pointeur renvoyé, sera utilisé pour calculer l’indice de la dernière occurrence du caractère.
Exercice 13: Ecrire un programme C qui dé�nit la fonction Lire de prototype int Lire(int *) qui lit un ensemble
de chiffres juxtaposés (ex : 37580752108675) et les mit dans un tableau d’entiers entré en paramètre, un
chiffre par case, puis renvoie sa taille.