2
EXERCICES SUR LA MEMOIRE Soit les fonctions suivantes (bien formulées et ne présentant aucune erreur de syntaxe) : int Fonction1(char *s , char *t) { while(*s++ == *t++) ; return *s - *t ; } int Fonction2(char *s , char *t) { while(*s && *t && (*s++ == *t++)) ; return *s - *t ; } int Fonction3(char *s , char *t) { while(*s && *t && (*s == *t)) { s++ ; t++ ; } return *s - *t ; } int Fonction4(char *s , char *t) { while(*s == *t) ; { s++ ; t++ ; } return *s - *t ; } Remplir le tableau ci-dessous en fournissant la valeur de retour de chaque fonction quand cela est possible. Sinon précisez s’il y a lieu à une erreur d’exécution, auquel cas, il faut indiquer brièvement la ou les raisons qui sont à l’origine. Cas de figures pour s et t Fonction1 Fonction2 Fonction3 Fonction4 s = "ABC" ; t = "AA" ; ‘C’ ‘C’ 1 B.I s = "AB" ; t = "ABC" ; vqq -‘C’ -‘C’ B.I s = "ABC" ; t = "AB" ; vqq ‘C’ ‘C’ B.I s= "ABC" ; t = "ABC" ; vqq 0 0 B.I s = "ABC" ; t = "ABT" ; 0 0 ‘C’-‘T’ B.I s = "BBC" ; t = "CBT" ; 0 0 -1 0

Exercices sur la memoire

Embed Size (px)

Citation preview

Page 1: Exercices sur la memoire

EXERCICES SUR LA MEMOIRE

Soit les fonctions suivantes (bien formulées et ne présentant aucune erreur de syntaxe) :

int Fonction1(char *s , char *t){ while(*s++ == *t++) ; return *s - *t ; }

int Fonction2(char *s , char *t){ while(*s && *t && (*s++ == *t++)) ; return *s - *t ; }

int Fonction3(char *s , char *t){ while(*s && *t && (*s == *t)) { s++ ; t++ ; } return *s - *t ; }

int Fonction4(char *s , char *t){ while(*s == *t) ; { s++ ; t++ ; } return *s - *t ; }

Remplir le tableau ci-dessous en fournissant la valeur de retour de chaque fonction quand cela est possible. Sinon précisez s’il y a lieu à une erreur d’exécution, auquel cas, il faut indiquer brièvement la ou les raisons qui sont à l’origine.

Cas de figures pour s et t

Fonction1 Fonction2 Fonction3 Fonction4

s = "ABC" ;t = "AA" ;

‘C’ ‘C’ 1 B.I

s = "AB" ;t = "ABC" ;

vqq -‘C’ -‘C’ B.I

s = "ABC" ;t = "AB" ;

vqq ‘C’ ‘C’ B.I

s= "ABC" ;t = "ABC" ;

vqq 0 0 B.I

s = "ABC" ;t = "ABT" ;

0 0 ‘C’-‘T’ B.I

s = "BBC" ;t = "CBT" ;

0 0 -1 0

Page 2: Exercices sur la memoire

SOLUTION

Err – B.I : Erreur lors de l’exécution (Boucle infinie)Val QQ : Valeur quelconque non quantifiée (dépendante de l’état de la mémoire)

Cas de figures (s , t)

Fonction1 Fonction2 Fonction3 Fonction4

s = "ABC" ;t = "AA" ;s = "AB" ;t = "ABC" ;s = "ABC" ;t = "AB" ;s= "ABC" ;t = "ABC" ;s = "ABC" ;t = "ABT" ;

Exo 2 :

Soient les instructions suivantes :

int a , b, *c, *d, *e, f, g, h ;

a = 10 ; b = 20 ; c = &a ; d = &b ; e = c + d ; f = *c + *d ; g = *e ; h = h + a + b ; a = a + b + f ; a = a + 100 ;

Quel est le contenu des 8 variables à chaque instruction ?