Solutions Série 1 S2 2018-2019
Solutions Série 1 S2 2018-2019
(EXERCICES/SOLUTIONS)
Master SEIB
2018-2019
Azzedine DLIOU
ENSA Agadir
Université Ibn Zohr
EXERCICE 1
Quels sont les résultats fournit par les programmes suivants :
1. #include <stdio.h> 2. #include <stdio.h>
main () main()
{ {
int i, j, n ; int n=20, p=15, q=10, r;
i=2; r = n == (p += q);
n = i-- ; printf ("A : n = %d p = %d q = %d r
printf ("A : i = %d n = %d \n", i, n); = %d\n", n, p, q, r);
i = 10 ; n = ++i ; n = p = q = 5;
printf ("B : i = %d n = %d \n", i, n); n += p -= q ;
i = 15 ; j = 5 ; n = i++*--j ; printf ("B : n = %d p = %d q =
printf ("C : i = %d j = %d n = %d %d\n", n, p, q) ;
\n", i, j, n ) ; q = n++/++p;
i = 15 ; n = i -= 2 ; printf ("C : n = %d p = %d q =
printf ("D : i = %d n = %d \n", i, n); %d\n", n, p, q) ;
i = 4 ; j = 5 ; n = i *= j++ ; q = ++n%p++;
printf ("E : i = %d j = %d n = %d printf ("D : n = %d p = %d q =
\n", i, j, n) ; %d\n", n, p, q) ;
} }
EXERCICE 1
3. #include<stdio.h>
main()
{
char c;
int n;
c='s';
printf("cas A : %c\n",c);
n=c;
printf("cas B : %c\n", n);
printf("cas C : %d %d\n", c, n);
printf("cas D : %d %c\n", c, n);
}
EXERCICE 2
1. Soit le programme C suivant : 2. Soit le programme suivant :
#include <stdio.h> #include <stdio.h>
main() main()
{ {
int i, j = 2; int i = 5, j=2;
float x = 2.5; float x, y;
i = j + x; x = i/j;
x = x + i; printf("a = %f \n",x);
printf("x = %f \n",x); }
} a) Qu’affiche ce programme ?
a) Qu’affiche ce programme ? b) pourquoi ?
b) pourquoi ? c) Modifiez le pour qu’il affiche le
c) Modifiez le pour qu’il affiche le résultat demandé affiche le
résultat demandé affiche le résultat demandé
résultat demandé
EXERCICE 2
3. On considère la séquence 4. L’exécution du programme ci-
d’instructions suivante : dessous donne les résultats
int a = 5, b = 3, c = 2; indiqués. Expliquer pourquoi.
int x = 0, y = 0, z = 1; #include <stdio.h>
a = b; main()
x || (y && z); {
a & b; char c = 'a';
a + b – c; printf("%d\n",c);
(x == y) || (x != z); c = c+c;
(a | b) & c; printf ("%d\n",c);
(a * c) / b; }
(a < b) != ( !(b >= c) ); Résultats :
(a&b) || c; 97
Évaluer chacune des expressions, -62
ou déclarations.
EXERCICE 3
2-
EXERCICE 5
Qu’affichera le programme suivant ?
1 #include <stdio.h>
2 main(){
3 int a=16;
4 int b=2;
5 int c=10;
6 c += a > 0 && a <= 15 ? a++ : a/b;
7 a > 30 ? b = 11 : c = 100;
8 printf("\na=%d b=%d c=%d\n",a,b,c);
9}
Que se passe-t-il si on remplace la ligne 7 par :
a = a > 30 ? b = 11 : c = 100; ?
EXERCICE 6
}
printf("\n") ;
}
EXERCICE 8
2.
#include <stdio.h>
main(){
char car;
printf("donner un caractere : ") ;
scanf("%c" , &car) ;
if ( car=='a'|| car=='e' || car=='i' || car=='u' ||
car=='o' || car=='A'|| car=='E' || car=='I' ||
car=='U' || car=='O')
printf("le carctere \"%c\" est une voyelle\n",car) ;
else
printf("le carctere \"%c\" n'est pas une
voyelle\n",car) ;
}
EXERCICE 8
2. Autre solution :
#include <stdio.h>
main(){
char car;
printf("donner un caractere : ") ;
scanf("%c" , &car) ;
switch(car){
case 'a': case 'e': case 'i': case 'u': case 'o':
case 'A': case 'E': case 'I': case 'U': case 'O':
printf("le carctere \"%c\" est une
voyelle\n",car) ;
break;
default : printf("le carctere \"%c\" n'est pas
une voyelle\n",car) ;
}
}