Výstup programov C++ | Súprava 22

Predpovedajte výstup nasledujúcich programov C++. Otázka 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Vysvetlenie: 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;  

Otázka 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Vysvetlenie: Keďže v slučke for chýba podmienka inicializačného testu a podmienka zvýšenia/zníženia, vykonávanie bude zachytené v nekonečnej slučke.
Otázka 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Vysvetlenie: Hello!3 je výsledok, pretože keď sa vykoná cyklus for, nemá žiadnu úlohu kvôli bodkočiarke(;) v riadku, kde bola definovaná slučka for. Cyklus sa vykoná trikrát a hodnota i bude 3, potom sa vykoná zvyšok príkazu (príkazov).
Otázka 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Vysvetlenie: Operátor čiarka () je binárny operátor, ktorý vyhodnotí prvý operand a zahodí výsledok a potom vyhodnotí druhý a potom vráti hodnotu druhého. Tu je asociativita operátora čiarka () zľava doprava a je ľahké pochopiť, že výraz (14563) sa vyhodnotí ako 3 a potom sa výsledok 1 + 3 priradí k i.
Otázka 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Vysvetlenie: Výrok b = (a = 50) + 10; používa koncept vnoreného priradenia. Tu je hodnota 50 priradená premennej a a výsledok 50+10 je priradený b. Otázka 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  
Vysvetlenie: C++ môže tiež vykonávať aritmetické výpočty so zreteľom na hodnoty ASCII znakov, ak sa aritmetické operácie vykonávajú s premennými dátového typu char. V tomto prípade je odpoveď 120, čo je hodnota ASCII pre x.
Otázka 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Vysvetlenie: Akékoľvek nenulové číslo v C++ sa považuje za skutočnú hodnotu. Tu v tomto kóde má príkaz if tendenciu znižovať hodnotu i, ale vo vnútri bloku if sa funkcia main() volá znova a znova. Tu sa program zdá byť v nekonečnej slučke, ale premenná i je svojou povahou statická, má svoju životnosť až do vykonania, preto sa program zastaví, ak sa i stane 0.
Otázka 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Vysvetlenie: Akékoľvek nenulové číslo v C++ sa považuje za skutočnú hodnotu. Tu v tomto kóde má príkaz if tendenciu znižovať hodnotu i, ale vo vnútri bloku if sa funkcia main() volá znova a znova (všetky príkazy sa teraz vykonajú, ako keby to bol nový program), takže vykonávanie programu bude zachytené v nekonečnej slučke, pretože neexistuje žiadna podmienka ukončenia. Vytvoriť kvíz