Buts:
- [Entrées et Sorties], [Spécificités C++], [Opérateurs, expressions et conversions] et [Les structures de contrôle].
Entrées et Sorties
- Q1: Que va afficher en sortie le programme suivant (q1.cpp).
Essayez de trouver la réponse sans vous aider de votre compilateur! [Solutionnaire].
Spécificités C++
- Q2: La compilation et le linkage du programme suivant (q2.cpp) se passent bien.
Cependant le programme plante à l'exécution! Pourquoi? Essayez de trouver la réponse sans vous aider de votre compilateur! [Solutionnaire].
Opérateurs, expressions et conversions
- Q3: Sachant que X=200 et que Y=400, dites pour chacune des expressions logiques suivantes, si elle est vraie ou fausse et expliquer pourquoi?
- a.
(x<y && x!=y)
Est-ce que (200 < -400)? La réponse est non. Donc la première partie de l'expression est fausse. Comme les deux parties de l'expression
sont liées par l'opérateur logique && (et); il suffit que l'une des parties soit fausse pour que toute l'expression soit fausse aussi et cela sans
qu'on ait le besoin d'examiner la 2e partie de l'expression. Réponse: FAUX
- b.
(x>y || x==y)
Est-ce que (200 > -400)? La réponse est oui. Donc la première partie de l'expression est vraie. Comme les deux parties de l'expression
sont liées par l'opérateur logique || (ou); il suffit que l'une des parties soit vraie pour que toute l'expression soit vraie aussi et cela sans
qu'on ait le besoin d'examiner la 2e partie de l'expression. Réponse: VRAI
- c.
!(x>y)
Est-ce que (200 > -400)? La réponse est oui. L'opérateur "!" permet de réaliser la négation. Donc le VRAI (oui) se transforme en FAUX. Réponse: FAUX
- Q4: Écrire les expressions suivantes en C++.
- Q5: Écrire un programme qui lit 2 entiers différents du clavier et affiche en sortie si le premier nombre est
un multiple du second (utiliser pour cela l'opérateur modulo). [Solutionnaire].
- Q6: Écrire un programme qui affiche en sortie la valeur entière d'une lettre (majuscule ou minuscule),
d'un digit (0, 1, 2, 3 etc.) ou d'un caractère spécial (espace blanc, +, $ etc.) [Solutionnaire].
- Q7: Écrire un programme qui demande à un usager d'entrée la valeur d'un angle. Cette valeur est comprise entre 0o
et 360o. Ce programme affiche en sortie à quel cadran appartient la valeur de cet angle. On suppose qu'il y a 4 cadrans à intervalle de
90o. [Solutionnaire].
- Q8: Écrire un programme C++ qui affiche la séquence suivante: 2 4 6 8 10 20 22 24 26 28 30 40 42 44 46 48 50 60.
Vous ne devez utiliser qu'une seule boucle for, l'opérateur conditionnel ternaire (?:) et un cout (en plus du cout pour un saut de ligne à la fin du programme)
pour afficher le résultat en sortie. [Solutionnaire].
Les structures de contrôle
- Q9: Dites si les déclarations suivantes sont correctes ou pas.
- a.
if (jour=7) cout << "Aller au parc";
else cout << "Aller au travail";
La déclaration est incorrecte à cause du signe = au lieu de == i.e jour==7 et non pas jour=7
- b.
if (jour==7); cout << "Aller au travail";
La déclaration est correcte, même si if (jour==7); ne sert à rien!
- c.
int h=17, m, n, o;
if (m<n)
o = h;
n = o;
else
m = h;
Le segment de code est incorrect. Le "else" vient trop loin! Soit ajouter des {} sinon le "else" doit suivre directement le "if".
- d.
y = ? z>x :a w;
L'expression est incorrecte. Il fallait écrire y = z > x ? a : w;
On suppose pour ce qui suit que les variables a et b sont du type int. a=1 et b=2.
- e.
default:
- f.
switch(a);
Erreur: Il faudra retirer le ";" pour avoir: switch(a)
- g.
case 123;
Erreur: Il faudra remplacer le ";" par un ":".
- h.
switch {a+b};
Erreur: Il faudra retirer le ";" et remplacer {} par () pour avoir: switch (a+b)
- i.
switch (a): {case 1: b=a+2; break;}
Erreur: Il faudra retirer le ":" pour avoir: switch (a) {...}
- Q10: Que va afficher en sortie le programme suivant (q10.cpp).
Essayez de trouver la réponse avant d'exécuter le programme. [Solutionnaire].
|
|