QCM sur C++ – Partie 5

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++.
 
 

1. Lequel des énoncés suivants est correct?

A Le mot clé « struct » est requise en C et C++ tout en déclarant un objet de structure.

B Le mot clé « struct » n’est pas requis en C mais requis en C++ lors de la déclaration d’un objet de structure.

C Le mot clé « struct » n’est pas requis en C++ mais requis en C lors de la déclaration d’un objet de structure.

D Le mot clé « struct » n’est pas requise en C et C++ lors de la déclaration d’un objet de structure.

C
En C, nous devons utiliser « struct » pour déclarer une variable de structure. En C++, le mot clé « struct » n’est pas nécessaire. Par exemple, la structure Node. En C, nous devons utiliser « struct Node » pour les variables Node. En C++, nous n’avons pas besoin d’utiliser le mot clé « struct » devant la variable de structure.

Structure en C

#include <stdio.h>
  
struct Node { 
    int x = 5; 
}; 
  
int main() 
{ 
    struct Node n;    // Le mot clé « struct » est requise
    printf("%d", n.x);   // 5
    return 0; 
}

 
Structure en C++

#include <iostream> 
using namespace std; 
  
struct Node { 
    int x = 5; 
}; 
  
int main() 
{ 
    Node n;     // Le mot clé « struct » n'est pas requise
    cout << n.x << endl;    // 5
    return 0; 
}

 

2. Lequel des énoncés suivants est correct?

A Une structure ne peut pas avoir de fonction membre en C, mais il est possible en C++.

B Une structure ne peut pas avoir de fonction membre en C++ mais il est possible en C.

C Une structure ne peut pas avoir de fonction membre en C et en C++.

D Une structure peut avoir une fonction membre en C et en C++.

A
Une structure peut avoir une fonction membre en C++ alors que les fonctions membres ne sont pas autorisées en C.

Fonctions membres d’une structure en C++

// Dans le fichier d'en-tête
struct MyStruct {
  int x, y, z;

  void myFunction();
};

// Dans le fichier source
void MyStruct::myFunction() {
  // Code pour la fonction ...
}

 

3. Que se passe-t-il si le programme suivant est exécuté en C et C ++?
#include <stdio.h> 
void main() 
{ 
	printf("Hello World"); 
}

A Erreur en C et C++

B Exécution réussie en C et en C++

C Erreur en C et l’exécution réussie en C++

D Erreur en C++ et l’exécution réussie en C

D
La fonction main() en C++ doit renvoyer un entier sinon le compilateur C++ renvoie une erreur.
 

 
Alors que C n’impose pas de telles choses à la fonction main().

 

 
 

4. Lequel des énoncés suivants déclare correctement un tableau?

A int tab[10];

B int tab;

C tab{10};

D int [10]tab;

A
Les variables de tableau doivent être déclarées après le type.

 

5. Quel est l’index du dernier élément d’un tableau avec 5 éléments?

A 5

B 4

C 0

D Défini par le programmeur

B
Parce que le premier élément commence toujours à 0. Il se trouve donc à la position 4.

 

6. Quelle est la définition correcte d’un tableau?

A Un tableau est une série d’éléments du même type dans des emplacements de mémoire contigus

B Un tableau est une série d’éléments

C Un tableau est une série d’éléments du même type placés dans des emplacements de mémoire non contigus

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

A
La définition correcte d’un tableau est : Un tableau est une série d’éléments du même type situés dans des emplacements de mémoire contigus.

 

7. Lequel des énoncés suivants est correct à propos du pointeur this en C++?

A Le pointeur this est passé comme argument caché dans toutes les fonctions d’une classe.

B Le pointeur this est passé en tant qu’argument caché dans toutes les fonctions non statiques d’une classe.

C Le pointeur this est passé en tant qu’argument caché dans toutes les fonctions statiques d’une classe.

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

B
Les fonctions statiques étant un type de fonction globale pour une classe, tous les objets partagent l’instance commune de cette fonction statique, alors que tous les objets ont leur propre instance pour les fonctions non statiques et qu’ils sont donc passés en tant qu’arguments cachés. les membres non statiques mais pas dans les membres statiques.

 

 
 

8. Que se passe-t-il si le programme suivant est exécuté en C et C++?
#include <stdio.h> 

void f(void)
{
	printf("Hello World!");
}
void main() 
{ 
  f();
 f(5);
}

A Erreur en C et l’exécution réussie en C++

B Erreur en C++ et l’exécution réussie en C

C Erreur en C et C++

D Affiche deux fois « Hello World! » en C et en C++

C

 
La fonction f(void) n’a pas besoin d’argument pendant son appel, par conséquent, lorsque nous appelons f(5) avec 5 comme paramètre passé, cette instruction renvoie une erreur dans les compilateurs C++ et C.

 

8. Que se passe-t-il si le programme suivant est exécuté en C et C++?
#include <stdio.h>

void func()
{
	printf("Hello World!");
}
void main() 
{ 
  func();
 func(5);
}

A Erreur en C++ et affiche Hello World! deux fois en C

B Erreur en C et affiche Hello World! deux fois en C++

C Affiche deux fois Hello World! en C et en C++

D Erreur en C et C++

A

 
En C++, chaque fois qu’une fonction sans argument est déclarée, cela équivaut à une fonction avec l’argument void, c’est-à-dire f() == f(void), tandis qu’en C une fonction sans argument équivaut à f(…) cela peut prendre n’importe quel nombre d’arguments, donc l’appel de f(5) est également valide en C mais pas en C++. Par conséquent, il donne une erreur en C++ alors qu’aucune erreur en C.

 

9. Laquelle des fonctionnalités suivantes n’est pas fournie par C?

A Pointeurs

B Structures

C Références

D Fonctions

C
Les références sont introduites en C++. Ils ne sont pas présents dans C.

 

10. Lequel des opérateurs suivants est utilisé avec un pointeur pour accéder aux membres d’une classe?

A ~

B .

C ->

D !

C
L’objet pointeur utilise l’opérateur flèche (->) pour accéder aux membres d’une classe.

 

 
 
Partagez cet article

Laisser un commentaire

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