TP1 Les Pointeurs
TP1 Les Pointeurs
TP1 Les Pointeurs
Les Pointeurs
Pointeurs et variables
Excercice1:
#include <stdio.h>
int main()
int i=100;
int *pi=NULL;
pi=&i;
*pi=200;
#include<stdio.h>
1 ProgrammationII
TP1: Les Pointeurs 2019/2020
main ()
int *pi=NULL;
*pi=200;
Excercice2:
Soit le morceau de programme suivant :
a=8;
pa=&a;
x=3.14159;
p=&pa;
**p=281;
Excercice3:
Ecrire un programme effectuant les opérations suivantes :
Déclare un entier i et un pointeur p vers un entier.
Initialise i à la valeur 14.
Fait pointer p vers i.
Affiche la valeur de i en utilisant p.
Affecte 12 à i en passant par p ;
Affiche l’adresse de p.
Affiche l’adresse de i en passant par p.
2 ProgrammationII
TP1: Les Pointeurs 2019/2020
Pointeurs et fonctions
Exercice 4:
1) Ecrire et appeler une fonction somme_diff() qui calcule la somme et la différence de
deux entiers passés en paramètres.
Pointeurs et tableaux
Excercice4:
#include<stdio.h>
intmain() {
inta[3]={0,2,5} ;
intdist ;
int *ptr_int;
ptr_int=&a[0];
3 ProgrammationII
TP1: Les Pointeurs 2019/2020
printf("le nombre d'entiers représentables entreptr_int (%x) et a[0] (%x) = %d\n", ptr_int,&a[0],dist);
intA[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P;
P = A;
Exercice5 :
En utilisant uniquement le formalisme pointeur
1) Ecrire la fonction remplir_tab() permettant de remplir un tableau d’entiers.
2) Ecrire la fonction Affich_tab() permettant d’afficher un tableau d’entiers.
3) Ecrire la fonction Som_tab()permettant de calculer la somme d’un tableau d’entiers.
4) Ecrire la fonction copie_tab()permettant de copier un tableau d’entiers A passé en
paramètre à la fin d'un autre tableau d’entiers également passé en paramètre.
4 ProgrammationII
TP1: Les Pointeurs 2019/2020
5) Ecrire la fonction Supp_occ() permettant d'éliminer toutes les occurrences d'un entier X
passé en paramètre d'un tableau A(également passé en paramètre) en tassant les
éléments restants.
6) Ecrire un programme principal permettant de créer dynamiquement un tableau
d'entiers de taille N puis de tester ces fonctions
5 ProgrammationII
TP1: Les Pointeurs 2019/2020
Pointeurs et structures
Nombres complexes
8) Écrire une structure complexe qui représente un nombre complexe. Cette structure
contient deux flottants re et im représentant respectivement la partie réelle et la partie
imaginaire du nombre.
9) Écrire une fonction qui prend en paramètre deux flottants, et qui retourne un pointeur
vers un nouveau complexe.
Prototype : complexe * new_complexe(float r, float i) ;
10) Écrire une fonction qui prend en paramètre un pointeur vers un complexe, et qui affiche
ce complexe dans la console.
Prototype : void print_complexe(complexe *p) ;
11) Écrire une fonction qui prend en paramètre deux pointeurs vers des complexes, et qui
retourne un pointeur vers un nouveau complexe, somme des deux reçus en paramètre.
Prototype : complexe * addition_complexes(complexe *c1, complexe*c2) ;
12) Écrire une fonction qui prend en paramètre deux pointeurs vers des complexes, et qui
retourne un pointeur vers un nouveau complexe, produit des deux reçus en paramètre.
Prototype : complexe * produit_complexes(complexe *c1, complexe *c2) ;
6 ProgrammationII