des exercices de programmation en C

Exercice 8.2


Ecrire un programme qui lit 5 mots, séparés par des espaces et qui les affiche ensuite dans une ligne, mais dans l'ordre inverse. Les mots sont mémorisés dans 5 variables M1, ... ,M5.
Exemple
   voici une petite phrase !
   ! phrase petite une voici


Exercice 8.3


Ecrire un programme qui lit une ligne de texte (ne dépassant pas 200 caractères) la mémorise dans une variable TXT et affiche ensuite:
a) la longueur L de la chaîne.
b) le nombre de 'e' contenus dans le texte.
c) toute la phrase à rebours, sans changer le contenu de la
variable TXT.
d) toute la phrase à rebours, après avoir inversé l'ordre des
caractères dans TXT:
            voici une petite phrase !
            ! esarhp etitep enu iciov


Exercice 8.4


Ecrire un programme qui lit un texte TXT (de moins de 200 caractères) et qui enlève toutes les apparitions du charactère 'e' en tassant les éléments restants. Les modifications se feront dans la même variable TXT.
Exemple:
   Cette ligne contient quelques lettres e.
   Ctt lign contint qulqus lttrs .

Exercice 8.5


Ecrire un programme qui demande l'introduction du nom et du prénom de l'utilisateur et qui affiche alors la longueur totale du nom sans compter les espaces. Employer la fonction strlen.
Exemple:
 
   Introduisez votre nom et votre prénom:
   Mickey Mouse
 
   Bonjour Mickey Mouse !
   Votre nom est composé de 11 lettres.


Exercice 8.6


Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2, les compare lexicographiquement et affiche le résultat:
Exemple:
 
   Introduisez la première chaîne: ABC
   Introduisez la deuxième chaîne: abc
   "ABC" précède "abc"


Exercice 8.7


Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 et qui copie la première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Afficher le résultat.
a) Utiliser les fonctions spéciales de <string>.
b) Utiliser uniquement les fonctions gets et puts.


Exercice 8.8


Ecrire un programme qui lit un verbe régulier en "er" au clavier et qui en affiche la conjugaison au présent de l'indicatif de ce verbe. Contrôlez s'il s'agit bien d'un verbe en "er" avant de conjuguer. Utiliser les fonctions gets, puts, strcat et strlen.
Exemple:
      Verbe : fêter
      je fête
      tu fêtes
      il fête
      nous fêtons
      vous fêtez
      ils fêtent

Ecrire un programme qui lit 10 mots et les mémorise dans un tableau de chaînes de caractères. Trier les 10 mots lexicographiquement en utilisant les fonctions strcmp et strcpy. Afficher le tableau trié. Utilisez la méthode de tri par sélection directe (voir Exercice 7.14).


Ecrire un programme qui lit un nombre entre 1 et 7 et qui affiche le nom du jour de la semaine correspondant:

"lundi"
pour 1

"mardi"
pour 2

. . .
. . .

"dimanche"
pour 7
Utiliser le premier élément du tableau pour mémoriser un petit message d'erreur.


Ecrire un programme qui lit 5 mots, séparés par des espaces et qui les affiche ensuite dans une ligne, mais dans l'ordre inverse. Les mots sont mémorisés dans un tableau de chaînes de caractères.
Exemple
      voici une petite phrase !
      ! phrase petite une voici


Refaire l'exercice 8.8 (Conjugaison des verbes réguliers en "er") en utilisant deux tableaux de chaînes de caractères:

SUJ
pour les sujets

TERM
pour les terminaisons
Employez les fonctions printf, scanf, strlen.

Ecrire un programme qui lit deux chaînes de caractères, et qui indique leur précédence lexicographique dans le code de caractères de la machine (ici: code ASCII). Testez votre programme à l'aide des exemples du chapitre 8.5.


Ecrire un programme qui lit une chaîne de caractères CH et qui convertit toutes les majuscules dans des minuscules et vice-versa.
Le résultat sera mémorisé dans la même variable CH et affiché après la conversion.


Ecrire une procédure qui lit une chaîne de caractères et l'interprète comme un entier positif dans la base décimale. Pour la conversion, utiliser les fonctions de <ctype> et la précédence alphabétique des caractères de '0' à '9'. Mémoriser le résultat dans une variable du type long. La conversion s'arrête à la rencontre du premier caractère qui ne représente pas de chiffre décimal. Utiliser un indicateur logique OK qui précise si la chaîne représente correctement une valeur entière et positive.


Ecrire une procédure qui lit une chaîne de caractères et l'interprète comme un entier positif dans la base hexadécimale. Pour la conversion, utiliser les fonctions de <ctype> et la précédence alphabétique des caractères. La conversion ignore les caractères qui ne représentent pas de chiffre hexadécimal et s'arrête à la fin de la chaîne de caractères. Le résultat sera mémorisé dans une variable du type long et affiché dans les bases hexadécimale et décimale.


En se basant sur l'exercice 8.17, écrire un programme qui lit une chaîne de caractères et l'interprète comme un nombre rationnel positif ou négatif introduit en notation décimale. Mémoriser le résultat dans une variable du type double. Si le nombre a été introduit correctement, la valeur du résultat sera affichée, sinon le programme affichera un message d'erreur.
Méthode:
Utiliser une variable SIG pour mémoriser le signe de la valeur. Convertir tous les caractères numériques (avant et derrière le point décimal) en une valeur entière N. Compter les décimales (c.-à-d.: les positions derrière le point décimal) à l'aide d'une variable DEC et calculer la valeur rationnelle comme suit:
N = N * SIG / pow(10, DEC)
Exemples:
-1234.234
-1234.23400

-123 45
Erreur!

123.23.
Erreur!

+00123.0123
123.012300


En se basant sur l'exercice 8.19, écrire un programme qui lit une chaîne de caractères et l'interprète comme un nombre rationnel positif ou négatif introduit en notation exponentielle. Mémoriser le résultat dans une variable du type double. Si le nombre a été introduit correctement, la valeur du résultat sera affichée, sinon le programme affichera un message d'erreur.
Méthode:
Utiliser une variable SIGE pour mémoriser le signe de l'exposant. Utiliser une variable EXP pour la valeur de l'exposant. Calculer la valeur de l'exposant à l'aide de SIGE, DEC et EXP. Calculer ensuite la valeur exacte de N à l'aide d'une formule analogue à celle de l'exercice ci-dessus.
Exemples:
-1234.234
-1234.234000

-1234. 234
Erreur!

123E+02
123400.000000

123E-02
1.230000

123.4e
123.400000

-12.1234e02
-1212.340000

123.4e3.4
Erreur!

12.12E1
121.200000

12.12 E1
Erreur!


Ecrire un programme qui supprime la première occurrence d'une chaîne de caractères OBJ dans une chaîne de caractères SUJ.
Exemples:
PHON
ALPHONSE

ALSE

EI
PIERRE

PIERRE

T
TOTALEMENT

OTALEMENT


HELLO

HELLO


Ecrire un programme qui remplace la première occurrence d'une chaîne de caractères CH1 par la chaîne CH2 dans une chaîne de caractères SUJ. Utiliser une chaîne de sauvegarde FIN pendant le remplacement.
Exemples:
PHON
OY
ALPHONSE

ALOYSE

IE
EI
PIERRE

PEIRRE

IE
ARTE
PIERRE

PARTERRE

EI
IE
PIERRE

PIERRE

TOT
FIN
TOTALEMENT

FINALEMENT


TTT
HELLO

HELLO


Ecrire un programme qui remplace toutes les occurrences d'une chaîne de caractères CH1 par la chaîne CH2 dans une chaîne de caractères SUJ. Utiliser une chaîne de sauvegarde FIN pendant le remplacement.
Exemples:
PHON
OY
ALPHONSE

ALOYSE

AN
ONT
BANANE

BONTONTE

T
Y
TOTALEMENT

YOYALEMENY


TTT
HELLO

HELLO

L

HELLO

HEO

Post a Comment

0 Comments