QCM C# – Framework .NET – Partie 14

QCM sur C# avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sur C# comprennent divers sujets(.NET, les structures, les tableaux, les interfaces, etc …). Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur C#.
 
 

1. Quel sera le résultat du programme suivant ?
public static void Main() {
	var x; 
	x=100; 
	Console.WriteLine(x);
} 

A 100

B 1

C Erreur de compilation

D Erreur d’exécution

C
Vous ne pouvez pas utiliser de variables implicitement typées sans initialisation. Vous devez initialiser la variable x pour permettre au compilateur de déduire le type de la variable. La variable x doit être déclarer et initialiser en même temps, comme cela: var x = 100;

 

2. Parmi les types de données suivants, lequel doit être utilisé pour une valeur monétaire ?

A Float

B Long

C Double

D Decimal

D
Le type decimal est un type de données de 128 bits qui convient aux calculs financiers et monétaires. Le type décimal peut représenter des valeurs allant de 1,0 * 10^-28 à environ 7,9 * 10^28 avec 28-29 chiffres significatifs. Pour initialiser une variable décimale, utilisez le suffixe m ou M.

 

3. Quel sera le résultat du programme suivant ?
public static void Main() {
	float f = 5.5f; 
	long l = 100L; 
	Console.WriteLine(f+l);
}

A 105.5

B 105

C Erreur de compilation

D Erreur d’exécution

A
Le code ci-dessus affichera la valeur 105.5.

 

 
 

4. Quel sera le résultat du programme suivant ?
public static void Main() {
	int i = 2; 
	Console.WriteLine(++i);
	Console.WriteLine(i++);
	Console.WriteLine(i);
}

A 334

B 244

C 433

D 343

A
L’opérateur de pré-incrémentation (++i) est utilisé pour incrémenter la valeur d’une variable avant de l’utiliser dans une expression. Dans le cas du pré-incrémentation, la valeur est d’abord incrémentée avant d’être utilisée dans l’expression.

L’opérateur de post-incrémentation (i++) est utilisé pour incrémenter la valeur de la variable après l’exécution complète de l’expression dans laquelle la post-incrémentation est utilisée. Dans le post-incrémentation, la valeur est d’abord utilisée dans une expression, puis incrémentée.

 

5. Un constructeur peut être ____________.

A public

B private

C protected

D Tous les réponses sont correctes

D
Les constructeurs peuvent être marqués comme public, private, protected, internal, protected internal ou private protected. Ces modificateurs d’accès définissent comment les utilisateurs de la classe peuvent construire la classe. Exemple:

public class Employee
{
    public int Salary;
    //constructeur marqué comme public
    public Employee() {}
}

 

6. Lequel des éléments suivants est le modificateur d’accès par défaut des membres de la classe ?

A public

B private

C protected

D Tous les réponses sont correctes

B
La spécification d’accès par défaut des membres d’une classe est « private ». Cela signifie que, par défaut, les variables et fonctions membres ne sont accessibles qu’à l’intérieur de la classe elle-même.

 

 
 

7. Laquelle des affirmations suivantes est VRAIE ?

A Un champ en lecture seule (readonly) peut être initialisé soit lors de la déclaration, soit dans un constructeur.

B Un champ en lecture seule peut être initialisé soit lors de la déclaration, soit dans un constructeur ou des méthodes statiques.

C Un champ en lecture seule ne peut être initialisé que dans un constructeur.

D Un champ en lecture seule ne peut être initialisé qu’au moment de la déclaration.

A
Un champ en lecture seule (readonly) peut être initialisé soit lors de la déclaration, soit dans un constructeur. Exemple:

public class MyClass
{
    readonly int field1;
    readonly double field2;
	
    public MyClass(int field1, double field2)
    {
        /* Mettez la logique d'initialisation 
        dont vous avez besoin ici... */
        field1 = 10;
        field2 = 30.2;
    }
}

 

8. Quel sera le résultat du programme suivant ?
public static void Main() {
	string str1 = "Hi"; 
	string str2 = String.Copy(str1);

	Console.WriteLine(Object.ReferenceEquals(str1, str2));
}

A True

B False

C Exception

D null

B
Lorsqu’il appelle la méthode Copy pour affecter la première valeur à la deuxième chaîne, la sortie indique que les chaînes représentent des références d’objets différentes. C’est pour cela que la méthode Object.ReferenceEquals() retourne False.

 

9. Quel sera le résultat du programme suivant ?
for (double d = 1.01D; d < 1.05; d+= 0.01D) {
	Console.Write("{0}, ", d); 
}

A Erreur de compilation

B Erreur d'exécution

C 1.01, 1.02, 1.03, 1.04,

D 1, 1, 1, 1,

C
Le code ci-dessus affichera la séquence: 1.01, 1.02, 1.03, 1.04,.

 

 
 

10. Quel sera le résultat du programme suivant ?
public class Program { 
	public static void Main() {
		JoursTravail.Mercredi = 3; 
		Console.Write(JoursTravail.Mercredi);
	} 
} 

enum JoursTravail {
	Lundi, 
	Mardi, 
	Mercredi, 
	Jeudi, 
	Vendredi 
}

A 3

B Mercredi

C Erreur de compilation

D Erreur d'exécution

C
Erreur de compilation: Ligne 3: Le côté gauche d'une affectation doit être une variable, une propriété ou un indexeur.

JoursTravail.Mercredi est une valeur d'énumération (constante), qui ne peut apparaître que du côté DROIT. L'instruction correcte est:

int jour = (int)JoursTravail.Mercredi;

 

Exercice C# Corrigé - Partie 1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *