Output di programmi C++ | Serie 22

Prevedere l'output dei seguenti programmi C++. Domanda 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Spiegazione: 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;  

Domanda 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Spiegazione: Poiché la condizione del test di inizializzazione e la condizione di incremento/decremento mancano all'interno del ciclo for, l'esecuzione verrà catturata in un ciclo infinito.
Domanda 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Spiegazione: Hello!3 è il risultato perché quando viene eseguito il ciclo for non ha alcuna attività da svolgere a causa del punto e virgola(;) presente nella riga in cui è stato definito il ciclo for. Il ciclo verrà eseguito tre volte e il valore di i diventerà 3, quindi verrà eseguito il resto delle istruzioni.
Domanda 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Spiegazione: L'operatore virgola () è un operatore binario che valuta il primo operando e scarta il risultato, quindi valuta il secondo e restituisce il valore di second. Qui l'associatività dell'operatore virgola () va da sinistra a destra ed è facile capire che l'espressione(14563) restituisce 3 e quindi il risultato 1 + 3 viene assegnato a i.
Domanda 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Spiegazione: L'affermazione b = (a = 50) + 10; utilizza il concetto di assegnazione incorporata. Qui il valore 50 è assegnato alla variabile a e il risultato 50+10 è assegnato a b. Domanda 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  
Spiegazione: Il C++ può anche eseguire calcoli aritmetici considerando i valori ASCII dei caratteri se le operazioni aritmetiche vengono eseguite su variabili di tipo dati char. In questo caso la risposta è 120 che è il valore ASCII per x.
Domanda 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Spiegazione: Qualsiasi numero diverso da zero in C++ viene considerato come valore vero. Qui in questo codice l'istruzione if tende a diminuire il valore di i ma all'interno del blocco di if la funzione main() viene chiamata ancora e ancora. Qui il programma sembra essere in un ciclo infinito ma la variabile i è di natura statica e ha la sua durata fino all'esecuzione, quindi il programma si fermerà se i diventa 0.
Domanda 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Spiegazione: Qualsiasi numero diverso da zero in C++ viene considerato come valore vero. Qui in questo codice l'istruzione if tende a diminuire il valore di i ma all'interno del blocco if la funzione main() viene chiamata ancora e ancora (tutte le istruzioni ora verranno eseguite come se fosse un nuovo programma) quindi l'esecuzione del programma verrà catturata in un ciclo infinito poiché non esiste alcuna condizione di terminazione. Crea quiz