Vous êtes sur la page 1sur 5

Université Mohammed V SMP4 : Pr A.

riadsolh
Faculté des Sciences de Rabat
Printemps 2022

Série 6: Exercices Langage C

Les pointeurs
Exercice1 :

a) *P+2 => la valeur 14


b) *(P+2) => la valeur 34
c) &A[4]-3 => l'adresse de la composante A[1]
d) A+3 => l'adresse de la composante A[3]
e) &A[7]-P => la valeur (indice) 7
f) P+(*P-10) => l'adresse de la composante A[2]
g) *(P+*(P+8)-A[7]) => la valeur 23

Exercice2

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int A[30]={10,5,8,2,5,10,7,9,20,15,17,8,13,15,20,10,16,10,20,5,2,5,10,12,20,17,16,15,19,10},X;
int *P1=A,*P2=A+30,*P;
printf("\nDonner la valeur de X ");
scanf("%d",&X);
// traitement
while(P1<P2)
{
if(*P1==X)
{
P=P1;
for(P=P1;P<P2;P++)
*P=*(P+1);
*P2=0;
P2--;
}
P1++;
}
P1=A;
puts("\n");
while(P1<P2)
{
printf(" %2d",*P1);
P1++;
}
}

Exercice 3

#include <stdio.h>
Université Mohammed V SMP4 : Pr A.riadsolh
Faculté des Sciences de Rabat
Printemps 2022

#include <stdlib.h>
#include <conio.h>
main()
{
int A[6]={4,5,8,2,5,1},i;
int *P1=A,*P2=A+5,Aide;
puts("\n");
for(i=0;i<6;i++)
printf(" %2d",A[i]);
// traitement
while(P1<P2)
{
Aide=*P1;
*P1=*(P2);
*P2=Aide;
P1++;
P2--;
}
P1=A;
P2=P1+6;
puts("\n");
while(P1<P2)
{
printf(" %2d",*P1);
P1++;
}
}

Exercice 4

//
// S8E3
//
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int A[20],B[10],i;
int *P1=A,*P2=B,N,M;
puts("\n");
do
{
system("cls");
puts("\ndonner la dimension du tableau A (<=10)");
scanf("%d",&N);
if(N<2||N>10)
puts("....recommencez...!");
}while(N<2||N>10);
do
{
system("cls");
puts("\ndonner la dimension du tableau B (<=10)");
scanf("%d",&M);
if(M<2||M>10)
puts("....recommencez...!");
}while(M<2||M>10);

for(i=0;i<N;i++)
Université Mohammed V SMP4 : Pr A.riadsolh
Faculté des Sciences de Rabat
Printemps 2022

{
printf("\nA[%d] = ",i+1);
scanf("%d",&A[i]);
P1++;
}
for(i=0;i<M;i++)
{
printf("\nB[%d] = ",i+1);
scanf("%d",&B[i]);
}

// traitement
for(i=0;i<M;i++)
{
*P1=*P2;
P1++;
P2++;
}
P1=A;
for(i=0;i<N+M;i++)
printf(" %2d,",*P1++);
}

Exercice 5

//
// S8E4
//
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
char A[30],*P1=A,*P2;
int i,n=0,pal=1; // pal=1 palindrome...
puts("donner un mot: ");
while((*P1=getchar())!='\n')
{
P1++;
n++;
}
*P1='\0';
P2=P1-1;
P1=A;
// formalisme tableau
n--;
for(i=0;i<n/2;i++)
{
if(A[i]!=A[n-i])
pal=0;
}
if(pal==1)
printf("\nc'est un palindrome");
else
printf("\nce n'est pas un palindrome");
// formalisme pointeur
pal=1;
while(P1<P2)
{
Université Mohammed V SMP4 : Pr A.riadsolh
Faculté des Sciences de Rabat
Printemps 2022

if(*P1!=*P2)
pal=0;
P1++;
P2--;
}
if(pal==1)
printf("\nc'est un palindrome");
else
printf("\nce n'est pas un palindrome");
}

Exercice 6

//
// S8E6
//
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
char CH[300],*P1=CH,*P2=CH;
int N=0;
puts("donner une phrase : ");
while((*P2=getchar())!='\n'&&(P2-P1)<300)
{
P2++;
}
*P2='\0';
printf("\nLa longueur de la chaine est : %d",P2-P1);
while(P1<=P2)
{
if((isspace(*P1)!=0)||*P1=='\0')
N++;
P1++;
}
printf("\nLe nombre de mot est : %d",N);
}

Exercice 7

//
#include <stdio.h>
#include <stdlib.h>
main()
{
int A[2][3],*P=A,N=2,M=3,i,j,k=0;
printf("\n\nsaisie de la matrice");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
{
printf("\nA[%1d][%1d]",i+1,j+1);
scanf("%d",P+((N+1)*i+j));
}
// affichage matrice A
printf("\n\n");
for(i=0;i<N;i++)
Université Mohammed V SMP4 : Pr A.riadsolh
Faculté des Sciences de Rabat
Printemps 2022

{
printf("\n");
for(j=0;j<M;j++)
printf(" %2d",*(P+((N+1)*i+j)));

/* b) Affichage de la transposée de A */
printf("\n");
printf("\n");
printf("Matrice transposée :\n");
for (j=0; j<M; j++)
{
for (i=0; i<N; i++)
printf("%7d ", *(P+((N+1)*i+j)));
printf("\n");
}

Vous aimerez peut-être aussi