Vous êtes sur la page 1sur 2

SEMESTRE 1 - EXAMEN FINAL N°1

MODULE : INFORMATIQUE I
Date : 16/01/2019 Durée : 2H
REMARQUE : * L’USAGE DE LA CALCULATRICE EST STRICTEMENT INTERDIT.
Questions de cours: (6 pts)
1) Le plus grand nombre binaire non signés sur 8bits s’écrit en décimal 28.
A) Vrais.
B) Faux.

2) En programmation C, quel est l’instruction utiliser pour afficher une valeur d’une variable A de
type entier:
A) scanf("%d",A) ;
B) printf("%d",&A) ;
C) printf("%d",A) ;
3) En algorithmique, quels sont les instructions qui sont capable de stocker (mémoriser) des valeurs
de type quelconque, dans une case mémoire ?

4) En programmation C, quel sont les types de boucle utilisé pour saisir ou afficher une variable de
type tableau.

5) Quel seront les valeurs des variables x et y après l’exécution des instructions suivant:
x=5&7; 1: #include<stdio.h>
y=x++ ; 2: int a;
6) Corriger les erreurs dans le programme C suivant : 3: float A;
Remarque : 4: int main(){
Il faut réécrire que les lignes qui contiennent l’erreur. 5: scanf("%d",a);
6: A=10;
7: if(a=1){
8: A++;}
9: else{
10: if(a<<=0){
11: A--;}
12: else(a==0){
13: A=+2;}}
14: printf("a=%d est un entier: ",a);
15: printf("A =%d est un reel", A);
16: return 0;}
Exercice 1 : (5 pts)

I) Soit le nombre binaire N signé sur 16 bits en complément à 2: N = (0000 0100 1011 1111)2
1) Donner la valeur décimale de N.
2) Soit M = 20-N.
Donner la valeur binaire et décimale de l’entier signé M, sachant que les nombres sont
représentés en Complément à 2 sur 16 bits (les opérations doivent être effectué en binaire).
II) Soit la fonction booléenne suivante : 𝐹(𝑥, 𝑦, 𝑧, 𝑤) = 𝑦𝑧̅𝑤 ̅ + 𝑦̅𝑧𝑤 + 𝑥̅ 𝑦̅𝑧𝑤
̅ + 𝑥̅ 𝑦𝑧𝑤 + 𝑥̅ 𝑦𝑧𝑤
̅
1) Simplifier la fonction F(x,y,z,w), ensuite tracer le circuit équivalent.
2) Quel sont les termes (à 4 variables) qu’il faut ajouter à la fonction initial F(x,y,z,w) (non
simplifier), pour obtenir une fonction simplifier avec des termes à deux variables seulement.

Page 1/2
Exercice 2 : (4pts)

Soit le programme C suivant :

#include<stdio.h>
int j, m, A ;
int xj, xm, xA;
int main(){ 1) Donnez les résultats d’exécution du
do{ programme pour les valeurs des variables
scanf("%d",&j) ; d’entrée j=31, m=12 et A=1089.
scanf("%d",&m) ;
2) Déduire le rôle de ce programme.
scanf("%d",&A) ;
}while(j<=0||m<=0|| A<=0) ; 3) Dans ce programme, est-ce que c’est
xj=j; xm=m; xA=A; possible d’utiliser la boucle while( ){ } au
if(m==2){ lieu de la boucle do{ }while( ). Si oui
if(j<28){ écrire les instructions qui doivent être
xj=xj+1;} ajouté?
else{
xj=1;
xm=xm+1;}
}
if(m==4 || m==6 || m==9 || m==11){
if(j<30){
xj=xj+1;}
else{
xj=1;
xm=xm+1;}
}
if(m==1 ||m==3 ||m==5 || m==7 || m==8 || m==10 || m==12){
if(j<31){
xj=xj+1;}
else{
if(m==12){
xj=1;
xm=1;
xA=A+1;}
else{
xj=1;
xm=xm+1;}
} }
printf(“%d %d %d”,xj, xm, xA);
return 0;}

Exercice 3 : (5pts)

Ecrire un algorithme ou un programme C, qui permet d’afficher le poids fort et le chiffre de poids
fort d’un entier décimal positif N saisi par l’utilisateur. Dans le cas ou N est un nombre négatif le
programme doit afficher "erreur" et redemande à l’utilisateur d’entrer un autre nombre positif ou nul.

Exemple:
N=2019
Le poids fort de 2019 est : 3,
Le chiffre de poids fort de 2019 est : 2.

Page 2/2