#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!Explication: A chained statement cannot be used to initialize variables at the time of declaration. Hence the statement a = b = c = 0; is an illegal statement. However following way a legal syntax and can be used in C++ or C.
int abc; a = b = c = 0;
Question 2 CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!Explication: Étant donné que la condition de test d'initialisation et la condition d'incrémentation/décrémentation sont manquantes dans la boucle for, l'exécution sera interceptée dans une boucle infinie.
Question 3 CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3Explication: Hello!3 est le résultat car lorsque la boucle for s'exécute, elle n'a aucune tâche à faire en raison du point-virgule (;) présent dans la ligne où la boucle for a été définie. La boucle s'exécutera trois fois et la valeur de i deviendra 3, puis le reste de la ou des instructions s'exécutera.
Question 4 CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4Explication: L'opérateur virgule () est un opérateur binaire qui évalue le premier opérande et ignore le résultat, puis évalue le second et renvoie ensuite la valeur du second. Ici, l'associativité de l'opérateur virgule () s'effectue de gauche à droite et il est facile de comprendre que l'expression (14563) est évaluée à 3 et que le résultat 1 + 3 est ensuite attribué à i.
Question 5 CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50Explication: L'énoncé b = (a = 50) + 10 ; utilise le concept d’affectation intégrée. Ici, la valeur 50 est affectée à la variable a et le résultat 50+10 est affecté à b. Question 6 CPP
#include using namespace std; int main() { char a = 30 b = 40 c = 10; char d = (a*b)/c; cout << int(d); return 0; }
Output: 120Explication: Le C++ peut également effectuer des calculs arithmétiques en prenant en compte les valeurs ASCII des caractères si l'opération arithmétique est effectuée sur des variables de type de données char. Ici, dans ce cas, la réponse est 120, qui est la valeur ASCII de x.
Question 7 CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321Explication: Tout nombre non nul en C++ est traité comme une valeur vraie. Ici, dans ce code, l'instruction if a tendance à diminuer la valeur de i mais à l'intérieur du bloc if, la fonction main() est appelée encore et encore. Ici, le programme semble être en boucle infinie mais la variable i est de nature statique, elle a sa durée de vie jusqu'à son exécution, donc le programme s'arrêtera si i devient 0.
Question 8 CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loopExplication: Tout nombre non nul en C++ est traité comme une valeur vraie. Ici, dans ce code, l'instruction if a tendance à diminuer la valeur de i mais à l'intérieur du bloc if, la fonction main() est appelée encore et encore (toutes les instructions s'exécuteront désormais comme s'il s'agissait d'un nouveau programme), donc l'exécution du programme sera prise dans une boucle infinie car il n'y a pas de condition de fin. Créer un quiz