Вивід програм на C++ | Набір 22

Спрогнозуйте вихід наступних програм C++. Питання 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Пояснення: 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;  

Питання 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Пояснення: Оскільки умова перевірки ініціалізації та умова збільшення/зменшення відсутні всередині циклу for, виконання буде перехоплено в нескінченному циклі.
Питання 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Пояснення: Hello!3 є результатом, оскільки коли виконується цикл for, він не має жодних завдань через крапку з комою (;) у рядку, де було визначено цикл for. Цикл виконається тричі, і значення i стане 3, після чого виконається решта операторів.
Питання 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Пояснення: Оператор comma () — це двійковий оператор, який обчислює перший операнд і відкидає результат, а потім обчислює другий і повертає значення другого. Тут асоціативність оператора коми () розташована зліва направо, і легко зрозуміти, що вираз (14563) оцінюється як 3, а потім результат 1 + 3 присвоюється i.
Питання 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Пояснення: Твердження b = (a = 50) + 10; використовує концепцію вбудованого призначення. Тут значення 50 присвоюється змінній a, а результат 50+10 присвоюється змінній b. Питання 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  
Пояснення: C++ також може виконувати арифметичні обчислення з урахуванням значень ASCII символів, якщо арифметичні операції виконуються над змінними типу даних char. У цьому випадку відповідь 120, що є значенням ASCII для x.
Питання 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Пояснення: Будь-яке ненульове число в C++ розглядається як справжнє значення. У цьому коді оператор if має тенденцію зменшувати значення i, але всередині блоку if функція main() викликається знову і знову. Здається, що програма перебуває в нескінченному циклі, але змінна i є статичною за своєю природою, вона має свій час життя до моменту виконання, тому програма зупиниться, якщо i стане 0.
Питання 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Пояснення: Будь-яке ненульове число в C++ розглядається як справжнє значення. Тут у цьому коді оператор if має тенденцію зменшувати значення i, але всередині блоку if функція main() викликається знову і знову (усі оператори тепер виконуватимуться так, ніби це нова програма), отже, виконання програми відбуватиметься в нескінченному циклі, оскільки немає умови завершення. Створіть вікторину