Contrôle écrit Java – Niveau avancé
Durée : 1 heure Note : 20 points
Partie 1 : QCM (10 points)
Choisir la bonne réponse. Chaque question vaut 1 point.
1. Résultat ? 6. Résultat ?
int x=5; int y=++x+x++; "Programmation".substring(0,4)
a)10 b)11 c)12 d)13 a)Prog b)ProgR c)gram d)Programmation
2. Sortie ? 7. Résultat ?
String s="Java"; [Link](7/2);
[Link](2) a)3 b)3.5 c)4 d)erreur
a)J b)a c)v d)erreur
3. Résultat ? 8. Parcourir un tableau tab :
int[] t={2,4,6}; a)for(int i=0;i<[Link];i++)
[Link] b)for(tab)
a)2 b)3 c)4 d)erreur c)while(tab)
d)loop(tab)
4. Mot-clé pour appeler le constructeur 9. Sortie ?
parent ? "JAVA".toLowerCase()
a)parent b)this c)super d)extends a)JAVA b)java c)Java d)erreur
5. Sortie ? 10. Résultat ?
int n=1; int[] tab={5,10,15};
while(n<8){n*=2;} tab[1]
a)4 b)8 c)16 d)32 a)5 b)10 c)15 d)erreur
Partie 2 : Analyse de code (10 points)
class Produit {
private String reference;
private double prix;
private int quantite;
public Produit(String reference, double prix, int quantite) {
[Link] = reference;
[Link] = prix;
[Link] = quantite;
}
public double montantStock() {
return prix * quantite;
}
public void vendre(int qte) {
if(qte <= quantite) {
quantite -= qte;
}
}
public int getQuantite() {
return quantite;
}
}
1. Combien d'attributs possède la classe Produit ? Les citer. (2 pts)
2. Quel est le rôle de la méthode montantStock() ? (1 pt)
3. Quelle sera la valeur de quantite après l'exécution de [Link](5) ? (1 pt)
4. Donner l'affichage complet du programme. (2 pts)
5. Que se passe-t-il si l'on exécute [Link](30) ? Justifier. (2 pts)
6. Écrire une méthode stockFaible() qui retourne true si la quantité est inférieure à 5. (2
pts)