Sunteți pe pagina 1din 1

Université Ibn Zohr A.U.

2014-2015
Faculté des Sciences SMI3
Département d’Informatique

Examen de Programmation I

Exercice 1

Soit un pointeur p qui pointe vers un tableau A comme suit :


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

Quelles valeurs ou adresses fournissent les expressions suivantes :


1. printf(" *p+2 : %d \n", *p+2 );
2. printf(" *(p+2) : %d \n", *(p+2) );
3. printf(" p+1 : %d \n", p+1 );
4. printf(" &p+1 : %d \n", &p+1 );
5. printf(" &A[4]-3 : %d \n", &A[4]-3 );
6. printf(" &A[7]-p : %d \n", &A[7]-p );
7. printf(" p+(*p-10) : %d \n", p+(*p-10) );
8. printf(" (*p)++ : %d \n", (*p)++ );
9. printf(" ++*p**p : %d \n", *p++**p );
10. printf(" ++*p**p : %d \n", ++*p**p );

Exercice 2

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension
maximale: 20 composantes),
 Remplir le tableau par des valeurs paires entrées au clavier (en imposant qu’elles
soient paires) et afficher le tableau.
 Ajouter à ce programme un bloc qui permet de classer les éléments du tableau T par
ordre croissant.
 Ajouter à ce programme un bloc qui permet de saisir un nombre M, de compter le
nombre d’élément de T qui sont inférieurs à M et de l’insérer à son emplacement
approprié.

Exercice 3
1. Ecrire une fonction char *Recherche(char *s, char c) qui renvoie un pointeur
vers la première occurrence dans la chaine s du caractère c passé en argument. Si ce
caractère n’apparaît pas dans la chaine, la fonction devra renvoyer NULL.
2. A l’aide de la fonction précédente, écrire une fonction int Compte(char *s, char c)
qui renvoie le nombre d’occurrence de c dans s.
3. A l’aide de la fonction Recherche, écrire une fonction char *Nettoyer (char *s, char c)
qui élimine toutes les occurrences de c dans s en tassant les éléments restants. La
fonction utilisera les pointeurs pour parcourir la chaine.

S-ar putea să vă placă și