1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Les pointeurs en langage C - Exercices corrigés sur les pointeurs en C/C++| exercices corrigés langa

abdelouafiDec 23, 2016

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      180
      Likes Received:
      9
      Trophy Points:
      18
      Joined
      Sep 13, 2016

      Exercice pointeur langage c:Exercices corrigés langage c




      Pour voir la solution des exercices ci-dessous cliquez sur "SOLUTION" en haut

      exercice langage c:


      On vous propose dans cette catégories des exercices en langage C, notamment sur la notion de pointeur. La notion de pointeur langage C est très utilisée puisque elle possède plusieurs avantages.
      Sept exercices corrigés sur les pointeurs en langage C que vous allez découvrir dans cette article.

      Exercice 1

      Ecrire un programme qui demande les éléments d'un tableau T, et une valeur A puis élimine toutes les occurrences de A dans ce tableau. Utiliser deux pointeurs P1 et P2.
      soit le tableau T suivant

      La valeur de la variable A est: A=4
      [​IMG]

      Donc le résultat sera:
      [​IMG]

      Exercice 2

      Ecrire un programme qui inverse les éléments d'un tableau T. Utiliser deux pointeurs P1 et?
      Premier tableau:
      [​IMG]
      Le résultat est :
      [​IMG]

      Exercice 3:

      Ecrire de deux façons différentes, un programme qui vérifie sans utiliser une fonction de <string>, si une chaîne CH introduite au clavier est un palindrome:

      a) en utilisant les tableaux

      b) en utilisant des pointeurs

      Exemple:
      AXA : est un palindrome
      Radar est un palindrome
      ISTA : n'est pas un palindrome

      Exercice 4:

      Sans utiliser des variables numériques, écrire un programme qui lit une chaîne de caractères et détermine la longueur de la chaîne à l'aide d'un pointeur P.

      Exercice 5:

      Ecrire un programme détermine le nombre de mots contenus dans un texte. Utiliser un pointeur P et la fonction isspace qui teste si un caractère est un espace.

      Code:
      if (Isspace(c) ) printf("oui c'est un espace ")
      
      else printf("non n 'est pas un espace")
      Exercice 6:

      Ecrire un programme qui compte les occurrences des lettres de l'alphabet d'un texte (majuscules ou minuscules).

      Par exemple:

      Texte= Bonjour Tout Le mondE

      1 fois le caractère B

      3 fois le caractère O

      .....



      Exercice 7:

      En utilisant les pointeurs, écrire un programme qui lit un texte et une chaînes de caractères C1. Il élimine toutes les lettres de C1 apparaissant dans le texte.?

      par exemple:

      Texte= ISTA NTIC SYBA

      mot= IGA

      Le résultat sera : ST NTC SYB

      -------------------------------------------------------------------------------------------------


      si vous désirez apprendre à programmer en C alors on vous propose un cours détaillé de programmation en C pour les débutant.

      Le C est un langage de programmation très important, très riche en fonctions aussi. Le langage C est apparu dans les années 70, il est toujours en évolution. Le langage C n'est pas simple à comprendre (un peu complexe) mais si vous arrivez à le maîtriser alors à ce moment vous aurez les base très solides de programmation.

      Dans un premier temps, vous allez apprendre dans ce cours en premier temps le fonctionnement de la mémoire (très important par la suite), la notion de variables, les conditions ou se qu'on appelle structure conditionnelle, les boucles, les tableaux, les chaines de caractères et les fichiers. Par la suite vous allez découvrir la bibliothèque SDL pour la création des interfaces graphique (jeux vidéo, audio...). Et finalement on va entamer les structures de données très répandu comme les listes, les piles, les tables de hachages etc...

      Le plan de ce cours sera:

      Partie 1: LEs base de la programmation en C



      1. Les bons outils

      2. Le premier programme en C

      3. Les variables en C

      4. Les conditions

      5. Les boucles

      6. Les fonctions

      Partie 2: Niveau avancés du langage C



      1. La programmation modulaire

      2. Les pointeurs

      3. Les tableaux

      4. Les chaines de caractères

      5. Lire et écrire des fichiers
       

      Attached Files:

      Last edited: Feb 22, 2017
      2 Peoples like this
      Loading...
      EXERCICE 1:
      Code:
      #include <stdio.h>
      main()
      {
      int A[50];
      int N;
      int X;
      int *P1, *P2;
      
      /* Saisie des données */
      printf("Dimension du tableau (max.50) : ");
      scanf("%d", &N );
      for (P1=A; P1<A+N; P1++)
           {
            printf("Elément %d : ", P1-A);
            scanf("%d", P1);
           }
        printf("Introduire l'élément X à éliminer du tableau : ");
      scanf("%d", &X );
      printf("le contenu de votre tableau est:\n");
      /* Affichage du tableau */
      for (P1=A; P1<A+N; P1++)
           printf("%d ", *P1);
        printf("\n");
      for (P1=P2=A; P1<A+N; P1++)
           {
            *P2 = *P1;
            if (*P2 != X)
                 P2++;
           }
        /* Nouvelle dimension de A */
      N = P2-A;
        /* Edition du résultat */
      printf("le contenu du nouveau tableau est:\n");
      for (P1=A; P1<A+N; P1++)
           printf("%d ", *P1);
        printf("\n");
      return 0;
      }
      EXERCICE 2:
      Code:
      #include <stdio.h>
      main()
      {
      int A[50];
      int N; 
      int AIDE;
      int *P1, *P2;
      /* Saisie des données */
      printf("Donnez la dimension du tableau : ");
      scanf("%d", &N );
      for (P1=A; P1<A+N; P1++)
           {
            printf("Elément %d : ", P1-A);
            scanf("%d", P1);
           }
        /* Affichage du tableau */
        printf("Le contenu de ce tableau : \n");
      for (P1=A; P1<A+N; P1++)
           printf("%d ", *P1);
        printf("\n");
      /* Inverser la tableau */
      for (P1=A,P2=A+(N-1); P1<P2; P1++,P2--)
           {
            AIDE = *P1;
            *P1  = *P2;
            *P2  = AIDE;
           }
      
        printf("Le nouveau contenu de ce tableau : \n");
      for (P1=A; P1<A+N; P1++)
            printf("%d ", *P1);
        printf("\n");
      return 0;
      }
      EXERCICE 3:
      A- méthode 1:

      Code:
      #include <stdio.h>
      main()
      {
      char CH[101];
      int I,J; 
      int PALI; 
        /* Saisie des données */
      printf("Entrez votre chaine:\n");
      gets(CH);
      /* Placer J sur la dernière lettre de la chaîne */
      for(J=0; CH[J]; J++)
           ;
      J--;
      /* tester si CH est un palindrome */
      PALI=1;
      for (I=0 ; PALI && I<J ; I++,J--)
      {
            if (CH[I] != CH[J])
                PALI=0;
      }
       
      
      if (PALI==1)
          printf("La chaîne: %s est un palindrome.\n", CH);
      else
          printf("La chaîne: %s n'est pas un palindrome.\n", CH);
      return 0;
      }
      B- méthode 2
      Code:
      #include <stdio.h>
      main()
      {
      char CH[101];
      char *P1,*P2;
        int PALI;
      
      printf("Entrez une chaine de caractères:\n");
      gets(CH);
      /* Placer P2 sur la dernière lettre de la chaîne */
      for (P2=CH; *P2; P2++)
            ;
      P2--;
      /* tester si CH est un palindrome */
      PALI=1;
      for (P1=CH ; PALI && P1<P2 ; P1++,P2--)
      {
            if (*P1 != *P2)
            PALI=0;
      }
       
      
      if (PALI)
          printf("La chaîne %s est un palindrome.\n", CH);
      else
          printf("La chaîne %s n'est pas un palindrome.\n", CH);
      return 0;
      }
      Exercice 4:
      Code:
      #include <stdio.h>
      
      main()
      {
      
      char CH[101];
      char *P;  
      
      printf("donnez votre texte:\n");
      gets(CH);
      /* Placer P à la fin de la chaîne */
      for (P=CH; *P; P++)
            ;
        /* Affichage du résultat */
      printf("La chaîne \"%s\" contient %d caractères.\n",CH, P-CH);
      return 0;
      }
      Exercice 5:
      Code:
      #include <stdio.h>
      #include <ctype.h>
      main()
      {
      char CH[101];
      char *P;   
      int N;     
      int nbr; 
      printf("donnez votre texte :\n");
      gets(CH);
      /* Compter les mots */
      N=0;
      nbr=0;
      for (P=CH; *P; P++)
           if (isspace(*P))
               nbr=0;
           else if (!nbr)
               {
                nbr=1;
                N++;
               }
        /* Affichage du résultat (pour perfectionnistes) */
      printf("La chaîne \"%s\" \nest formée de %d mot%c.\n",
                                              CH, N, (N==1)?' ':'s');
      return 0;
      }
      EXERCICE 6:
      Code:
      #include <stdio.h>
      main()
      {
      char CH[101];
      char *PCH;  
      int t[26];
        int *P;
      printf("Donnez votre texte :\n");
      gets(CH);
      /* Initialiser le tableau ABC */
      for (P=t; P<t+26; P++)
           *P=0;
      /* Compter les lettres */
      for (PCH=CH; *PCH; PCH++)
           {
            if (*PCH>='A' && *PCH<='Z')
               (*(t+(*PCH-'A')))++; /* Attention aux parenthèses! */
            if (*PCH>='a' && *PCH<='z')
               (*(t+(*PCH-'a')))++;
           }
      
      printf("La chaîne \"%s\" contient :\n", CH);
      for (P=t; P<t+26; P++)
           if (*P)
              printf(" %d\tfois la lettre '%c' \n",*P, 'A'+(P-t));
        return 0;
      }
      EXERCICE 7:
      Code:
      #include <stdio.h>
      #include <string.h>
      main()
      {
      
      char CH1[101], CH2[101];
      char *P1, *P2;
      int TROUVE;
                 
      /* Saisie des données */
      printf("donnez une chaine de caractères:\n");
      gets(CH1);
      printf("Entrez la deuxième chaîne de caractères \n");
      gets(CH2);
      
      for (P2=CH2; *P2; P2++)
           {
            TROUVE = 0;
            for (P1=CH1 ; *P1 && !TROUVE ; P1++)
                 if (*P2==*P1)
                     {
                      TROUVE = 1;
                      strcpy(P1, P1+1);
                     }
           }
        /* Affichage du résultat */
      printf("Chaîne résultat : \"%s\" \n", CH1);
      return 0;
      }
      

Share This Page

Share