Académique Documents
Professionnel Documents
Culture Documents
Nom :
Prnom :
Groupe :
Question 1 (2 points)
Quelles sont les valeurs contenues dans le tableau tab aprs la dclaration suivante :
int tab[6];
Rponse :
Question 2 (2 points)
Quelle boucle est la mieux adapte pour afficher toutes les valeurs dun tableau de 10 entiers compltement rempli ? Justifiez.
Rponse :
NOM :
Prnom :
Groupe :
CINI
Question 3 (3 points)
Parmi les dclarations suivantes, lesquelles sont correctes (cest--dire ne provoquent aucune erreur lors
de la compilation) ?
2 int i = a;
2 int tab[5] = {5.4, 3.5};
2 char c = "w";
2 bool b = 0;
2 float f = 3 ;
2 bool b = vrai ;
Debug (6 pts)
Question 4 (6 points)
Nous considrons le programme suivant qui affiche la somme des N premiers entiers pairs :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cini.h>
#difine N 8
int main() {
int res, i ;
for(i=2, i<= N*2, i = i+2){
res = res + i;
}
CINI_print_string("la somme des ");
CINI_print_int(N);
CINI_print_string(" premiers entiers pairs est : ");
CINI_print_int_(res);
}
page 2 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
Question 5 (3 points)
Compltez le programme suivant afin dinitialiser le tableau dentiers tabInt avec les N premiers
termes de la suite gomtrique de raison R et premier terme U0. Ainsi, la case dindice i du tableau
contiendra le terme ui de la suite.
page 3 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
#include <cini.h>
#define N 10
#define R 4
#define U0 7
int main() {
int tabInt[N] ;
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
return 0;
}
Question 6 (4 points)
tant donn le tableau tabInt initialis avec les N premiers termes de la suite, nous souhaitons dterminer quel est le premier terme de la suite strictement suprieur une variable seuil. Donnez les
instructions permettant dafficher lindice et la valeur de ce terme. Si aucun des N premiers termes de la
suite ne dpasse la valeur de la variable seuil, le message "Aucune valeur trouve" sera affich.
page 4 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
int seuil = 1000;
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
Question 7 (2 points)
Compltez le programme suivant afin de demander lutilisateur de saisir le mois et lanne dont il
souhaite afficher le calendrier. Le mois sera saisi sous forme dun nombre compris entre 1 et 12 (1 pour
janvier, 2 pour fvrier, ..., 12 pour dcembre) et lanne sera saisie sur 4 chiffres (par exemple 2010). Il
nest pas demand de vrifier la validit des valeurs saisies par lutilisateur.
page 5 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
#include <cini.h>
int main() {
int mois, annee;
/* Saisie des valeurs de mois et dannee : A COMPLETER */
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
CINI_print_string("mois choisi : ");
CINI_print_int(mois);
CINI_print_string("/");
CINI_print_int(annee);
CINI_newline();
return 0;
}
Question 8 (2 points)
Nous souhaitons prsent dterminer le nombre de jours dans le mois considr. Les mois de janvier,
mars, mai, juillet, aot, octobre et dcembre comptent 31 jours. Le mois de fvrier compte 28 jours sauf
en cas danne bissextile o le mois compte alors 29 jours. Tous les autres mois comptent 30 jours.
Pour le mois de fvrier, il est donc ncessaire de dterminer si lanne considre est bissextile. Une
anne est bissextile si elle est divisible par 4 et pas par 100, ou si elle est divisible par 400. Par exemple,
2008 et 2000 sont bissextiles mais pas 1900.
Lanne considre est stocke dans la variable annee. Donnez la formule boolenne qui vaut la valeur
vrai si lanne est bissextile et la valeur faux sinon.
Rponse :
page 6 sur 10
NOM :
Prnom :
Groupe :
CINI
Question 9 (3 points)
En vous aidant de la question prcdente, donnez les instructions permettant de dterminer le nombre de
jours nbJ du mois mois. Nous supposerons que les variables mois et annee ont t prcdemment
dclares et initialises.
Rponse :
int
nbJ;
CINI_print_string("Il y a ");
CINI_print_int(nbJ);
CINI_print_string(" jours dans le mois");
CINI_newline();
page 7 sur 10
NOM :
Prnom :
Groupe :
CINI
Question 10 (4 points)
Afin de dterminer quel jour de la semaine correspond une date donne, nous allons utiliser la formule de Zeller, qui est la suivante (on commence par calculer une valeur temp qui permet ensuite de
dterminer le nombre de Zeller zeller) :
temp = (j + b2.6m 0.2c + a + ba/4c + bc/4c 2c (1 + b)bm/11c + 35)(mod 7)
Si temp < 0 alors
zeller = temp + 7
sinon
zeller = temp
o :
b.c correspond la partie entire infrieure.
j correspond au numro du jour dans le mois.
m correspond un code mois : avec mars comme premier mois (m = 1) et fvrier comme dernier mois
(m = 12). Ainsi, si mois est le numro du mois, on a m = mois 2 si mois > 2 et m = mois + 10
sinon.
c est le nombre de centaines des annes.
a est lanne dans le sicle.
b = 1 si lanne est bissextile et 0 sinon.
La valeur de Zeller calcule est un numro correspondant une jour de la semaine : 0 pour dimanche, 1
pour lundi, ..., 6 pour samedi.
Par exemple, pour le 28/10/2010, on obtient : j vaut 28, m vaut 8, c vaut 20, a vaut 10 et b vaut 0.
Donnez les instructions C qui, tant donnes les valeurs du mois et de lanne, calculent les valeurs de
m, c, a et b. Nous supposerons que les variables mois et annee ont t prcdemment dclares et
initialises.
Rponse :
int m, c, a, b;
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
Question 11 (3 points)
Traduisez la formule de Zeller en langage C et compltez le code ci-dessous afin que la variable zeller
ait pour valeur le rsultat de la formule de Zeller. Nous supposerons que les variables j, m, c, a et b ont
t initialises.
Partiel LI115 28 octobre 2010
page 8 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
int j, m, c, a, b, zeller;
/* Initialisation de j, m, c, a, b */
/* Application de la formule de Zeller : A COMPLETER*/
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
Question 12 (6 points)
Pour chaque jour du mois, nous souhaitons enfin afficher le nom du jour et son numro. En vous appuyant
sur vos rponses aux questions prcdentes, compltez le code suivant, afin de raliser cet affichage.
Nous supposerons que les valeurs de mois et annee ont t pralablement saisies et que les variables
de j, m, c, a, et b ont t initialises. Les parties du code complter sont identifies par des traits.
page 9 sur 10
NOM :
Prnom :
Groupe :
CINI
Rponse :
int mois, annee, nbJ;
int j, m, c, a, b, zeller;
/* Saisie des valeurs de mois et dannee */
/*Determination du nombre de jours dans le mois */
/* calcul de la valeur de b suivant */
/* que lannee est bissextile ou non */
/* Initialisation de m, c, a */
page 10 sur 10