Dane wyjściowe programów C++ | Zestaw 22

Przewiduj dane wyjściowe następujących programów w języku C++. Pytanie 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Wyjaśnienie: 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;  

Pytanie 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Wyjaśnienie: Ponieważ w pętli for brakuje warunku testu inicjalizacji oraz warunku inkrementacji/zmniejszenia, wykonanie zostanie przechwycone w nieskończonej pętli.
Pytanie 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Wyjaśnienie: Rezultatem jest Hello!3, ponieważ podczas wykonywania pętli for nie ma ona żadnego zadania do wykonania ze względu na średnik(;) znajdujący się w wierszu, w którym zdefiniowano pętlę for. Pętla wykona się trzy razy, a wartość i osiągnie 3, a następnie wykonana zostanie reszta instrukcji.
Pytanie 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Wyjaśnienie: Operator przecinka () to operator binarny, który ocenia pierwszy operand i odrzuca wynik, a następnie ocenia drugi i zwraca wartość drugiego. Tutaj łączność operatora przecinka () przebiega od lewej do prawej i łatwo zrozumieć, że wyrażenie (14563) ma wartość 3, a następnie wynik 1 + 3 jest przypisywany do i.
Pytanie 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Wyjaśnienie: Stwierdzenie b = (a = 50) + 10; wykorzystuje koncepcję osadzonego przypisania. Tutaj wartość 50 jest przypisana do zmiennej a, a wynik 50+10 jest przypisany do b. Pytanie 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  
Wyjaśnienie: C++ może również wykonywać obliczenia arytmetyczne, biorąc pod uwagę wartości ASCII znaków, jeśli operacje arytmetyczne są wykonywane na zmiennych typu char. W tym przypadku odpowiedź brzmi 120, co jest wartością ASCII dla x.
Pytanie 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Wyjaśnienie: Każda liczba różna od zera w C++ jest traktowana jako wartość prawdziwa. W tym kodzie instrukcja if ma tendencję do zmniejszania wartości i, ale wewnątrz bloku if funkcja main() jest wywoływana wielokrotnie. Tutaj program wydaje się być w nieskończonej pętli, ale zmienna i ma charakter statyczny i ma swój czas życia aż do wykonania, dlatego program zatrzyma się, jeśli i osiągnie wartość 0.
Pytanie 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Wyjaśnienie: Każda liczba różna od zera w C++ jest traktowana jako wartość prawdziwa. Tutaj, w tym kodzie, instrukcja if ma tendencję do zmniejszania wartości i, ale wewnątrz bloku, jeśli funkcja main() jest wywoływana wielokrotnie (wszystkie instrukcje będą teraz wykonywane tak, jakby był to nowy program), dlatego wykonanie programu zostanie przechwycone w nieskończonej pętli, ponieważ nie ma warunku zakończenia. Utwórz quiz