Vous êtes sur la page 1sur 34

TP

PROGRAMMATION
EN C
Les structures alternatives
et rptitives en langage C
Exercice 1
Ecrire un programme
en langage C qui permute et
affiche les valeurs de trois
variables A, B, C de type entier
qui sont entres au clavier
Exercice 2
Ecrire un programme qui affiche le
quotient et le reste de la division
entire de deux nombres entiers
entrs au clavier ainsi que le
quotient rationnel de ces nombres.
Exercice 3
Ecrire un programme en langage
C qui calcule et affiche la distance
DIST (type double) entre deux
points A et B du plan dont les
coordonnes (XA, YA) et (XB, YB)
sont entres au clavier comme
entiers.

Exercice 4
Ecrire un programme
en langage C qui lit un
caractre au clavier et affiche
le caractre ainsi que son code
numrique.

Exercice 5
crivez un programme en langage
C qui lit trois valeurs entires (A, B et C)
au clavier. Triez les valeurs A, B et C par
changes successifs de manire
obtenir :
val(A) val(B) val(C)
Affichez les trois valeurs.

Exercice 6
Ecrivez un programme
en langage C qui calcule les
solutions relles d'une quation
du second degr ax
2
+bx+c = 0.

Exercice 7
Calculez la somme des N
premiers termes de la srie
harmonique :
1 + 1/2 + 1/3 + ... + 1/N
Exercice 8
Calculez la somme, le produit et la
moyenne d'une suite de chiffres non
nuls entrs au clavier, sachant que la
suite est termine par zro. Retenez
seulement les chiffres (0, 1 ... 9) lors de
l'entre des donnes et effectuez un
signal sonore si les donnes sortent de
ce domaine.

Les tableaux en langage C
Exercice 1:
Ecrire un programme en langage C qui lit la
dimension N d'un tableau T du
type int (dimension maximale: 50
composantes), remplit le tableau par des
valeurs entres au clavier et affiche le
tableau.
Calculer et afficher ensuite la somme des
lments du tableau.

Exercice 2:
Ecrire un programme en langage C qui lit la
dimension N d'un tableau T du
type int (dimension maximale: 50
composantes), remplit le tableau par des
valeurs entres au clavier et affiche le
tableau.
Effacer ensuite toutes les occurrences de la
valeur 0 dans le tableau T et tasser les
lments restants. Afficher le tableau rsultant.

Exercice 3:
Ecrire un programme en langage C qui lit la
dimension N d'un tableau T du
type int (dimension maximale: 50
composantes), remplit le tableau par des
valeurs entres au clavier et affiche le
tableau.
Copiez ensuite toutes les composantes
strictement positives dans un deuxime
tableau TPOS et toutes les valeurs strictement
ngatives dans un troisime tableau TNEG.
Afficher les tableaux TPOS et TNEG.

Exercice 4:
Ecrire un programme en langage C qui transfre un
tableau M deux dimensions L et C (dimensions
maximales: 10 lignes et 10 colonnes) dans un tableau
V une dimension L*C.
Exemple:
| a b c d|
| e f g h | ==> | a b c d e f g h i j k l |
| i j k l |

Exercice 5 :
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)
d) &A[4]-3
e) A+3
g) P+(*P-10)


Exercice 6 :

Ecrire un programme en langage C qui
lit un entier X et un tableau A du
type int au clavier et limine toutes les
occurrences de X dans A en tassant les
lments restants. Le programme
utilisera les pointeurs P1 et P2 pour
parcourir le tableau.

Exercice 7 :

Ecrire un programme en langage C qui
lit deux tableaux d'entiers A et B et leurs
dimensions N et M au clavier et qui
ajoute les lments de B la fin de A.
Utiliser deux pointeurs PA et PB pour le
transfert et afficher le tableau rsultant A

LES CHAINES DE
CARACTRES
Exercice 1
Ecrire un programme en langage C qui lit une ligne
de texte (ne dpassant pas 200 caractres) la
mmorise dans une variable TXT et affiche ensuite:
a) la longueur L de la chane.
b) le nombre de 'e' contenus dans le texte.
c) toute la phrase rebours, aprs avoir invers
l'ordre des
caractres dans TXT:
voici une petite phrase !
! esarhp etitep enu iciov


Exercice 2
Ecrire un programme en langage C qui lit un
texte TXT (de moins de 200 caractres) et qui
enlve toutes les apparitions du charactre 'e'
en tassant les lments restants. Les
modifications se feront dans la mme variable
TXT.
Exemple:
Cette ligne contient quelques lettres e.
Ctt lign contint qulqus lttrs .


EXERCICE 3
Ecrire un programme en langage C qui
lit un verbe rgulier en "er" au clavier et
qui en affiche la conjugaison au prsent
de l'indicatif de ce verbe. Contrlez s'il
s'agit bien d'un verbe en "er" avant de
conjuguer. Utiliser les
fonctions gets, puts,strcat et strlen.
Exercice 4
Ecrire un programme en langage
C qui lit deux chanes de caractres
CH1 et CH2 et qui copie la premire
moiti de CH1 et la premire moiti
de CH2 dans une troisime chane
CH3. Afficher le rsultat.
LES FONCTIONS
EXERCICE 1
Ecrire un programme se servant
d'une fonction MOYENNE du
type float pour afficher la moyenne
arithmtique de deux nombres
rels entrs au clavier.


EXERCICE 2
En mathmatiques, on dfinit la fonction factorielle de
la manire suivante:
0! = 1
n! = n*(n-1)*(n-2)* ... * 1 (pour n>0)
Ecrire une fonction FACT du type double qui reoit la
valeur N (type int) comme paramtre et qui fournit la
factorielle de N comme rsultat. Ecrire un
petit programme qui teste la fonction FACT.

EXERCICE 3
Ecrire deux fonctions qui calculent la valeur
X
N
pour une valeur relle X (type double) et
une valeur entire positive N (type int) :
a) EXP1 retourne la valeur X
N
comme rsultat.
b) EXP2 affecte la valeur X
N
X.
Ecrire un programme qui teste les
deux fonctions l'aide de valeurs lues au
clavier.


EXERCICE 4
Ecrire une fonction MIN et une fonction
MAX qui dterminent le minimum et le
maximum de deux nombres rels.
Ecrire un programme se servant des
fonctions MIN et MAX pour dterminer le
minimum et le maximum de quatre
nombres rels entrs au clavier.

Exercice 5 :
Ecrire la fonction NCHIFFRES du type int qui
obtient une valeur entire N (positive ou
ngative) du type long comme paramtre et
qui fournit le nombre de chiffres de N comme
rsultat.
Ecrire un petit programme qui teste la fonction
NCHIFFRES:
Exemple:
Introduire un nombre entier : 6457392
Le nombre 6457392 a 7 chiffres.

Exercice 6 :
En utilisant les fonctions crire un programme
permettant de fabriquer et d'afficher les carrs
magiques d'ordre impair entre 3 et 15.
Exemple : Carr magique d'ordre 3 :
8 1 6
3 5 7
4 9 2

Exercice 7 :
1) Ecrire, de deux faons diffrentes, un programme qui lit 10
nombres entiers dans un tableau avant d'en rechercher le plus grand
et le plus petit :
a) en utilisant uniquement le "formalisme tableau",
b) en utilisant le "formalisme pointeur", chaque fois que cela est
possible.
2) Ecrire une fonction qui ne renvoie aucune valeur et qui dtermine
la valeur maximale et la valeur minimale d'un tableau d'entiers ( un
indice) de taille quelconque. Il faudra donc prvoir 4 arguments : le
tableau, sa dimension, le maximum et le minimum.
Ecrire un petit programme d'essai.
3) Ecrire une fonction permettant de trier par ordre croissant les
valeurs entires d'un tableau de taille quelconque (transmise en
argument). Le tri pourra se faire par rarrangement des valeurs au
sein du tableau lui-mme.
4) Ecrire une fonction calculant la somme de deux matrices dont les
lments sont de type double. Les adresses des trois matrices et leurs
dimensions (communes) seront transmises en argument.

TP rvision
Exercice 1
crire un programme en C qui permet de connatre ses
chances de gagner au tierc, quart, quint et autres
impts volontaires.
On demande lutilisateur le nombre de chevaux
partants, et le nombre de chevaux jous. Les deux
messages affichs devront tre :
Dans lordre : une chance sur X de gagner
Dans le dsordre : une chance sur Y de gagner
X et Y nous sont donns par la formule suivante, (si N est
le nombre de chevaux partants et P le nombre de
chevaux jous), ci-dessus :
X = N ! / (N - P) !
Y = N ! / (P ! * (N P) !)

Exercice 2
Ecrire de deux faons diffrentes, un programme
en langage C qui vrifie sans utiliser une
fonction de <string>, si une chane CH introduite
au clavier est un palindrome:
a) en utilisant uniquement le formalisme tableau
b) en utilisant des pointeurs au lieu des indices
numriques
Un palindrome est un mot qui reste le mme
qu'on le lise de gauche droite ou de droite
gauche