#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!Explicació: 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;
Pregunta 2 CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!Explicació: Com que la condició de prova d'inicialització i la condició d'increment/disminució no es troben dins del bucle for, l'execució quedarà atrapada en un bucle infinit.
Pregunta 3 CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3Explicació: Hola!3 és el resultat perquè quan s'executa el bucle for no té cap tasca a fer a causa del punt i coma (;) present a la línia on s'ha definit el bucle for. El bucle s'executarà tres vegades i el valor de i es convertirà en 3 i després s'executarà la resta de les declaracions.
Pregunta 4 CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4Explicació: L'operador coma () és un operador binari que avalua el primer operand i descarta el resultat i després avalua el segon i després retorna el valor de segon. Aquí l'associativitat de l'operador coma () és d'esquerra a dreta i és fàcil d'entendre que l'expressió (14563) s'avalua com a 3 i després el resultat 1 + 3 s'assigna a i.
Pregunta 5 CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50Explicació: L'enunciat b = (a = 50) + 10; utilitza el concepte d'assignació incrustada. Aquí el valor de 50 s'assigna a la variable a i el resultat 50+10 s'assigna a b. Pregunta 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: 120Explicació: El C++ també pot realitzar càlculs aritmètics tenint en compte els valors ASCII dels caràcters si l'operació aritmètica es realitza sobre variables del tipus de dades char. Aquí, en aquest cas, la resposta és 120, que és el valor ASCII de x.
Pregunta 7 CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321Explicació: Qualsevol nombre diferent de zero en C++ es tracta com a valor real. Aquí, en aquest codi, la instrucció if tendeix a disminuir el valor de i, però dins del bloc de if la funció main() es crida una i altra vegada. Aquí el programa sembla estar en bucle infinit, però la variable i és de naturalesa estàtica, té la seva vida útil fins a l'execució, per tant, el programa s'aturarà si i passa a 0.
Pregunta 8 CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loopExplicació: Qualsevol nombre diferent de zero en C++ es tracta com a valor real. Aquí, en aquest codi, la instrucció if tendeix a disminuir el valor de i, però dins del bloc de if la funció main() es crida una i altra vegada (totes les sentències ara s'executaran com si fos un programa nou), per tant, l'execució del programa quedarà atrapada en un bucle infinit ja que no hi ha cap condició de terminació. Crea un qüestionari