Vous êtes sur la page 1sur 5

École Nationale d'Ingénieurs de Carthage A.U.

2022/2023

Série les pointeurs (5 pages)– langage C


1ère année Ingénieur Informatique

Exercice 1 :
Soit le programme suivant :
#include<stdio.h>
void main()
{
int tab[5]={4,7,2,9,6};
int *p, *q;
p=tab;
q=tab+4;
q-=2;
p++;
*(tab+3)=*p+*q;
*(tab+4)=*(q-1)-*(p+1);
p+=*tab-*q ;
q-=*p-*(tab+3);
tab[0]=p-q ;
p=q ;
}
Remplir le tableau suivant (seulement les cellules contenant des pointillés), en supposant que :
&tab[0] : F50 ; &tab[1] : F54 ; &tab[2] : F58 ; &tab[3] : F5C ; &tab[4] : F60 ;
Instructions p *p q *q tab[0] tab[1] tab[2] tab[3] tab[4]
p=tab …… ….. ….. ….. ….. ….. …..
q=tab+4; ….. …..
q-=2; ….. …..
p++; ….. …..
*(tab+3)=*p+*q; …..
*(tab+4)=*(q-1)-*(p+
…..
1);
p+=*tab-*q ; ….. …..
q-=*p-*(tab+2)-1; ….. …..
tab[0]=p-q ;
…..
p=q ; ….. …..

Exercice 2 :
Quel est le contenu des variables A, B, C, P1 et P2 après chacune des instructions du
programme ci après

void main()
{
int A = 1;
int B = 2;
int C = 3;
int *P1, *P2;
P1=&A;
P2=&C;
*P1=(*P2)++;

1
P1=P2;
P2=&B;
*P1-=*P2;
++*P2;
*P1*=*P2;
A=++*P2**P1;
P1=&A;
}

Exercice 3 : utiliser des tableaux dynamiques


Remplir et afficher deux tableaux tab1 et tab2. Copier tab1, ensuite tab2 dans un tableau tab3.
Afficher tab3.

Exercice 4 : utiliser un tableau dynamique


Écrire un programme qui vérifie si un tableau est un palindrome (tableau symétrique)
Exemples: 12345 ==> n'est pas un palindrome
1479741 ==> est un palindrome
23432 ==> est un palindrome

Exercice 5 : utiliser le formalisme pointeur (taille max:50)


Écrire un programme qui lit deux tableaux d'entiers tab1 et tab2 au clavier et supprime la
première suite de tab2 se trouvant dans tab1.

tab1: 12345123789 ; tab2: 123 => 45123789

Exercice 6: utiliser le formalisme pointeur (taille max:50)


Même chose que l'exercice 6: supprimer toutes les occurrences de tab2 dans tab1.

tab1: 12345123789 ; tab2: 123 => 45789

Exercice 7: (extrait du DS du 06 novembre 2012)


Écrire un programme qui crée, remplit et affiche un tableau dynamique de n entiers.
n doit être compris entre 10 et 20 (le pgm doit faire un contrôle sur n).
Ensuite affiche la taille de la plus longue suite de nombres successifs.

Exemple 1:
1 2 3 4 61 33 34 3 21 2 51 6 5 3 13 14 15 16 17 10
=> Résultat 5
Exemple d'exécution:

2
Exercice 8: (extrait de l'examen de la session de rattrapage, le 10 juin 2013)
Soit une matrice dynamique de l lignes et c colonnes d'entiers.
1. Ecrire la fonction allocation permettant de réserver l'espace nécessaire pour cette
matrice.
2. Ecrire 2 fonctions remplir_mat et afficher_mat permettant respectivement de remplir
et d'afficher la matrice par des entiers.
3. Ecrire une fonction transposee permettant de créer et d'afficher la transposée d'une
matrice dynamique (la matrice résultat est dynamique aussi).

rappel

A= 1 3 5 🡺 transposée de A= 1 2
2 4 6 3 4
5 6

Exercice 9 : extrait du DS du 12 novembre 2013

Dans cet exercice, vous allez saisir les notes de n étudiants (n doit être supérieur à 3). Le
nombre de notes (int) est variable d'un étudiant à un autre.
Soient les tableaux dynamiques suivants (voir schéma): Le 1er tableau contient le nombre de
notes de chaque étudiant. Le 2ème tableau contient les notes de chaque étudiant.

Ecrire le programme qui:


1. Crée les tableaux dynamiques
2. Remplit les tableaux
3. Affiche les tableaux
4. Pour chaque étudiant: afficher sa meilleure et sa mauvaise note, ainsi que sa moyenne.

Exercice 10: extrait de l'examen du 08 janvier 2014

Une résidence est composée de l immeubles. Un immeuble est composé de c étages. Un étage
est composé de k appartements.
Dans cet exemple, l=2, c=3 et k=4.
Les derniers tableaux contiennent les superficies des k appartements.

3
Soit le programme suivant:

4
Ecrire les fonctions suivantes: (Ne pas oublier de préciser leurs en-têtes)

1. saisir: cette fonction lit le nombre d'immeubles, le nombre d'étages et retourne le nombre
d'appartements.
2. allocation
3. La fonction remplir_residence: saisit les superficies des appartements
4. La fonction afficher_residence: affiche les superficies des appartements
5. La fonction superficie_etage_immeuble: calcule et retourne la somme de la superficie des k
appartements de l'étage 'et' de l'immeuble 'im'. (exemple: superficie étage et:2, immeuble
im:2 🡺 530m2).
6. La fonction superficie_immeuble: calcule et retourne la superficie totale de l'immeuble 'im'
(utiliser la question 5) (exemple: immeuble im=2 🡺 1370m2).
7. La fonction superficie_totale: calcule la superficie totale de la résidence (utiliser la question
6)

Vous aimerez peut-être aussi