• Aucun résultat trouvé

Quelques exercices sur la manipulation de pointeurs

N/A
N/A
Protected

Academic year: 2022

Partager "Quelques exercices sur la manipulation de pointeurs"

Copied!
1
0
0

Texte intégral

(1)

Quelques exercices sur la manipulation de pointeurs

Exercice 1 : Soit le programme suivant : main()

{

int A = 1;

int B = 2;

int C = 3;

int *P1, *P2;

P1=&A;

P2=&C;

*P1=(*P2)++;

P1=P2;

P2=&B;

*P1-=*P2;

++*P2;

*P1*=*P2;

A=++*P2**P1;

P1=&A;

*P2=*P1/=*P2;

return 0;

}

Complétez le tableau ci-dessus pour

chaque instruction du programme ci-dessus.

Exercice 2 : Soit P un pointeur qui 'pointe' sur un tableau T:

int T[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};

int *P;

P = T;

Quelles valeurs ou adresses fournissent ces expressions:

a) *P+2

b) *(P+2)

c) &P+1 d) &T[4]-3

e) T+3

f) &T[7]-P g) P+(*P-10)

h) *(P+*(P+8)-T[7])

Exercice 3 : Écrire un programme qui lit un entier C et un tableau A du type int au clavier et supprime toutes les occurrences de C dans T en tassant les éléments restants. Le programme utilisera les pointeurs P1 et P2 pour parcourir le tableau.

Exercice 4 : Écrire un programme qui range les éléments d'un tableau T du type int dans l'ordre inverse. Le programme utilisera des pointeurs P1 et P2 et une variable intermédiaire pour la permutation des éléments.

A B C P1 P2

Init. 1 2 3 / /

P1=&A 1 2 3 &A / P2=&C

*P1=(*P2)++

P1=P2 P2=&B

*P1-=*P2 ++*P2

*P1*=*P2 A=++*P2**P1 P1=&A

*P2=*P1/=*P2

1

(2)

Exercice 5 : Écrire un programme qui lit deux chaînes de caractères CH1 et CH2 au clavier et élimine toutes les lettres de CH1 qui apparaissent aussi dans CH2. Utiliser deux pointeurs P1 et P2, une variable logique TROUVE et la fonction strcpy.

Exemple: Bonjour Bravo ==> njou

Bonjour Bravo ==> Bnjou abacab aa ==> bcab

Exercice 6 : Soient les déclarations de NOM1 et NOM2:

char *NOM1[] = {"Marc", "Jean-Marie", "Paul", "François-Xavier", "Claude" };

char NOM2[][16] = {"Marc", "Jean-Marie", "Paul", "François-Xavier", "Claude" };

a) Représenter graphiquement la mémorisation des deux variables NOM1 et NOM2.

b) Imaginez que vous devez écrire un programme pour chacun des deux tableaux qui trie les chaînes selon l'ordre lexicographique. En supposant que vous utilisez le même algorithme de tri pour les deux programmes, lequel des deux programmes sera probablement le plus rapide?

Exercice 7 : Soit le programme suivant : #include <stdio.h>

char fonc1(char , char );

char fonc2(char *, char *);

int main() {

char a= 'V';

char b= 'D';

char i, j;

i= fonc1(a, b);

printf("a=%c b=%c\n, a, b);

j= fonc2(&amp;a, &amp;b);

printf("a=%c b=%c\n", a, b);

return 0;

}

char fonc1(char c1, char c2){

c1= 'P';

c2= 'Q';

return ((c1<c2) ? c1 : c2);

}

char fonc2(char *c1, char *c2){

*c1= 'P';

*c2= 'Q';

return ((*c1==*c2) ? *c1 : *c2);

}

1. Quelle est la valeur de i ? 2. Quelle est la valeur de j ?

3. Quelles sont les valeurs affichées par le premier printf ? 4. Quelles sont les valeurs affichées par le deuxième printf ?

2

Références

Documents relatifs

AD7 Comprendre la propagation d’une onde Activité 2 p33 (pour préparer l’activité expérimentale) Exos n°10 et 12 p43. AE2 Définir une

La masse molaire moléculaire M d’une molécule est la masse d’une mole de cette molécule. Elle se détermine en effectuant la somme des masses molaires atomiques de tous les

La masse molaire moléculaire M d’une molécule est la masse d’une mole de cette molécule. Elle se détermine en effectuant la somme des masses molaires atomiques de tous les

Pour que le groupe puisse répéter, il faut qu'au moins deux des membres soient présents pendant les séances de répétition.. La présence de chaque membre est indépendante de celle

7/ Pour un malade ayant reçu le médicament M (sachant M), calculer la probabilité avec laquelle son état s’est amélioré au bout de 3 jours (probabilité

« Un volcan est un canon d’un volume immense dont l’ouverture a souvent plus e deux kimomètres ; cette large bouche à feu vomit des torrents de fumée et de flammes,

Compétences : Communiquer à l’écrit et à l’oral / Lire, interpréter, exploiter et mettre en relation des données présentées sous différentes formes.. Problématique

T1 CH1 Compétences : Communiquer à l’écrit / Lire, interpréter exploiter et mettre en relation des données présentées sous différentes formes.. Question 4 : Réalisez un