QCM Csarp - Programmation Orientée Objet – Partie 3

Question 1 sur 20

1. Quelle est la sortie du code suivant ?
public class Shape { public virtual void Draw() { Console.WriteLine("Drawing a shape"); } } public class Circle : Shape { public override void Draw() { Console.WriteLine("Drawing a circle"); } } public class Rectangle : Shape { public override void Draw() { Console.WriteLine("Drawing a rectangle"); } } Shape shape = new Circle(); shape.Draw(); shape = new Rectangle(); shape.Draw();

  • A. Drawing a circle puis Drawing a rectangle
  • B. Drawing a shape puis Drawing a shape
  • C. Drawing a circle puis Drawing a shape
  • D. Une erreur de compilation
A

Les méthodes Draw() sont remplacées dans les classes dérivées, donc la sortie est Drawing a circle puis Drawing a rectangle.

Question 2 sur 20

2. Quelle est la sortie du code suivant ?
public class Person { public string Name { get; set; } } public class Employee : Person { public int Id { get; set; } public override string ToString() { return Name + ", Id: " + Id; } } Employee emp = new Employee { Name = "John", Id = 123 }; Console.WriteLine(emp);

  • A. John, Id: 123
  • B. John
  • C. Id: 123
  • D. Une erreur de compilation
A

La méthode ToString() est remplacée pour retourner les informations formatées.

Question 3 sur 20

3. Quelle est la sortie du code suivant ?
public class Base { public virtual void Display() { Console.WriteLine("Base"); } } public class Derived : Base { public override void Display() { base.Display(); Console.WriteLine("Derived"); } } Base obj = new Derived(); obj.Display();

  • A. Base puis Derived
  • B. Derived puis Base
  • C. Base
  • D. Une erreur de compilation
A

La méthode Display() dans Derived appelle d'abord la méthode de la classe de base, puis exécute son propre code.

Question 4 sur 20

4. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { int[] numbers = { 1, 2, 3, 4, 5 }; foreach (var number in numbers) { if (number % 2 == 0) Console.Write(number + " "); } }

  • A. 2 4
  • B. 1 3 5
  • C. 2 4 6
  • D. Aucun résultat
A

Le code affiche les nombres pairs dans le tableau.

Question 5 sur 20

5. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { List list = new List { 1, 2, 3 }; Console.WriteLine(list.Count); list.Add(4); Console.WriteLine(list.Count); }

  • A. 3 puis 4
  • B. 4 puis 3
  • C. 3 puis 3
  • D. Aucun résultat
A

La méthode Count retourne le nombre d'éléments dans la liste.

Question 6 sur 20

6. Quelle est la sortie du code suivant ?
public class Base { public virtual void Show() { Console.WriteLine("Base"); } } public class Derived : Base { public override void Show() { Console.WriteLine("Derived"); } } Base obj = new Derived(); obj.Show();

  • A. Derived
  • B. Base
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode Show() est remplacée dans la classe dérivée, donc la sortie est Derived.

Question 7 sur 20

7. Quelle est la sortie du code suivant ?
public class Person { public string Name { get; set; } } public class Employee : Person { public int Id { get; set; } } Employee emp = new Employee { Name = "Jane", Id = 456 }; Console.WriteLine(emp.Name + " " + emp.Id);

  • A. Jane 456
  • B. Jane
  • C. 456
  • D. Une erreur de compilation
A

Les propriétés Name et Id sont accessibles depuis Employee.

Question 8 sur 20

8. Quelle est la sortie du code suivant ?
public class Calculator { public static int Multiply(int x, int y) { return x * y; } } Console.WriteLine(Calculator.Multiply(3, 4));

  • A. 12
  • B. 7
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode Multiply() calcule le produit de deux entiers.

Question 9 sur 20

9. Quelle est la sortie du code suivant ?
public class Data { public static int Value = 10; } Console.WriteLine(Data.Value); Data.Value = 20; Console.WriteLine(Data.Value);

  • A. 10 puis 20
  • B. 20 puis 10
  • C. 10 puis 10
  • D. Une erreur de compilation
A

Les variables statiques sont partagées entre toutes les instances de la classe.

Question 10 sur 20

10. Quelle est la sortie du code suivant ?
public class Person { public string Name { get; set; } } public class Manager : Person { public string Department { get; set; } } Manager mgr = new Manager { Name = "Tom", Department = "HR" }; Console.WriteLine(mgr.Name + " - " + mgr.Department);

  • A. Tom - HR
  • B. Tom
  • C. HR
  • D. Une erreur de compilation
A

Les propriétés héritées de Person sont accessibles ainsi que celles spécifiques à Manager.

Question 11 sur 20

11. Quelle est la sortie du code suivant ?
public class Test { public static void Method(T item) { Console.WriteLine(item?.GetType().Name); } } Test.Method(123); Test.Method("Hello");

  • A. Int32 puis String
  • B. String puis Int32
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode affiche le nom du type de l'objet.

Question 12 sur 20

12. Quelle est la sortie du code suivant ?
public class Test { public static void Method(T item) where T : new() { Console.WriteLine(item.GetType().Name); } } Test.Method(new Test());

  • A. Test
  • B. Une erreur de compilation
  • C. Aucun résultat
  • D. Test puis Test
A

La contrainte new() permet de créer une nouvelle instance de T.

Question 13 sur 20

13. Quelle est la sortie du code suivant ?
public class Animal { public virtual void Speak() { Console.WriteLine("Animal speaks"); } } public class Cat : Animal { public override void Speak() { Console.WriteLine("Cat meows"); } } public class Dog : Animal { public override void Speak() { Console.WriteLine("Dog barks"); } } Animal myAnimal = new Cat(); myAnimal.Speak(); myAnimal = new Dog(); myAnimal.Speak();

  • A. Cat meows puis Dog barks
  • B. Animal speaks puis Dog barks
  • C. Cat meows puis Animal speaks
  • D. Une erreur de compilation
A

Les méthodes Speak() sont remplacées dans les classes dérivées.

Question 14 sur 20

14. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { List list = new List { "a", "b", "c" }; foreach (var item in list) { Console.Write(item + " "); } }

  • A. a b c
  • B. a b c a b c
  • C. a c
  • D. Aucun résultat
A

Les éléments de la liste sont affichés dans l'ordre.

Question 15 sur 20

15. Quelle est la sortie du code suivant ?
public class Base { public void Display() { Console.WriteLine("Base"); } } public class Derived : Base { public new void Display() { Console.WriteLine("Derived"); } } Base obj = new Derived(); obj.Display();

  • A. Base
  • B. Derived
  • C. Une erreur de compilation
  • D. Aucun résultat
A

Le mot-clé new cache la méthode dans la classe dérivée.

Question 16 sur 20

16. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { int x = 5; int y = 10; int z = x + y; Console.WriteLine(z); }

  • A. 15
  • B. 10
  • C. 5
  • D. Aucun résultat
A

Le code calcule la somme de deux entiers.

Question 17 sur 20

17. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { int[] array = { 1, 2, 3 }; Console.WriteLine(array.Length); }

  • A. 3
  • B. 2
  • C. 4
  • D. Aucun résultat
A

La propriété Length retourne le nombre d'éléments dans le tableau.

Question 18 sur 20

18. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { List list = new List { 1, 2, 3 }; list.RemoveAt(1); Console.WriteLine(list[1]); }

  • A. 3
  • B. 2
  • C. 1
  • D. Une erreur de compilation
A

Le code supprime l'élément à l'index 1 de la liste.

Question 19 sur 20

19. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { string s = "Hello"; Console.WriteLine(s.Substring(1, 3)); }

  • A. ell
  • B. Hel
  • C. lo
  • D. Une erreur de compilation
A

La méthode Substring() extrait une sous-chaîne à partir de l'index spécifié.

Question 20 sur 20

20. Quelle est la sortie du code suivant ?
public class Test { public static void Main() { var s = "CSharp"; Console.WriteLine(s[2]); }

  • A. a
  • B. S
  • C. C
  • D. Une erreur de compilation
A

Les index de chaîne commencent à 0, donc l'index 2 correspond à la lettre a.

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.

OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET