Sortida de programes C++ | Set 22

Prediu la sortida dels següents programes C++. Pregunta 1 CPP
   #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!3  
Explicació: 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     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Explicació: 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:
50  
Explicació: 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:
120  
Explicació: 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:
4321  
Explicació: 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 loop  
Explicació: 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