Programmation en C: Exercices corrigés S4 ENSAK

52 exercices corrigés Langage C S4

Programmation en C Exercices corrigés S4 ENSA Kénitra
Université Ibn Tofail
École nationale des sciences appliquées de Kénitra (ENSAK)
2ème année cycle préparatoire (S4)
Dev-C++


Avant-propos
Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie et B.W.Kernighan se sont inspirés des langages B et BCPL, pour créer un nouveau langage : le langage C.
La première définition de ce langage a été donnée dans leur livre commun « The C programming language ».
Toutefois, suite à l'apparition de nombreux compilateurs C, l'ANSI (abréviation de American National Standards Institute) a décidé de normaliser ce langage pour donner ce que l'on appelle le C-ANSI. Suite à cette norme, Ritchie et Kernighan ont sorti une deuxième édition du livre en intégrant les modifications apportées par l'ANSI.
Le langage C reste un des langages les plus utilisés actuellement. Cela est dû au fait que le langage C est un langage qui comporte des instructions et des structures de haut niveau (contrairement à l'assembleur par exemple) tout en générant un code très rapide grâce à un compilateur très performant.
Un des principaux intérêts du C est que c'est un langage très portable. Un programme écrit en C en respectant la norme ANSI est portable sans modifications sur n'importe quel système d'exploitation disposant d'un compilateur C : Windows, UNIX, VMS (système des VAX) ou encore OS/390 ou z/Os (l'OS des mainframes IBM).
La rapidité des programmes écrits en C est en grande partie due au fait que le compilateurprésuppose que le programmeur sait ce qu'il fait : il génère un code ne contenant pas de vérifications sur la validité des pointeurs, l'espace d'adressage, etc. Ainsi, les programmes en C sont très compacts.
De plus, une des caractéristiques du C est qu'il est un langage « faiblement typé » : les types de données qu'il manipule sont très restreints, et proches de la représentation interne par le processeur : par exemple, le type 'Chaîne de caractères' n'existe pas en C. A l'inverse, comparer un entier et un caractère a un sens en C car un caractère est bien représenté en interne par le processeur par une valeur de type entier (le code ASCII ou le code EBCDIC).
Enfin et pour conclure, il est inexact que le C est un langage difficile à apprendre ! Au contraire : le C dispose de peu d'instructions, les structures de données sont limitées, etc.
Le C est un langage concis et son apprentissage est beaucoup moins ardu que ne peut l'être celui du Pascal par exemple. Voire l'exemple de code sur le JDN : Comment afficher les nombres allant de 1 à 1000 en C ou C++ sans utiliser de boucle ni de structure conditionnelle ?)
L'apprentissage du C est ainsi nécessaire pour quiconque s'intéresse à la programmation, et cet apprentissage en vaut la peine !


Table des matières
Chapitre 1 : Généralités sur le langage C
ÉNONCÉS D’EXERCICES
CORRECTION D’EXERCICES
Chapitre 2 : Les conditions
ÉNONCÉS D’EXERCICES
CORRECTION D’EXERCICES
Chapitre 3 : Les boucles
ÉNONCÉS D’EXERCICES
CORRECTION D’EXERCICES
Chapitre 4 : Les tableaux
ÉNONCÉS D’EXERCICES
CORRECTION D’EXERCICES
Chapitre 5 : Les fonctions
ÉNONCÉS D’EXERCICES

exercices corrigés programmation en c Dev-C++ ENSAK S4

Nom du fichier : Exercices corrigés en langage C By ExoSup.com.pdf
Taille du fichier : 2.2 MB
Nombre de pages: 41
Date de publication : 05/04/2016
id=335
Télécharger


ÉNONCÉS D’EXERCICES : (Télécharger le pdf pour voir le corrigé)
Chapitre 1 : Généralités sur le langage C
Exercice 1 :
Pour convertir des degrés Fahrenheit en degrés Celsius, on a la formule suivante: C≈0.55556 × (F − 32). où F est une température en degrés Fahrenheit et C la température correspondante en degrés Celsius.
1. Écrire un programme C qui convertit une température entrée au clavier exprimée en degrés Fahrenheit
et affiche une valeur approchée de la même température en degrés Celsius. Les températures seront
exprimées par des nombres réels.
2. Même question qu’au 1. pour la conversion inverse : de degrés Celsius en degrés Fahrenheit.
Exercice 2 :
Lors d’une opération de promotion, un magasin de composants hardware applique une réduction de 10% sur tous les composants. Écrire un programme qui lit le prix d’un composant au clavier et affiche le prix
calculé en tenant compte de la réduction.
Exercice 3 :
Soit la fonction mathématique f définie par f (x) = (2x + 3)*(3x2 + 2).
1. Écrire un programme C qui calcule l’image par f d’un nombre saisi au clavier.
2. Une approximation de la dérivée f' de la fonction f est donnée en chaque point x, pour h assez petit
(proche de 0), par : 𝑓'(𝑥) = [𝑓(𝑥+ℎ) −𝑓(𝑥)]/ℎ .
Écrire un programme C qui calcule et affiche une approximation de la dérivée de f en un point x entré au clavier. On pourra faire saisir le paramètre h au clavier.
Exercice 4 :
Une bille de plomb est lâchée du haut d’un immeuble et tombe en chute libre. Au bout d’un temps t (exprimé en secondes), la bille est descendue d’une hauteur (en mètres) : h = (1/2)*gt^2 où g = 9.81(m. s−2 ) .
1. Écrire un programme qui calcule la hauteur descendue au bout d’un temps t saisi au clavier.
2. Écrire un programme qui calcule la durée totale de la chute connaissant la hauteur totale h de
l’immeuble saisi au clavier.
Exercice 5 :
Écrire un programme qui lit un nombre au clavier, répond 1 si le nombre est impair et 0 si le nombre est pair.
Exercice 6 :
Écrire un programme qui affiche le chiffre des dizaines d’un nombre saisi au clavier. Même question pour les centaines.
Exercice 7 :
Écrire un programme qui calcule la longueur L d’un câble entre deux pylônes, grâce à la formule :
L = a(1+(2/3)*(2𝑓/a)^2)
On a « a » est la distance entre les pylônes et « f » la flèche mesuré perpendiculairement au milieu du
câble. Ces deux paramètres seront donnés par l’utilisateur.
Exercice 8 :
Écrire un programme qui permet de lire un nombre entier de secondes au clavier, et l’exprimer sous forme d’heures, minutes et seconde en utilisant trois variables : S, M, H.



Chapitre 2 : Les conditions
Exercice 1 :
Écrire un programme qui lit trois variables au clavier et affiche le maximum des trois.
Exercice 2 :
Écrire un programme permettant de résoudre l’équation ax2+bx+c=0 en fonction des valeurs de a, b et c.
Exercice 3 :
Écrire un programme qui lit deux nombres entiers a et b et donne le choix à l’utilisateur :
1. de savoir si la somme a + b est paire ;
2. de savoir si le produit ab est pair ;
3. de connaître le signe de la somme a + b ;
4. de connaître le signe du produit ab.
Exercice 4 :
Écrire un programme qui lit la moyenne d’un étudiant et affiche la mention correspondante. La mention est définie comme suit :
Moyenne>=16 T.Bien
14<=Moyenne<16 Bien
12<=Moyenne<14 A.Bien
10<=Moyenne<12 Passable
Exercice 5 :
Écrire un programme qui affiche, selon l’heure saisie, un des messages suivants :
o Bonjour apparaît lorsque l’heure est comprise entre 0 et 18 heures.
o Bonsoir de 18h à 22h.
o Bonne nuit après 22h.
Modifier le programme de telle sorte qu’il prenne en compte le choix de la langue avec laquelle il va
afficher le message. Exemple : l’utilisateur choisit ‘f’ pour afficher en français et ‘a’ en anglais.
o Good Morning apparaît lorsque l’heure est comprise entre 0 et 18 heures.
o Good Evening de 18h à 22h.
o Good Night après 22h.
Exercice 6 :
Écrivez un programme qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe du produit de A
et B sans faire la multiplication.
Exercice 7 :
Écrire un programme qui permet de saisir un entier de trois chiffres non nuls, de déterminer et d’afficher tous les nombres qui peuvent êtres formés par les chiffres de N.
Exemple : N=427
Les nombres formés par les chiffres de N sont : 427, 472, 724, 742, 247, 274.
Exercice 8 :
Écrire un programme qui saisit le numéro du mois et affiche le nombre de jours de ce mois. Pour le cas de février, on lit l'année, si l'année est bissextile, le nombre de jours est 29, sinon c'est 28 jours.
L’Année saisie doit être compris entre 1900 et 2100.
Exercice 9 :
Écrire un programme qui lit deux variables au clavier et les affiche dans l’ordre croissant, quitte à les
modifier.



Chapitre 3 : Les boucles
Exercice 1 :
Ecrire un programme faisant calculer et afficher le factoriel d’un entier naturel N donné. Sachant que (pour N>0) : N! = N x (N-1) x (N-2) x ...... 3 x 2 x 1.
Exercice 2 :
Ecrire un programme qui permet de lire un entier N et calcule la somme des entiers impairs inférieurs à N.
Exercice 3 :
1. Ecrire un programme qui demande successivement 20 nombres à l’utilisateur, et affiche le maximum de ces 20 nombres :
2. Modifier le programme pour que le programme affiche en quelle position avait été saisie ce nombre.
3. Modifier le programme afin qu’il affiche le maximum d’une suite saisie au clavier qui se termine par 0.
Exercice 4 :
Ecrire un programme qui lit deux entiers positifs non nuls a et b et qui calcule le PGCD de ces deux
nombres en utilisant l’algorithme d’Euclide sachant que :
PGCD (a, b) = PGCD (b, r) avec r =a mod b
Exemple PGCD (32, 12) = PGCD (12, 8)= PGCD (8, 4)=4
Exercice 5 :
La suite de Fibonacci est définie par :
𝐹0=1 ; 𝐹1=1; 𝐹i=𝐹(i-1) +𝐹(i-2) pour i≥2
Ecrire un programme qui lit un entier positif n et calcule le nème terme de la suite.
Exercice 6 :
Ecrire un programme qui affiche toutes les possibilités d’obtenir un total de 15 en ajoutant trois entiers choisis entre 1 et 9 .
Exercice 7 :
Ecrire l'algorithme permettant d’afficher le triangle suivant, le nombre de lignes étant donné par
l'utilisateur :
1
12
123
1234
12345
123456
Exercice 8 :
Ecrire un programme permettant d’afficher le triangle d’étoiles suivant :
Exemple : (pour nL=5)
*
***
*****
*******
*********
Exercice 9 :
Ecrire la un programme qui permet d’afficher un ensemble d’étoiles sous cette forme :
*
**
***
****
*****
****
***
**
*
Exercice 10 :
Ecrire un programme qui permet de déterminer la somme des chiffres d’un nombre entier donné (Exemple : pour N=25418, on aura 2+5+4+1+8=20)
Exercice 11 :
Un entier naturel de trois chiffres est dit cubique s’il est égal à la somme des cubes de ses trois chiffres.
Exemple : 153 est cubique car 153=1^3+5^3+3^3.
Ecrire un programme qui cherche et affiche tous les entiers cubiques de trois chiffres.
Exercice 12 :
Pour un entier naturel n donné, écrire un programme qui calcule la suite :
S =1/0!+1/1!+1/2!+1/3!+...+1/n!
Exercice 13 :
Ecrire un programme qui calcule et affiche la valeur de π au moyen de la série suivante (100 termes) :
𝜋= 1 −1/3+1/5−1/7+ ⋯
Exercice 14 :
On donne un entier naturel n strictement positif et on définit la suite de Syracuse par :
S0=n
Sk=S(k-1)div2 si S(k-1) est paire
SK=3S(k-1)+1 si S(k-1) est impaire
Ecrire un programme qui lit un entier positif n et calcule le nème terme de la suite.
Exercice 15 :
Ecrire un programme qui permet de calculer la somme :S=x+(x^3)/3+(x^5)/5+...+(x^(2n+1))/(2n+1)
Exercice 16 :
Ecrire un programme permettant d’afficher le pyramide de nombres suivant :
Exemple d’exécution :
Veuillez saisir le nombre des lignes : 6
       1
     232
   34543
  4567654
 567898765
67890109876
Exercice 17 :
Ecrire un programme qui donne une approximation de :
e^x ≈ 1+𝑥/1!+𝑥^2/2! +𝑥^3/3! + ⋯ +𝑥^n/𝑛!.
Exercice 18 :
Ecrire un programme permettant d’afficher le triangle d’étoiles suivant :
Exemple : (pour nL=5)
*********
*******
*****
***
*
Exercice 19 :
Écrire un programme qui calcule la racine carré d’un nombre réel positif A en utilisant la suite de Newton :
X0=A
X(n+1)=(1/2)(Xn+A/Xn)
Le calcul s’arrête quand |Xn+1-Xn|<ε avec ε donné.
Nous posons X=Xn et Yn=X(n+1)



Chapitre 4 : Les tableaux
Exercice 1 :
Soit T un tableau contenant N entiers (10≤N≤50). On propose d’écrire un programme qui permet de
déterminer et d’afficher la valeur maximale et la valeur minimale de T.
Exercice 2 :
Ecrire un programme permettant la saisie d’un entier N et l’affichage de sa représentation en binaire.
Exercice 3 :
Soit T un tableau contenant N entiers (10≤N≤50). On propose d’écrire un programme qui permet d’éclater T en deux tableaux :
TN (contenant les éléments négatifs de T) et TP (contenant les éléments positifs de T)
Exercice 4 :
Le triangle de Pascal est obtenu en considérant que pour une ligne donné :
- Le premier élément et le dernier élément sont égaux à 1.
- Les autres éléments sont obtenus au moyen de la relation : T[l][c]= T[l-1][c]+ T[l-1][c-1]
Ecrire un programme permettant de générer et afficher le triangle de Pascal de taille n.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Exercice 5 :
On peut représenter un vecteur de l'espace vectoriel Rn à l'aide d'un tableau de n réels. Écrire un
programme qui lit deux vecteurs de R10 et calcule leur produit scalaire et affiche les deux vecteurs et leur produit scalaire.
Exercice 6 :
Ecrire un programme qui lit les moyennes des étudiants dans un tableau et qui compte le nombre
d’étudiants ayant une moyenne supérieure ou égale à un seuil donné.
Exercice 7 :
Ecrire un programme qui teste si une matrice carrée d’ordre n est symétrique et qui retourne « la matrice M est symétrique » ou « la matrice M n’est pas symétrique ».
Exercice 8 :
Ecrire un programme qui teste si une matrice est triangulaire inférieure est retourne le résultat.
Exercice 9 :
Ecrire un programme qui qui teste si une matrice est triangulaire supérieure est retourne le résultat.
Exercice 10 :
Ecrire un programme qui permet de saisir deux matrices carrées réelles, calculer leur somme et afficher le résultat.
Exercice 11 :
Le produit de deux matrices réelles A=(a ij) et B=(bij) de dimension n est défini par : 𝑐ij = Σ𝑘=1,l=n aij*bkj.
Ecrire un programme qui permet de saisir deux matrices carrées réelles, calculer leur produit et afficher le résultat.
Exercice 12 :
Ecrire un programme effectuant le décalage des éléments d'un tableau.
Exemple :
-Tableau initial D E C A L A G E
-Tableau modifié E C A L A G E D
Exercice 13 :
Écrire un programme qui calcule la moyenne des notes de N étudiants dans un examen en classe, avec N saisi au clavier et toutes les notes dans un tableau.
o Le programme doit demander à l’utilisateur le nombre des étudiants (maximum 20 étudiants si plus il
faut afficher un message d’erreur).
o Après, en utilisant une boucle for l’utilisateur chargera la note de chaque étudiant dans le tableau, en contrôlant à chaque fois si la note est Valide (supérieur à 0 et inférieur à 10).
o Une somme des notes des différents étudiants sera calculé et affiché.
o Enfin, le programme affiche une moyenne des notes des N étudiants dans un examen en classe ainsi que le nombre des notes Valide et Non-Valide.
Exercice 14 :
Une Matrice carrée est une matrice à n lignes et n colonnes. L’opération de transposition consiste à
inverser les lignes et les colonnes en effectuant une symétrie par rapport à la diagonale principale de la matrice.
Exemple :
La matrice  (1;2;3  4;5;6  7;8;9)  devient  (1;4;7  2;5;8  3;6;9) .
Ecrire un programme qui permet de saisir une Matrice carrée puis il cherche et affiche son transposée.
Exercice 15 :
Écrire un programme qui reçoit en entrée 20 nombres entiers et les affichera par ordre croissant.
o Avec une boucle for le programme demandera 20 nombres qui seront inséré dans un tableau.
o Après, avec deux boucles for chaque élément va être comparé avec tous les autres. Si le nombre pris en considération par le premier cycle for est inférieur à celui par la 2éme boucle for, les éléments vont être inversés entre eux en utilisant une variable auxiliaire de support.
o A la fin des deux boucles for, le tableau contiendra les éléments ordonnés mode croissant et sera prés pour l’affichage en utilisant une autre boucle for.
Exercice 16 :
Ecrire un programme qui permet de rechercher dans une matrice donnée A les éléments qui sont à la fois un maximum sur leur ligne et un minimum sur leur colonne. Ces éléments sont appelés des points-cols.
Afficher les positions et les valeurs de tous les points-cols trouvés.
Next Post Previous Post
-->