1. Quelle est la méthode principale en Java ?
a) main
b) start
c) run
d) execute
2. Comment déclare-t-on un tableau en Java ?
a) int[] arr;
b) int arr[];
c) array int[];
d) a[] int;
3. Quelle est l'extension d'un fichier Java compilé ?
a) .class
b) .java
c) .exe
d) .jar
4. Quelle est la syntaxe correcte pour créer un objet en Java ?
a) MyClass obj = new MyClass();
b) MyClass obj = MyClass();
c) MyClass obj = new MyClass;
d) MyClass obj = create MyClass();
5. Quelle est la méthode pour obtenir la longueur d'un tableau en Java ?
a) arr.length()
b) arr.size()
c) arr.length
d) arr.getLength()
6. Comment déclarer une variable constante en Java ?
a) final int x;
b) const int x;
c) static int x;
d) immutable int x;
7. Quelle interface est utilisée pour la gestion des collections en Java ?
a) Collection
b) List
c) Set
d) Map
8. Comment déclarer une méthode statique en Java ?
a) static void myMethod() {}
b) void static myMethod() {}
c) public void myMethod() static {}
d) static myMethod() void {}
9. Quel mot-clé est utilisé pour créer une classe en Java ?
a) class
b) new
c) create
d) define
10. Quel est le type de données par défaut d'une variable non initialisée en Java ?
a) null
b) 0
c) undefined
d) NaN
11. Comment définit-on une classe abstraite en Java ?
a) abstract class MyClass {}
b) class MyClass abstract {}
c) abstract MyClass class {}
d) class MyClass; abstract {}
12. Quelle exception est lancée lorsqu'un index est hors des limites d'un tableau en
Java ?
a) ArrayIndexOutOfBoundsException
b) IndexOutOfBoundsException
c) OutOfBoundsException
d) ArrayBoundsException
13. Comment appelle-t-on une méthode d'une classe parente depuis une sous-classe
en Java ?
a) super.methodName()
b) parent.methodName()
c) this.methodName()
d) call.methodName()
14. Quelle est la différence entre `==` et `equals()` en Java ?
a) `==` compare les références, `equals()` compare les valeurs
b) `==` compare les valeurs, `equals()` compare les références
c) Ils sont identiques
d) `==` compare les types, `equals()` compare les valeurs
15. Quel mot-clé est utilisé pour hériter d'une classe en Java ?
a) extends
b) inherits
c) implements
d) derives
16. Quelle est la syntaxe correcte pour déclarer une fonction en C++ ?
a) void myFunction();
b) myFunction void();
c) function void myFunction();
d) void function myFunction();
17. Comment déclare-t-on un tableau en C++ ?
a) int arr[10];
b) int arr = new int[10];
c) array<int> arr(10);
d) int arr();
18. Quelle est l'extension d'un fichier source C++ ?
a) .cpp
b) .c++
c) .exe
d) .cc
19. Comment déclare-t-on un pointeur en C++ ?
a) int* ptr;
b) int ptr*;
c) *int ptr;
d) int ptr;
20. Quelle est la syntaxe correcte pour créer un objet en C++ ?
a) MyClass obj;
b) MyClass obj = new MyClass();
c) MyClass obj();
d) MyClass* obj = MyClass();
21. Quel mot-clé est utilisé pour créer une classe en C++ ?
a) class
b) new
c) struct
d) define
22. Quelle est la méthode pour accéder à un membre d'une classe via un objet en C++ ?
a) obj.member
b) obj->member
c) obj::member
d) member.obj
23. Comment déclare-t-on une fonction virtuelle en C++ ?
a) virtual void myFunction();
b) void virtual myFunction();
c) virtual function void myFunction();
d) void myFunction() virtual;
24. Quel est le mot-clé utilisé pour éviter la copie d'un objet en C++ ?
a) private
b) public
c) delete
d) protected
25. Quelle méthode est utilisée pour allouer de la mémoire dynamique en C++ ?
a) new
b) malloc
c) allocate
d) create
26. Quelle est la différence entre `struct` et `class` en C++ ?
a) Par défaut, `struct` est public et `class` est privé
b) `class` est public et `struct` est privé
c) Les deux sont identiques
d) `class` ne peut pas contenir des fonctions
27. Comment définit-on un constructeur en C++ ?
a) MyClass() {}
b) void MyClass() {}
c) MyClass() : {}
d) class MyClass() {}
28. Comment déclare-t-on une variable constante en C++ ?
a) const int x;
b) final int x;
c) static int x;
d) immutable int x;
29. Quel est le mot-clé utilisé pour gérer la mémoire dynamique en C++ ?
a) delete
b) free
c) release
d) remove
30. Quelle est la syntaxe pour un constructeur de copie en C++ ?
a) MyClass(const MyClass& other);
b) MyClass(MyClass other);
c) MyClass(MyClass& other);
d) MyClass(const MyClass other);
31. Quelle est la syntaxe correcte pour une méthode virtuelle en Java ?
a) public void myMethod();
b) public abstract void myMethod();
c) public virtual void myMethod();
d) void myMethod() {}
32. Quelle est la méthode pour vérifier si un objet est nul en Java ?
a) if (obj == null)
b) if (obj.isNull())
c) if (obj.equals(null))
d) if (obj == undefined)
33. Comment déclare-t-on une fonction membre d’une classe en C++ ?
a) void myFunction();
b) void myFunction() {};
c) void myFunction() : {}
d) void function myFunction();
34. Quelle syntaxe est utilisée pour accéder à un membre statique d'une classe en C++
?
a) MyClass::staticMember
b) MyClass.staticMember
c) MyClass->staticMember
d) staticMember<MyClass>
35. Comment déclarer une méthode abstraite en Java ?
a) abstract void myMethod();
b) public void myMethod() {};
c) public abstract myMethod();
d) void myMethod() abstract;
36. Quelle est la syntaxe correcte pour un opérateur de surcharge en C++ ?
a) MyClass operator+(const MyClass& other);
b) MyClass operator+(MyClass other);
c) MyClass operator+(MyClass& other) { return *this; }
d) MyClass operator+(const MyClass& other) { return *this; }
37. Comment créer une interface en Java ?
a) interface MyInterface {}
b) public class MyInterface {}
c) abstract class MyInterface {}
d) interface class MyInterface {}
38. Quel est le type par défaut des membres d'une classe en C++ ?
a) private
b) public
c) protected
d) none
39. Quelle est la méthode pour obtenir la taille d'un `std::vector` en C++ ?
a) vec.size()
b) vec.length()
c) vec.getSize()
d) vec.capacity()
40. Quelle est la différence entre `protected` et `private` en C++ ?
a) `protected` permet l'accès aux sous-classes, `private` non
b) `private` permet l'accès aux sous-classes, `protected` non
c) Ils sont identiques
d) `protected` est accessible globalement, `private` est local
41. Comment définit-on une classe interne en Java ?
a) class MyClass { class InnerClass {} }
b) class MyClass { public class InnerClass {} }
c) class MyClass { InnerClass class {} }
d) class InnerClass extends MyClass {}
42. Quelle est la méthode pour lancer une exception en Java ?
a) throw new Exception();
b) throws Exception();
c) raise Exception();
d) exception();
43. Quel est le résultat de `3 / 2` en Java ?
a) 1
b) 1.5
c) 2
d) 1.0
44. Quelle est la classe de base de toutes les classes Java ?
a) Object
b) Base
c) Class
d) Super
45. Comment crée-t-on un thread en Java ?
a) new Thread().start();
b) Thread t = new Thread(); t.start();
c) Thread t = new Thread().start();
d) start new Thread();
46. Quelle est la portée des variables locales en Java ?
a) Méthode dans laquelle elles sont définies
b) Classe entière
c) Fichier source
d) Package
47. Comment lit-on une ligne depuis la console en Java ?
a) BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
b) Scanner sc = new Scanner(System.in); sc.nextLine();
c) System.in.readLine();
d) Console.readLine();
48. Quel est le mot-clé utilisé pour importer une classe en Java ?
a) import
b) include
c) use
d) require
49. Comment crée-t-on une instance de `ArrayList` en Java ?
a) ArrayList<Type> list = new ArrayList<>();
b) ArrayList<Type> list = new ArrayList<Type>();
c) ArrayList list = new ArrayList();
d) ArrayList<Type> list = new ArrayList<Type>();
50. Comment appelle-t-on une méthode d'une superclasse en Java ?
a) super.methodName()
b) parent.methodName()
c) this.methodName()
d) base.methodName()
51. Quelle est la méthode correcte pour lire un entier depuis la console en C++ ?
a) cin >> x;
b) cin.get(x);
c) read(x);
d) x = input();
52. Comment crée-t-on une fonction membre d'une classe en C++ ?
a) void myFunction() {}
b) void myFunction();
c) myFunction() {};
d) void myFunction() { return; }
53. Quel est le mot-clé utilisé pour allouer dynamiquement un tableau en C++ ?
a) new
b) malloc
c) allocate
d) create
54. Comment accède-t-on à un membre d’une classe via un pointeur en C++ ?
a) ptr->member
b) ptr.member
c) member.ptr
d) ::ptr.member
55. Quelle est la syntaxe correcte pour une classe en C++ avec un constructeur ?
a) class MyClass { public: MyClass() {} };
b) class MyClass { MyClass() {}; public: };
c) class MyClass { public: void MyClass() {}; };
d) class MyClass { MyClass() {}; };
56. Comment utilise-t-on les exceptions en C++ ?
a) try { ... } catch (Exception& e) { ... }
b) throw Exception();
c) catch (Exception e) { ... }
d) try { ... } finally { ... }
57. Quelle est la syntaxe correcte pour un destructeur en C++ ?
a) ~MyClass() {}
b) void ~MyClass() {}
c) ~MyClass();
d) MyClass::~MyClass() {}
58. Comment déclare-t-on une méthode inline en C++ ?
a) inline void myFunction() {}
b) void myFunction() inline {}
c) inline void myFunction();
d) void myFunction() { return; }
59. Quelle est la différence entre `public` et `private` en C++ ?
a) `public` permet l'accès global, `private` est local à la classe
b) `private` permet l'accès global, `public` est local à la classe
c) Ils sont identiques
d) `public` est utilisé uniquement pour les méthodes
60. Comment déclare-t-on une fonction membre constante en C++ ?
a) void myFunction() const;
b) const void myFunction();
c) void const myFunction();
d) void myFunction() { const; }
61. Comment déclare-t-on une méthode finale en Java ?
a) final void myMethod() {}
b) void myMethod() final {}
c) final method void myMethod();
d) void final myMethod();
62. Quel est le résultat de `5 % 2` en Java ?
a) 1
b) 2
c) 0
d) 5
63. Quelle est la syntaxe correcte pour un constructeur de copie en C++ ?
a) MyClass(const MyClass& other);
b) MyClass(MyClass other);
c) MyClass(MyClass& other);
d) MyClass(const MyClass other);
64. Quelle méthode est utilisée pour allouer de la mémoire dynamique en C++ ?
a) new
b) malloc
c) allocate
d) create
65. Comment vérifie-t-on si une liste est vide en Java ?
a) list.isEmpty()
b) list.size() == 0
c) list.empty()
d) list.size()
66. Comment déclare-t-on un attribut de classe statique en C++ ?
a) static int myVar;
b) int static myVar;
c) static myVar int;
d) myVar static int;
67. Quel mot-clé est utilisé pour une interface en Java ?
a) interface
b) class
c) abstract
d) struct
68. Comment déclare-t-on un opérateur de surcharge en C++ ?
a) MyClass operator+(const MyClass& other);
b) MyClass operator+(MyClass other);
c) MyClass operator+(MyClass& other) { return *this; }
d) MyClass operator+(const MyClass& other) { return *this; }
69. Quelle est la syntaxe correcte pour une fonction membre constante en C++ ?
a) void myFunction() const;
b) const void myFunction();
c) void const myFunction();
d) void myFunction() { const; }
70. Quel est le mot-clé utilisé pour déclarer une classe virtuelle en C++ ?
a) virtual
b) abstract
c) interface
d) class
71. Comment crée-t-on un objet d’une classe en Java ?
a) MyClass obj = new MyClass();
b) MyClass obj = MyClass();
c) MyClass obj();
d) MyClass* obj = new MyClass();
72. Quelle est la méthode pour lire une ligne depuis la console en C++ ?
a) getline(cin, str);
b) cin.getline(str);
c) str = cin.readLine();
d) read(str);
73. Comment déclare-t-on une méthode abstraite en C++ ?
a) Il n'y a pas de concept de méthode abstraite en C++
b) virtual void myMethod() = 0;
c) abstract void myMethod();
d) void myMethod() {};
74. Comment utilise-t-on les exceptions en Java ?
a) try { ... } catch (Exception e) { ... }
b) throw Exception();
c) catch (Exception e) { ... }
d) try { ... } finally { ... }
75. Quel mot-clé est utilisé pour implémenter une interface en Java ?
a) implements
b) extends
c) inherits
d) includes
76. Quelle est la syntaxe pour déclarer une variable de classe statique en Java ?
a) static int myVar;
b) int static myVar;
c) static myVar int;
d) myVar static int;
77. Comment déclare-t-on une fonction membre en C++ ?
a) void myFunction();
b) void myFunction() {};
c) myFunction() {};
d) void myFunction() { return; }
78. Quelle est la méthode correcte pour accéder à un membre privé d’une classe en
Java ?
a) via une méthode publique
b) directement
c) via un constructeur
d) via une méthode protégée
79. Comment déclare-t-on une méthode finale en Java ?
a) final void myMethod() {}
b) void myMethod() final {}
c) final method void myMethod();
d) void final myMethod();
80. Quelle est la différence entre `protected` et `private` en Java ?
a) `protected` permet l'accès aux sous-classes et aux classes du même package,
`private` est accessible uniquement au sein de la même classe
b) `private` permet l'accès aux sous-classes et aux classes du même package,
`protected` est accessible uniquement au sein de la même classe
c) Ils sont identiques
d) `protected` est utilisé uniquement pour les méthodes
81. Quelle est la méthode correcte pour vérifier la taille d'un tableau en C++ ?
a) sizeof(array) / sizeof(array[0])
b) array.size()
c) array.length()
d) array.getSize()
82. Quelle est la méthode pour obtenir la taille d'une `ArrayList` en Java ?
a) list.size()
b) list.length()
c) list.getSize()
d) list.count()
83. Comment définit-on une classe imbriquée en Java ?
a) class Outer { class Inner {} }
b) class Outer { public class Inner {} }
c) class Outer { Inner class {} }
d) class Inner extends Outer {}
84. Quel est le mot-clé pour créer un constructeur par défaut en C++ ?
a) MyClass() {}
b) MyClass() = default;
c) default MyClass() {};
d) MyClass() { return; }
85. Comment vérifie-t-on si une variable est null en Java ?
a) if (variable == null)
b) if (variable.isNull())
c) if (variable.equals(null))
d) if (variable == undefined)
86. Comment déclare-t-on un tableau dynamique en C++ ?
a) int* arr = new int[size];
b) int arr[size];
c) int arr = new int[size];
d) array<int> arr(size);
87. Quelle est la méthode pour déclarer une fonction membre constante en C++ ?
a) void myFunction() const;
b) const void myFunction();
c) void const myFunction();
d) void myFunction() { const; }
88. Quelle est la méthode pour gérer les erreurs en Java ?
a) try { ... } catch (Exception e) { ... }
b) throw Exception();
c) catch (Exception e) { ... }
d) try { ... } finally { ... }
89. Comment crée-t-on un tableau en Java avec une taille dynamique ?
a) int[] arr = new int[size];
b) int arr = new int[size];
c) int arr[size];
d) array<int> arr(size);
90. Comment déclare-t-on une variable membre en C++ ?
a) int myVar;
b) int myVar = 0;
c) int myVar();
d) myVar int;
91. Quelle est la méthode pour utiliser une classe abstraite en Java ?
a) Étendre la classe et implémenter ses méthodes abstraites
b) Créer une instance directe de la classe abstraite
c) Utiliser la classe abstraite directement
d) Modifier la classe abstraite pour la rendre concrète
92. Comment déclare-t-on un attribut de classe statique en Java ?
a) static int myVar;
b) int static myVar;
c) static myVar int;
d) myVar static int;
93. Comment crée-t-on un objet d’une classe en C++ ?
a) MyClass obj;
b) MyClass obj = new MyClass();
c) MyClass* obj = MyClass();
d) MyClass obj();
94. Quelle est la méthode pour initialiser un tableau en C++ ?
a) int arr[] = {1, 2, 3};
b) int arr = {1, 2, 3};
c) int arr[3] = {1, 2, 3};
d) int arr[3] = {1, 2};
95. Quel est le mot-clé utilisé pour définir une méthode abstraite en C++ ?
a) virtual void myMethod() = 0;
b) abstract void myMethod();
c) void myMethod() {};
d) void myMethod() abstract;
96. Comment lit-on une ligne depuis la console en C++ ?
a) getline(cin, str);
b) cin.getline(str);
c) str = cin.readLine();
d) read(str);
97. Quelle est la méthode correcte pour définir une méthode statique en Java ?
a) static void myMethod() {}
b) void myMethod() static {}
c) static myMethod() void {}
d) public void myMethod() static {}
98. Quelle est la méthode correcte pour définir un destructeur en C++ ?
a) ~MyClass() {}
b) void ~MyClass() {}
c) MyClass() {};
d) MyClass::~MyClass() {};
99. Quel mot-clé est utilisé pour déclarer une méthode dans une classe en C++ ?
a) void myFunction();
b) void myFunction() {};
c) myFunction() {};
d) void myFunction() { return; }
100. Quelle est la différence entre `public`, `protected`, et `private` en Java ?
a) `public` est accessible de partout, `protected` dans le même package et sous-
classes, `private` uniquement dans la même classe
b) `protected` est accessible de partout, `private` dans le même package et sous-
classes, `public` uniquement dans la même classe
c) Ils sont identiques
d) `public` et `protected` sont pour les méthodes, `private` pour les variables
Les concepts d'encapsulation et d'héritage sont essentiels en programmation orientée
objet, et ils sont abordés dans les questions ci-dessus. Voici des questions spécifiques
qui se concentrent davantage sur ces concepts pour Java et C++ :
### Questions sur l'Encapsulation
1. **Quel est le niveau d'accès par défaut des membres d'une classe en Java ?**
a) public
b) protected
c) private
d) package-private (aucun mot-clé)
2. **Quel mot-clé est utilisé pour rendre une méthode accessible uniquement à partir
de la même classe en Java ?**
a) private
b) protected
c) public
d) final
3. **Comment accéder à un membre privé d'une classe depuis une autre classe en Java
?**
a) Via une méthode publique dans la même classe
b) Via une méthode protégée dans la même classe
c) Directement depuis la classe
d) Via une méthode publique dans la classe contenant la méthode privée
4. **Quel est l'impact de l'utilisation du mot-clé `private` sur l'encapsulation ?**
a) Limite l'accès à la méthode ou variable uniquement à la classe où elle est définie
b) Permet l'accès à la méthode ou variable uniquement aux sous-classes
c) Rendre la méthode ou variable accessible à tout le package
d) Permet l'accès global à la méthode ou variable
5. **Quel est l'effet de déclarer une variable de classe `protected` en Java ?**
a) La variable est accessible dans le même package et par les sous-classes
b) La variable est accessible uniquement dans le même package
c) La variable est accessible uniquement dans la même classe
d) La variable est accessible globalement
6. **Quel est le niveau d'accès par défaut des membres d'une `struct` en C++ ?**
a) public
b) protected
c) private
d) aucun niveau d'accès par défaut
7. **Comment une classe en C++ peut-elle empêcher l'accès direct à ses membres ?**
a) En déclarant les membres comme `private`
b) En utilisant le mot-clé `public`
c) En utilisant le mot-clé `protected`
d) En utilisant `static`
8. **Quel est le niveau d'accès par défaut des membres d'une classe en C++ ?**
a) private
b) public
c) protected
d) aucun niveau d'accès par défaut
9. **Quelle est la bonne façon d'accéder à un membre privé d'une classe en C++ ?**
a) Via des méthodes publiques de la classe
b) Directement depuis une autre classe
c) Via des méthodes protégées de la classe
d) Via des amis de la classe
10. **Quel mot-clé est utilisé pour permettre l'accès aux membres privés d'une classe
depuis une autre classe en C++ ?**
a) friend
b) public
c) protected
d) private
### Questions sur l'Héritage
11. **Quel mot-clé est utilisé pour hériter d'une classe en Java ?**
a) extends
b) inherits
c) implements
d) derives
12. **Quelle est la différence entre `extends` et `implements` en Java ?**
a) `extends` est utilisé pour hériter d'une classe, `implements` est utilisé pour
implémenter une interface
b) `extends` est utilisé pour implémenter une interface, `implements` est utilisé pour
hériter d'une classe
c) Les deux mots-clés sont interchangeables
d) `extends` est utilisé pour les méthodes, `implements` pour les variables
13. **Quelles sont les implications de l'utilisation du mot-clé `super` en Java ?**
a) Accède aux membres et méthodes de la classe parente
b) Crée une nouvelle instance de la classe parente
c) Accède uniquement aux méthodes de la classe parente
d) Déclare une nouvelle classe parente
14. **Comment Java gère-t-il l'héritage multiple ?**
a) Java ne supporte pas l'héritage multiple, mais il supporte l'héritage multiple
d'interfaces
b) Java supporte l'héritage multiple directement
c) Java utilise des classes internes pour gérer l'héritage multiple
d) Java utilise des interfaces multiples pour gérer l'héritage multiple
15. **Quel est le résultat si une sous-classe redéfinit une méthode de la classe parente
en Java ?**
a) La méthode de la sous-classe remplace celle de la classe parente
b) La méthode de la classe parente est toujours appelée
c) Les deux méthodes sont appelées successivement
d) Une erreur de compilation se produit
16. **Quel mot-clé est utilisé pour hériter d'une classe en C++ ?**
a) public
b) protected
c) private
d) class
17. **Quelle est la syntaxe correcte pour l'héritage privé en C++ ?**
a) class Derived : private Base {};
b) class Derived : Base {};
c) class Derived : protected Base {};
d) class Derived : public Base {};
18. **Quel est le mot-clé utilisé pour indiquer qu'une méthode est virtuelle en C++ ?**
a) virtual
b) abstract
c) override
d) public
19. **Quel est l'impact de déclarer une méthode comme `virtual` en C++ ?**
a) Permet la liaison dynamique (runtime) pour la méthode
b) Rend la méthode inaccessible
c) Rend la méthode statique
d) Permet la liaison statique (compile-time)
20. **Quelle est la différence entre `protected` et `private` en héritage C++ ?**
a) `protected` permet l'accès aux membres dans les classes dérivées, `private` non
b) `private` permet l'accès aux membres dans les classes dérivées, `protected` non
c) Ils sont identiques
d) `protected` est utilisé pour les variables, `private` pour les méthodes
21. **Quel est le résultat de l'héritage d'une méthode avec le mot-clé `override` en C++
?**
a) La méthode de la sous-classe remplace celle de la classe parente
b) La méthode de la classe parente est toujours appelée
c) Les deux méthodes sont appelées successivement
d) Une erreur de compilation se produit
22. **Comment créer une méthode abstraite en C++ ?**
a) En déclarant la méthode avec `virtual` et en lui assignant `= 0`
b) En utilisant le mot-clé `abstract`
c) En déclarant la méthode sans corps
d) En utilisant le mot-clé `pure`
23. **Quel est le rôle du mot-clé `this` en Java ?**
a) Référence l'instance actuelle de la classe
b) Référence la classe parente
c) Référence l'objet statique
d) Référence la méthode courante
24. **Quel est le résultat de l'héritage d'une classe en Java si la sous-classe ne redéfinit
pas les méthodes ?**
a) La sous-classe hérite des méthodes de la classe parente
b) La sous-classe ne peut pas utiliser les méthodes de la classe parente
c) Les méthodes de la classe parente sont remplacées par celles de la sous-classe
d) Une erreur de compilation se produit
25. **Quel est le niveau d'accès par défaut des membres d'une `struct` en C++ ?**
a) public
b) private
c) protected
d) aucun niveau d'accès par défaut
Ces questions couvrent les concepts clés d'encapsulation et d'héritage dans les deux
langages. Elles peuvent aider à approfondir la compréhension de ces concepts en Java
et C++.