Post on 18-Jul-2015
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
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 ?