Université Mohammed Premier Faculté des Sciences
Département d’Informatique Oujda
Année universitaire : 2016 – 2017 Filière : SMP - SMC – S4
Module : Informatique (Language C) Prof : Mohamed BOUDCHICHE
Examen du Module Informatique Session Ordinaire (Solution) Exercice 1 :
Question 1) Ecrire un programme qui permet d'afficher les nombres décimaux : 1, 2, 3 ...
jusqu'à 100 en utilisant une boucle for et en sautant de ligne à chaque fois.
Réponse 1-1 :
#include<stdio.h>
main(){
int i;
for(i=1; i<=100; i++) printf("%d\n", i);
}
Question 2) Ecrire un autre programme qui : déclare deux variables de type entier a et b et une variable de type réel c. Le programme permet de lire a et b au clavier, effectue le calcul de a^2 + b^2 et l'affecte à la variable c. Finalement, le programme affiche la valeur de c.
Réponse 1-2 :
#include<stdio.h>
main(){
int a, b;
float c;
printf("Entrez la valeur de a : ");
scanf("%d", &a);
printf("Entrez la valeur de b : ");
scanf("%d", &b);
c = a*a + b*b;
printf("La valeur de c est : %.2f", c);
}
Exercice 2 :
Ecrire un programme qui permet de faire la saisie d'un nombre entier N au clavier, de déclarer un tableau T de dimension N, d'effectuer la saisie de caractères au clavier. La saisie se termine lorsqu'on vient de saisir le caractère 'f' ou bien si N-1 caractères viennent d'être saisis. A chaque fois qu'un caractère est saisi, on l'affecte à la case suivante du tableau (en commençant par la case d'indice 0). A la fin de la saisie, on doit affecter le caractère de terminaison de chaîne de caractères à la case adéquate du tableau.
Enfin, le programme doit afficher la chaîne de caractères stockée dans le tableau T.
Merci pour votre visite
www.al3abkari-pro.com
Université Mohammed Premier Faculté des Sciences
Département d’Informatique Oujda
Année universitaire : 2016 – 2017 Filière : SMP - SMC – S4
Module : Informatique (Language C) Prof : Mohamed BOUDCHICHE
Examen du Module Informatique Session Ordinaire (Solution) Réponse 2 :
#include<stdio.h>
main(){
int N;
printf("Entrez un nombre entier : ");
scanf("%d", &N);
char a, T[N];
int i = 0;
getchar();
while( scanf("%c", &a) && i<N-1 && a != 'f' ){
T[i++] = a;
getchar();
}
T[i] = '\0';
printf("La chaine de caractere est : %s", T);
}
Exercice 3 :
Ecrire un programme qui permet de déclarer un tableau d’entiers A de dimension 20 et deux entiers N et X. Le programme doit effectuer dans l’ordre les tâches suivantes :
Demander la saisie de N et faire la saisie de N au clavier.
Effectuer la saisie de N nombres entiers. A chaque fois d’un entier est saisi, on l’affecte à la case correspondante du tableau A.
Afficher le message « Fin de saisie du tableau A. » en sautant une ligne.
Demander la saisie de X et faire la saisie de X au clavier.
Rechercher si X existe parmi les valeurs qui ont été saisies dans le tableau T (boucle for).
Afficher le résultat de la recherche : « Trouvé » si X se trouve parmi les N entiers saisis, « Non trouvé » si X ne se trouve pas parmi les N entiers saisis.
Réponse 3 :
#include<stdio.h>
main(){
int A[20];
int N, X, i;
printf("Entrez un entier (N<=20) : ");
scanf("%d", &N);
Merci pour votre visite
www.al3abkari-pro.com
Université Mohammed Premier Faculté des Sciences
Département d’Informatique Oujda
Année universitaire : 2016 – 2017 Filière : SMP - SMC – S4
Module : Informatique (Language C) Prof : Mohamed BOUDCHICHE
Examen du Module Informatique Session Ordinaire (Solution)
for(i=0; i<N; i++){
printf("A[%d] = ", i);
scanf("%d", &A[i]);
}
printf("\nFin de saisie du tableau A.\n");
printf("Entrez un entier (X) : ");
scanf("%d", &X);
int trouve = 0;
for(i=0; i<N; i++)
if(A[i] == X) trouve = 1;
if(trouve)
printf("Trouve.");
else
printf("Non trouve.");
}
Exercice 4 :
On considère trois tableaux d’entiers A, B, et C tous de dimension 10.
Le tableau A est initialisé par les valeurs : 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.
Le tableau B est initialisé par les valeurs : 20, 18, 16, 14, 12, 10, 8, 6, 4, 2.
On souhaite effectuer le traitement suivant sur les trois tableaux :
Traitement : Pour chaque indice i du tableau allant de 0 à 9, effectuer une opération d’addition ou de multiplication selon que l’indice est pair ou bien impair. Les opérandes sont les valeurs que se trouvent dans cases d’indice i des tableaux A et B. Le résultat est affecté à la case d’indice i du tableau C.
Si l’indice est pair, on effectue une addition. Si l’indice est impair, on effectue une multiplication. On demande de faire le programme qui permet de réaliser les actions suivantes :
Déclaration des trois tableaux.
Initialisation des tableaux A et B.
Réalisation du traitement décrit ci-dessus (Traitement).
Affichage du tableau C.
Merci pour votre visite
www.al3abkari-pro.com
Université Mohammed Premier Faculté des Sciences
Département d’Informatique Oujda
Année universitaire : 2016 – 2017 Filière : SMP - SMC – S4
Module : Informatique (Language C) Prof : Mohamed BOUDCHICHE
Examen du Module Informatique Session Ordinaire (Solution) Réponse 4 :
#include<stdio.h>
main(){
int A[10], B[10], C[10];
int i;
A[0] = 2;
B[0] = 20;
for(i=1; i<10; i++){
A[i] = A[i-1] + 2;
B[i] = B[i-1] - 2;
}
for(i=0; i<10; i++)
if(i%2 == 0) // i pair C[i] = A[i] + B[i];
else
C[i] = A[i] * B[i];
for(i=0; i<10; i++)
printf("C[%d] = %d\n", i, C[i]);
}