Exercice langage C: Sur les fonctions de stdio.h

Exercice langage C
[tab name=’Exercice langage C’]

Exercice 1

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 2

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 3

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 .

[/tab][tab name=’Correction’]

Exercice 1

#include <stdio.h>
main()
{
 char M1[30], M2[30], M3[30], M4[30], M5[30];
 printf("Entrez 5 mots, séparés par des espaces :\n");
 scanf ("%s %s %s %s %s",  M1, M2, M3, M4, M5);
 printf("%s %s %s %s %s\n",M5, M4, M3, M2, M1);
  return 0;
}

Exercice 2

#include <stdio.h>
main()
{
 /* Déclarations */
 char TXT[201]; /* chaîne donnée       */
 int I,J;  /* indices courants         */
 int L;    /* longueur de la chaîne    */
 int C;    /* compteur des lettres 'e' */
 int AIDE; /* pour l'échange des caractères */

 /* Saisie des données */
 printf("Entrez une ligne de texte (max.200 caractères) :\n");
 gets(TXT); /* L'utilisation de scanf est impossible pour */
 /* lire une phrase contenant un nombre variable de mots. */

 /* a) Compter les caractères */
 /* La marque de fin de chaîne '' est */
 /* utilisée comme condition d'arrêt. */
 for (L=0; TXT[L]; L++)
     ;
 printf("Le texte est composé de %d caractères.\n",L);

 /* b) Compter les lettres 'e' dans le texte */
 C=0;
 for (I=0; TXT[I]; I++)
     if (TXT[I]=='e') C++;
 printf("Le texte contient %d lettres \'e\'.\n",C);

 /* c) Afficher la phrase à l'envers */
 for (I=L-1; I>=0; I--)
     putchar(TXT[I]);  /* ou printf("%c",TXT[I]); */
 putchar('\n');        /* ou printf("\n"); */

 /* d) Inverser l'ordre des caractères */
 for (I=0,J=L-1 ; I<J ; I++,J--)
    {
     AIDE=TXT[I];
     TXT[I]=TXT[J];
     TXT[J]=AIDE;
    }
 puts(TXT);  /* ou printf("%s\n",TXT); */ 
  return 0;
}

Exercice 3

#include <stdio.h>
main()
{
 /* Déclarations */
 char TXT[201]; /* chaîne donnée    */
 int  I,J;      /* indices courants */

 /* Saisie des données */
 printf("Entrez une ligne de texte (max.200 caractères) :\n");
 gets(TXT);
 /* Eliminer les lettres 'e' et comprimer :  */
 /* Copier les caractères de I vers J et incrémenter J */
 /* seulement pour les caractères différents de 'e'.   */
 for (J=0,I=0 ; TXT[I] ; I++)
    {
     TXT[J] = TXT[I];
     if (TXT[I] != 'e') J++;
    }
 /* Terminer la chaîne !! */
 TXT[J]='';
  /* Edition du résultat */
 puts(TXT);
  return 0;
}

Exercice langage C

Exercice informatique, Correction exercice, exercices corrigés, Solution exercice, Exercice langage C

[/tab][end_tabset skin= »lightness » ]

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *