Izlaz C++ programa | Set 22

Predvidite izlaz sljedećih C++ programa. pitanje 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Obrazloženje: 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;  

pitanje 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Obrazloženje: Budući da unutar petlje for nedostaje uvjet testa inicijalizacije i uvjet inkrementa/dekrementa, izvođenje će biti uhvaćeno u beskonačnoj petlji.
pitanje 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Obrazloženje: Hello!3 je rezultat jer kada se petlja for izvrši, nema zadatak za obaviti zbog točke-zareza(;) prisutnog u retku gdje je petlja for definirana. Petlja će se izvršiti tri puta i vrijednost i postat će 3, a zatim će se izvršiti ostatak naredbi.
pitanje 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Obrazloženje: Operator zarez () je binarni operator koji procjenjuje prvi operand i odbacuje rezultat, zatim procjenjuje drugi i vraća vrijednost drugog. Ovdje je asocijativnost operatora zareza () s lijeva na desno i lako je razumjeti da se izraz (14563) procjenjuje kao 3, a zatim se rezultat 1 + 3 dodjeljuje i.
pitanje 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Obrazloženje: Tvrdnja b = (a = 50) + 10; koristi koncept ugrađene dodjele. Ovdje je vrijednost 50 dodijeljena varijabli a, a rezultat 50+10 dodijeljen je varijabli b. Pitanje 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  
Obrazloženje: C++ također može izvoditi aritmetičke izračune uzimajući u obzir ASCII vrijednosti znakova ako se aritmetičke operacije izvode na varijablama tipa podataka char. Ovdje u ovom slučaju odgovor je 120 što je ASCII vrijednost za x.
Pitanje 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Obrazloženje: Svaki broj različit od nule u C++-u tretira se kao prava vrijednost. Ovdje u ovom kodu naredba if ima tendenciju smanjivanja vrijednosti i, ali unutar bloka if funkcija main() poziva se uvijek iznova. Ovdje se čini da je program u beskonačnoj petlji, ali varijabla i je statična po prirodi i ima svoj životni vijek do izvršenja, stoga će se program zaustaviti ako i postane 0.
Pitanje 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Obrazloženje: Svaki broj različit od nule u C++-u tretira se kao prava vrijednost. Ovdje u ovom kodu naredba if ima tendenciju smanjivanja vrijednosti i, ali unutar bloka if funkcija main() poziva se iznova i iznova (sve naredbe sada će se izvršavati kao da se radi o novom programu), stoga će izvođenje programa biti uhvaćeno u beskonačnoj petlji jer nema uvjeta prekida. Napravi kviz