QCM Langage C++

QCM sur la programmation orientée objet en C++ – Partie 3

QCM sur C++ avec des réponses pour la préparation des concours, des tests en ligne, examens et aux certifications. Ces questions et réponses sur C++ comprennent divers sujets. Et sont tirés d’un vrai concours écrit. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur C++.
 
[wx_adsense]  

1. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
	static int val;
 
   public:
	void write(int i){
		val = i;
	}
	void read(){
		cout << val;
	}
};
 
int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 10

B Segmentation fault

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

C
Chaque membre statique d’une classe est initialisé avant son utilisation. Comme ‘val’ est un membre statique de la classe A et n’est pas initialisé, le programme affichera une erreur.
 

 

2. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
	static int val;
 
   public:
	void write(int i){
		val = i;
	}
	void read(){
		cout << val;
	}
};

int A::val = 55;

int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 55

B 10

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

B
Comme ‘val’ est un membre statique de la classe A, il s’agit donc d’un type de variable globale de la classe A, c’est-à-dire que toute modification apportée par un objet est répercutée sur tous les autres objets.
 

 

3. Quelle est la sortie du code C++ suivant?
#include <iostream>
using namespace std;
 
class A
{
   int val = 55;
 
   public:
	void write(int i){
		val = i;
	}
	static void read(){
		cout << val;
	}
};

int main(int argc, char const *argv[])
{
	A a = A();
	a.write(10);
	a.read();
	return 0;
}

A 55

B 10

C Erreur de compilation

D Aucune de ces réponses n’est vraie.

C
Comme la fonction read() est une fonction statique et que les membres statiques ne peuvent accéder qu’aux membres statiques, le programme affichera une erreur.
 

 

 
[wx_adsense]  

4. Lors de l’allocation mémoire dynamique en C++, l’opérateur new renvoie la valeur _________ si l’allocation de mémoire échoue.

A False

B NULL

C Zéro

D Aucune de ces réponses n’est vraie.

B
Si l’allocation de mémoire échoue, l’opérateur « new » renvoie la valeur NULL

MaClasse* obj = new MaClasse();
if (obj == NULL) {   //nécessaire uniquement si votre compilateur est ancien
  std::cerr << "Impossible d'allouer de la mémoire" << std::endl;
  abort();
}

 

5. Nous pouvons créer des objets du type de la classe abstraite?

A Vrai

B Faux

B
Vous ne pouvez pas créer une instance d’une classe abstraite car son implémentation n’est pas complète.

 

6. La valeur par défaut d’une variable statique est_____.

A 1

B 0

C Dépend du compilateur

D Aucune de ces réponses n’est vraie.

B
En programmation C++, les variables statiques ont toujours la valeur par défaut Zéro.

 

7. Quelle est la sortie du code C++ suivant?
#include<iostream> 
using namespace std; 
  
int a = 55; 
void fun() 
{ 
    int a = 20; 
    { 
        int a = 10; 
        cout << ::a << endl;  
    } 
} 
  
int main() 
{ 
    fun(); 
    return 0; 
}

A 10

B 20

C 55

D Aucune de ces réponses n’est vraie.

C

 
Si l’opérateur de résolution de portée :: est placé avant un nom de variable, la variable globale est référencée. Donc, si nous supprimons int a = 55;, la compilation du programme échouera.
 
[wx_adsense]  

8. Quelles fonctions de classe s’appellent des fonctions inline?

A Toutes les fonctions déclarées à l’intérieur d’une classe

B Toutes les fonctions définies en dehors de la classe

C Toutes les fonctions définies à l’intérieur ou avec le mot clé inline

D Toutes les fonctions accédant aux membres statiques de la classe

C
Toutes les fonctions définies dans la classe ou les fonctions ayant le mot-clé inline devant elles sont des fonctions inline d’une classe, à condition qu’elles soient simples, sinon le compilateur ignore le mot-clé inline.

 

9. L’objet est créé dans _________

A Une classe

B Constructeur

C Destructeur

D Attributs

A
Lorsque vous créez un objet, vous créez une « instance » d’une classe.

 

10. Quelle est la sortie du code C++ suivant?
#include<iostream>

using namespace std;

class Point {
private:
    int x;
    int y;
public:
    Point(int a, int b);
};

Point::Point(int a = 0, int b = 0)  {
    x = a;
    y = b;
    cout << "Constructeur appelé";
}
  
int main()
{
   Point p1, *p2;
   return 0;
}

A Affiche « Constructeur appelé » une seule fois.

B Affiche « Constructeur appelé » deux fois.

C N’affiche rien.

D Erreur de compilation.

A
Si nous examinons la déclaration Point p1, *p2;, nous pouvons voir que seul un objet est construit ici. p2 est juste une variable de pointeur, pas un objet.
 

 

 
 
[wx_amazon]

Laisser un commentaire

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