Vous êtes sur la page 1sur 3

Examen d’Algorithmique et Programmation II

Durée : 2h00

Partie I

Exercice 1 (3pts)

1. Quelle est la différence entre la déclaration d’une variable standard et un pointeur ?


2. Soit une variable x et un pointeur ptr_x qui pointe sur x, quels sont les différent modes d’accès à la valeur
de x ? Donner un exemple pour chaque mode.
3. Sachant qu’un float est codé sur 8 Octets et que la valeur (en hexadécimal) du pointeur sur float ptr
est 006B52A, quelles sont les valeurs de ptr + 2 et ptr – 2 ?
4. Soit ptr un pointeur sur type char. Donner les instructions nécessaires pour que le contenu de l’espace
pointé par ce pointeur ait la valeur ‘Z’
5. Quelle est la différence principale entre un tableau statique et un tableau dynamique ?
6. Quelle est la particularité d’une variable de type structure ?

Exercice 2 : (4 pts)

Etant donnée la fonction Vn définie par :

𝑽𝟎 = 1
𝑽 =2
{ 𝟏
𝑽𝒏 = 0 𝑠𝑖 𝑛 𝑒𝑠𝑡 𝑝𝑟𝑒𝑚𝑖𝑒𝑟
𝑽𝒏 = 4 ∗ 𝑽𝒏−𝟏 + 𝑽𝒏−𝟐 + 2 𝑠𝑖𝑛𝑜𝑛

Définir la fonction avec et sans récursivité.

1. Sans récursivité
2. Avec récursivité
Exercice 3 : (3 pts)
Donner le résultat d’exécution du programme suivant :

Programme
#include <stdio.h> main( )
int y, t; {
void initialiser(int n , int *m) int x, z = 1;
{
initialiser(5 , &y);
y = *m + n;
x = Ajouter(z) + 3;
printf("\n y = %d",y);
t = n - (*m)++; printf("\n x = %d",x);
printf("\n t = %d",t); printf("\n z = %d",z);
} initialiser(-1 , &z) ;
int Ajouter(int a) z = soustraire(&x) + 7;
{
printf("\n x = %d",x);
y+=a;
printf("\n z = %d",z);
return t ;
} initialiser(3 , &x);

int soustraire(int *b) z = Ajouter(soustraire(&z));


{ x = soustraire(&x) ;
t-=*b--; printf("\n x = %d", x);
return y; printf("\n z = %d", z);
}
}
Exercice 4 (4 pts)
Soit T un tableau dynamique de réels de taille N (saisi au clavier). Ecrire un programme qui permet de :
1. Saisir les éléments de T sans répétition (chaque élément est unique).
2. Trier le tableau T dans un ordre croissant
3. Chercher et supprimer la valeur V (à saisir au clavier) dans le tableau T en gardant le tableau trié.

Exercice 5 (6pts)

On souhaite gérer une liste de produits alimentaires vendus dans un supermarché. Pour cela on a
besoin de caractériser un Produit par les informations suivantes :
Code : entier unique
Nom : chaine de caractères
Date_Expiration : jour (entier), mois (entier) et annee (entier)
1. Définir les structures nécessaires
2. Réserver la mémoire pour un tableau T de N (saisi au clavier) produits.
3. Ecrire une fonction qui saisit les éléments du tableau T.
4. Ecrire une fonction qui affiche les codes des produits qui ont une date d’expiration supérieure à
une date donnée.
5. Ecrire une fonction qui affiche le code et la date d’expiration de tous les produits d’un nom donné.

Vous aimerez peut-être aussi