QCM Csarp - Programmation Orientée Objet – Partie 2

Question 1 sur 20

1. Quelle est la sortie du code suivant ?
public interface IShape { double GetArea(); } public class Rectangle : IShape { public double Width { get; set; } public double Height { get; set; } public double GetArea() { return Width * Height; } } IShape shape = new Rectangle { Width = 5, Height = 10 }; Console.WriteLine(shape.GetArea());

  • A. 50
  • B. 15
  • C. 10
  • D. Une erreur de compilation
A

La méthode GetArea() calcule l'aire du rectangle, donc avec une largeur de 5 et une hauteur de 10, l'aire est 50.

Question 2 sur 20

2. Quelle est la sortie du code suivant ?
public class Car { public string Model { get; set; } public void DisplayInfo() { Console.WriteLine("Model: " + Model); } } Car car = new Car { Model = "Tesla" }; car.DisplayInfo();

  • A. Model: Tesla
  • B. Tesla
  • C. Model
  • D. Aucun résultat
A

La méthode DisplayInfo() affiche la chaîne formatée avec le modèle de la voiture.

Question 3 sur 20

3. Quelle est la sortie du code suivant ?
public class Test { public static void Swap(ref T x, ref T y) { T temp = x; x = y; y = temp; } } int a = 1; int b = 2; Test.Swap(ref a, ref b); Console.WriteLine(a + " " + b);

  • A. 2 1
  • B. 1 2
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode générique Swap() échange les valeurs de a et b.

Question 4 sur 20

4. Quelle est la sortie du code suivant ?
public class Box { public int Length { get; set; } public int Width { get; set; } public int Height { get; set; } public int Volume { get { return Length * Width * Height; } } } Box box = new Box { Length = 2, Width = 3, Height = 4 }; Console.WriteLine(box.Volume);

  • A. 24
  • B. 12
  • C. 7
  • D. Une erreur de compilation
A

La propriété Volume calcule le volume de la boîte en multipliant ses dimensions.

Question 5 sur 20

5. Quelle est la sortie du code suivant ?
public class Test { public void Print(T item) { Console.WriteLine(item.ToString()); } } Test test = new Test(); test.Print(5); test.Print("Hello");

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

La méthode Print() utilise ToString() pour afficher les valeurs.

Question 6 sur 20

6. Quelle est la sortie du code suivant ?
public class Person { public string Name { get; set; } } public class Student : Person { public int Grade { get; set; } } Student student = new Student { Name = "Alice", Grade = 90 }; Console.WriteLine(student.Name); Console.WriteLine(student.Grade);

  • A. Alice puis 90
  • B. 90 puis Alice
  • C. Alice
  • D. Une erreur de compilation
A

Les propriétés héritées de Person sont accessibles depuis Student, ainsi que les propriétés propres de Student.

Question 7 sur 20

7. Quelle est la sortie du code suivant ?
public class Calculator { public static int Add(int x, int y) { return x + y; } } Console.WriteLine(Calculator.Add(2, 3));

  • A. 5
  • B. 23
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode Add() calcule la somme de deux entiers.

Question 8 sur 20

8. Quelle est la sortie du code suivant ?
public class Animal { public string Name { get; set; } } public class Dog : Animal { public string Breed { get; set; } } Dog dog = new Dog { Name = "Buddy", Breed = "Golden Retriever" }; Console.WriteLine(dog.Name); Console.WriteLine(dog.Breed);

  • A. Buddy puis Golden Retriever
  • B. Golden Retriever puis Buddy
  • C. Buddy
  • D. Une erreur de compilation
A

Les propriétés de Dog incluent celles héritées de Animal ainsi que celles définies dans Dog.

Question 9 sur 20

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

  • A. System.Int32 puis System.String
  • B. Int32 puis String
  • C. System.Int32 puis String
  • D. Une erreur de compilation
A

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

Question 10 sur 20

10. Quelle est la sortie du code suivant ?
public class Test { public static void Method(T[] array) { foreach (var item in array) Console.Write(item + " "); } } Test.Method(new[] { 1, 2, 3 }); Test.Method(new[] { "A", "B" });

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

Les éléments des tableaux sont affichés dans l'ordre.

Question 11 sur 20

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

  • A. Int32 puis String
  • B. Int32
  • C. String
  • D. Une erreur de compilation
D

Les types int et string ne peuvent pas être instanciés directement avec new() car ils ne possèdent pas de constructeur sans paramètre.

Question 12 sur 20

12. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T[] array) { Console.WriteLine(array.Length); } } Test.Print(new int[] { 1, 2, 3 }); Test.Print(new string[] { "A", "B" });

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

La méthode Print() affiche la longueur des tableaux.

Question 13 sur 20

13. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T item) { Console.WriteLine(item.GetHashCode()); } } Test.Print(5); Test.Print("Hello");

  • A. Valeur de hashcode de 5 puis de Hello
  • B. Valeur de hashcode de Hello puis de 5
  • C. Une erreur de compilation
  • D. Aucun résultat
A

La méthode affiche le code de hachage de l'objet.

Question 14 sur 20

14. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T item) { Console.WriteLine(item?.ToString()); } } Test.Print(null); Test.Print(10);

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

Le ?. opérateur vérifie si l'objet est nul avant d'appeler ToString().

Question 15 sur 20

15. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T[] array) { foreach (var item in array) Console.Write(item + " "); } } Test.Print(new List { 1, 2, 3 }.ToArray());

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

Les listes peuvent être converties en tableaux pour être traitées par les méthodes génériques.

Question 16 sur 20

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

  • A. Test puis null
  • B. Test puis Test
  • C. null puis Test
  • D. Aucun résultat
A

Lorsque item est nul, ?.GetType().Name renvoie null.

Question 17 sur 20

17. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T[] array) { foreach (var item in array) Console.Write(item + " "); } } Test.Print(new int[] { 1, 2, 3 }); Test.Print(new string[] { "A", "B" });

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

Les éléments des tableaux sont affichés dans l'ordre.

Question 18 sur 20

18. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T item) where T : struct { Console.WriteLine(item); } } Test.Print(10); Test.Print(3.14);

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

Les types de valeur (struct) peuvent être utilisés avec des contraintes génériques.

Question 19 sur 20

19. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T item) { Console.WriteLine(item?.ToString()); } } Test.Print(null); Test.Print("Hello");

  • A. null puis Hello
  • B. null puis une erreur
  • C. Hello puis null
  • D. Aucun résultat
A

Le ?. opérateur vérifie si l'objet est nul avant d'appeler ToString().

Question 20 sur 20

20. Quelle est la sortie du code suivant ?
public class Test { public static void Print(T[] array) { foreach (var item in array) Console.Write(item + " "); } } Test.Print(new List { 1, 2, 3 }.ToArray());

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

Les listes peuvent être converties en tableaux pour être traitées par les méthodes génériques.

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.