Ausgabe von C++-Programmen | Satz 22

Sagen Sie die Ausgabe der folgenden C++-Programme voraus. Frage 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Erläuterung: 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;  

Frage 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Erläuterung: Da die Initialisierungstestbedingung und die Inkrementierungs-/Dekrementierungsbedingung in der for-Schleife fehlen, wird die Ausführung in einer Endlosschleife gefangen.
Frage 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Erläuterung: „Hello!3“ ist das Ergebnis, denn wenn die for-Schleife ausgeführt wird, hat sie aufgrund des Semikolons (;) in der Zeile, in der die for-Schleife definiert wurde, keine Aufgabe zu erledigen. Die Schleife wird dreimal ausgeführt und der Wert von i wird 3, dann werden die restlichen Anweisungen ausgeführt.
Frage 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Erläuterung: Der Komma()-Operator ist ein binärer Operator, der den ersten Operanden auswertet und das Ergebnis verwirft, dann den zweiten auswertet und dann den Wert des zweiten zurückgibt. Hier verläuft die Assoziativität des Komma()-Operators von links nach rechts und es ist leicht zu verstehen, dass der Ausdruck (14563) als 3 ausgewertet wird und dann das Ergebnis 1 + 3 i zugewiesen wird.
Frage 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Erläuterung: Die Aussage b = (a = 50) + 10; verwendet das Konzept der eingebetteten Zuweisung. Hier wird der Variablen a der Wert 50 und b das Ergebnis 50+10 zugewiesen. Frage 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  
Erläuterung: C++ kann auch arithmetische Berechnungen unter Berücksichtigung der ASCII-Werte von Zeichen durchführen, wenn die arithmetische Operation für Variablen des Datentyps char ausgeführt wird. In diesem Fall lautet die Antwort 120, was dem ASCII-Wert für x entspricht.
Frage 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Erläuterung: Jede Zahl ungleich Null wird in C++ als wahrer Wert behandelt. Hier in diesem Code neigt die if-Anweisung dazu, den Wert von i zu verringern, aber innerhalb des if-Blocks wird die Funktion main() immer wieder aufgerufen. Hier scheint sich das Programm in einer Endlosschleife zu befinden, aber die Variable i ist von Natur aus statisch und hat ihre Lebensdauer bis zur Ausführung. Daher wird das Programm angehalten, wenn i 0 wird.
Frage 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Erläuterung: Jede Zahl ungleich Null wird in C++ als wahrer Wert behandelt. Hier in diesem Code neigt die if-Anweisung dazu, den Wert von i zu verringern, aber innerhalb des if-Blocks wird die Funktion main() immer wieder aufgerufen (alle Anweisungen werden jetzt so ausgeführt, als wäre es ein neues Programm), daher wird die Programmausführung in einer Endlosschleife gefangen, da es keine Beendigungsbedingung gibt. Quiz erstellen