C++ programlarının çıktısı | 22'yi ayarla

Aşağıdaki C++ programlarının çıktısını tahmin edin. Soru 1 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     b     =     c     =     0  ;      cout      < <     a      < <     '*'      < <     b      < <     '*'      < <     c  ;      return     0  ;   }   
Output:
Compile time error!  
Açıklama: 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;  

Soru 2 CPP
   #include          using     namespace     std  ;   int     main  ()   {      for     (     ;     ;     )     cout      < <     'blank'  ;      return     0  ;   }   
Output:
Infinite Loop!  
Açıklama: For döngüsü içinde başlatma test koşulu ve artırma/azaltma koşulu eksik olduğundan, yürütme sonsuz döngüye yakalanacaktır.
Soru 3 CPP
   #include          using     namespace     std  ;   int     main  ()   {         int     i  ;      for     (  i  =  0  ;     i   <  3  ;     i  ++  );          cout      < <     'hello!'      < <  i  ;      return     0  ;   }   
Output:
hello!3  
Açıklama: Sonuç Hello!3'tür, çünkü for döngüsü çalıştırıldığında for döngüsünün tanımlandığı satırda bulunan noktalı virgül(;) nedeniyle yapacak herhangi bir görevi yoktur. Döngü üç kez yürütülecek ve i'nin değeri 3 olacak, ardından geri kalan ifade(ler) yürütülecektir.
Soru 4 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     i  ;      i     =     1     +     (  1    4    5    6    3  );      cout      < <     i  ;      return     0  ;   }   
Output:
4  
Açıklama: Virgül () operatörü, ilk işleneni değerlendiren ve sonucu atan, ardından ikinciyi değerlendiren ve ardından ikincinin değerini döndüren ikili bir operatördür. Burada virgül () operatörünün ilişkilendirilebilirliği soldan sağa doğrudur ve (14563) ifadesinin 3 olarak değerlendirildiğini ve ardından 1 + 3 sonucunun i'ye atandığını anlamak kolaydır.
Soru 5 CPP
   #include          using     namespace     std  ;   int     main  ()   {      int     a     =     0       b  ;      b     =     (  a     =     50  )     +     10  ;      cout      < <     a      < <     '$'      < <     b  ;      return     0  ;   }   
Output:
50  
Açıklama: b = (a = 50) + 10; Gömülü atama kavramını kullanır. Burada a değişkenine 50 değeri, b değişkenine ise 50+10 sonucu atanır. Soru 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  
Açıklama: C++, char veri tipindeki değişkenler üzerinde aritmetik işlem yapılması durumunda, karakterlerin ASCII değerlerini dikkate alarak aritmetik hesaplama da yapabilir. Bu durumda cevap, x'in ASCII değeri olan 120'dir.
Soru 7 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      static     int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
4321  
Açıklama: C++'ta sıfırdan farklı herhangi bir sayı gerçek değer olarak kabul edilir. Bu kodda if ifadesi i'nin değerini azaltma eğilimindedir ancak if main() işlevinin bloğunun içinde tekrar tekrar çağrılır. Burada program sonsuz döngüde gibi görünüyor ancak i değişkeni doğası gereği statiktir, yürütülünceye kadar ömrü vardır, dolayısıyla i 0 olursa program duracaktır.
Soru 8 CPP
   #include       using     namespace     std  ;   int     main  (  int     x  )   {      int     i     =     5  ;      if     (  --  i  )      {      cout      < <     i  ;      main  (  10  );      }      return     0  ;   }   
Output:
infinite loop  
Açıklama: C++'ta sıfırdan farklı herhangi bir sayı gerçek değer olarak kabul edilir. Burada, bu kodda, if ifadesi i'nin değerini azaltma eğilimindedir, ancak bloğun içinde main() işlevi tekrar tekrar çağrılırsa (tüm ifadeler artık yeni bir programmış gibi yürütülecektir), dolayısıyla programın yürütülmesi, sonlandırma koşulu olmadığından sonsuz döngüye yakalanacaktır. Test Oluştur