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

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

int main() 
{ 
   afficher();
}  
int afficher() 
{ 
   printf("Hello World!"); 
   return 0;  
}

A Erreur en C et C++

B Avertissement en C et C++

C Erreur en C++ mais avertissement en C

D Erreur en C mais avertissement en C++

C
En C++, toutes les fonctions doivent être déclarées avant d’être appelées, sinon le compilateur C++ générera une erreur, mais dans le cas de C, le compilateur donnera simplement un avertissement et le programme pourra être exécuté.
 

 

2. Lequel des types suivants n’est pas présent en C mais présent en C++?

A void

B bool

C float

D int

B
Le type « bool » n’est pas présent en tant que type dans C.

 

3. Quelle est la taille d’une variable booléenne en C++?

A 1 bit

B 1 octet

C 4 octets

D 2 octets

B
La taille d’une variable booléenne en C++ est 1 octet. sizeof(bool) = 1 (pour 1 octet).

 

 
 

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

using namespace std;

int main()
{
  int a = 4;
  float b;
  cout << sizeof(++a + b) << endl;
 cout << a;
 return 0;
}

A 5 4

B 4 5

C 4 4

D 2 4

C
La variable « a » est de type « int », elle sera converti en « float » lors du calcul de la taille. La valeur d’une variable n’est pas modifiée dans l’opérateur sizeof. La valeur de la variable « a » restera donc 4, et la taille du type « float » est 4 octets. Donc la sortie sera comme suite :
 

 

5. Lequel des instructions suivants est équivalent à scanf() en C++?

A cin

B cout

C printf

D read

A
C++ utilise « cin » pour lire les entrées de l’utilisateur. Pourtant, C++ utilise également « scanf() ».

 

6. Lequel des instructions suivants est équivalent à printf() en C++?

A cin

B cout

C scanf

D write

B
C++ utilise « cout » pour afficher le résultat sur la console. Pourtant, C++ utilise également « printf() ».

 

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

int main(void) 
{ 
	const int a = 10; 
	int *ptr = &a;
	printf("*ptr = %d", *ptr); 
	return 0; 
}

A Erreur en C et C++

B Avertissement en C et C++

C Erreur en C++ mais avertissement en C

D Erreur en C mais avertissement en C++

C
C++ est strict sur l’utilisation des types de variables. Par conséquent, lorsque le programmeur tente d’affecter « const int » à un pointeur normal, le programme donne une erreur alors que C n’est pas strict sur les types, il ne donne donc qu’un avertissement.
 

 

 
 

8. Quelle est la différence entre cin et scanf()?

A Les deux sont identiques.

B cin est un objet de flux alors que scanf() est une fonction.

C scanf() est un objet de flux alors que cin est une fonction.

D cin est utilisé pour afficher alors que scanf() est utilisé pour lire les entrées.

B
« cin » est un objet de flux disponible en C++ alors que « scanf() » est une fonction disponible à la fois en C et en C++. les deux sont utilisés pour lire les entrées des utilisateurs.

 

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

int main()
{
	char x = 'x';
	printf("%d\n", (int)sizeof(x));
	return 0;
}

A La sortie en C est 4 et en C++ est 4

B La sortie en C est 1 et en C++ est 1

C La sortie en C est 4 et en C++ est 1

D La sortie en C est 1 et en C++ est 4

B
C et C++ ont tous les deux la même taille du type « char » qui égale à 1.

 

10. Quel est la sortie du code suivant en C++?
#include <iostream< 

using namespace std; 

int main() 
{ 
    char tab[4] = "abcd"; 
    cout << tab;     
    return 0; 
}

A abcd

B Avertissement

C Erreur : la chaîne de caractères dans le tableau est trop longue.

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

C

 
Le code en C++ est similaire à celle de C. La seule exception concerne la manière dont les tableaux de caractères sont initialisés. Lors de l’initialisation du tableau de caractères en ANSI C, le compilateur autorisera la déclaration suivante :

char tab[4] = "abcd";  // autorisé en ANSI C

 
Cela est dû au fait que C suppose que le programmeur a l’intention de négliger le caractère NULL (‘\ 0’) dans la définition. Mais en C++, la taille devrait être plus grande que le nombre de caractères. Par conséquent, l’instruction suivante est correcte en C++.

char tab[5] = "abcd";

 

 
 

2 réflexions sur “QCM sur C++ – Partie 3

  • juin 18, 2022 à 10:02 am
    Permalien

    Pour la question 3, la taille minimal que le processeur est capable de gérer est l’octet. Il ne peut gérer la mémoire bit à bit. Par conséquent, une variable ne peut pas avoir une taille inférieur à l’octet. La réponse à la question 3 est B et non pas A. De plus, sur certains systèmes, les booléens sont gérés avec des int et, même si c’est de moins en moins vrai de nos jours, on peut avoir une variable bool de la taille d’un int, donc 4 octets.

    Répondre
    • juin 18, 2022 à 9:17 pm
      Permalien

      Merci pour cette remarque 🙂

      Répondre

Laisser un commentaire

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