مخرجات برامج 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  
توضيح: عامل الفاصلة () هو عامل ثنائي يقوم بتقييم المعامل الأول ويتجاهل النتيجة ثم يقوم بتقييم المعامل الثاني ثم يقوم بإرجاع قيمة المعامل الثاني. هنا يكون ارتباط عامل الفاصلة () من اليسار إلى اليمين ومن السهل أن نفهم أن التعبير (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  
توضيح: العبارة ب = (أ = 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 ولكن داخل الكتلة إذا تم استدعاء الدالة main() مرارًا وتكرارًا (سيتم تنفيذ جميع العبارات الآن كما لو كان برنامجًا جديدًا) وبالتالي سيتم تنفيذ البرنامج في حلقة لا نهائية حيث لا يوجد شرط إنهاء. إنشاء اختبار