Langage c
1er avril 2009 Durée: 1h45 - Documents interdits
Pour chaque question, il y a exactement une bonne réponse. Le tableau où vous devez répondre est fourni séparément. +1 pour une bonne réponse, 0 pour absence de réponse, -0,25 pour une mauvaise réponse. Vous devez obligatoirement répondre sur le tableau fourni. Pensez à le rendre avant de partir ;-) Question 0. Soit ex0.c le code suivant : #include int main() { int a = 1; int b = 2; printf("a = %d, b = %d\n", b, a); return 0; } On compile avec gcc ex0.c et si un exécutable est créé on l’exécute. Le programme ex0.c : 1. ne compile pas 2. provoque une erreur à l’exécution (erreur de segmentation par exemple) 3. affiche a = 1, b = 2 4. affiche a = 2, b = 1 Question 1. Soit ex1.c le code suivant : int main() { int i = ’0’; printf("%d\n", i); return 0; } On compile avec gcc ex1.c et si un exécutable est créé on l’exécute. Le programme ex1.c : 1. ne compile pas 2. provoque une erreur à l’exécution (erreur de segmentation par exemple) 3. affiche 0 à l’exécution 4. affiche 48 à l’exécution Question 2. Soit ex2.c le code suivant :
1
#include int main() { int i = 0; printf("%d\n", i++); return 0; } On compile avec gcc ex2.c et si un exécutable est créé on l’exécute. Le programme ex2.c : 1. ne compile pas 2. provoque une erreur à l’exécution (erreur de segmentation par exemple) 3. affiche 0 à l’exécution 4. affiche 1 à l’exécution 5. affiche 2 à l’exécution Question 3. Soit ex3.c le code suivant : #include int main() { int i = 0; int *ptr; *ptr = i; printf("%d \n", ++*ptr); return 0; } On compile avec gcc ex3.c et si un exécutable est créé on l’exécute. Le programme ex3.c : 1. ne compile pas 2. provoque une erreur à l’exécution (erreur de segmentation par exemple) 3. affiche 0 à l’exécution 4. affiche 1 à l’exécution Question 4. Soit ex4.c le code suivant : #include int main() { int i; int *ptr = &i; printf("%x\n", &*ptr); return 0; } On compile avec gcc ex4.c et si un exécutable est créé on