logo

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 + (14563);  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