هل تريدون اختبار مدى تمكنكم من اساسيات البرمجة في جافا ...
حاولو حل ال39 سؤال التالية في زمن لا يزيد عن ساعة واحدة فقط يعني امامك اقل من دقيقتين لحل كل سؤال .
لاحظوا ان السؤال ليس اختيار اجابة من عدة خيارات بل اختيار كل الاجابات الصحيحة وهذا اصعب .
كما ان احتمال ان يكون هناك سؤال بدون أي اجابة صحيحة وارد .
هذه الأسئلة كانت جزء من الامتحان العملي العام الماضي لمادة لغات البرمجة لطلاب السنة الثالثة في كلية الهندسة المعلوماتية .
ملاحظة هامة جدا : لن اضع اجابات الأسئلة ( انا نقسي لم احصل عليها ) فمن يريد الاجابات فإما يعتمد على نفسه بالبحث في الانترنت أو ممكن ان تفتحوا ساحة للنقاش بين الأعضاء حول الاجابات .
اختر الإجابة / الإجابات الصحيحة ما لم يذكر عكس ذلك صراحة في نص السؤال :
- ان جميع المناهج methods في الواجهة Interface حتى ولم يذكر ذلك صراحة هي :
- خاصة private و ساكنة static و مجردة abstract
- عامة pubic و ساكنة static و مجردة abstract
- عامة pubic و ساكنة static
- عامة pubic و مجردة abstract
- خاصة private و مجردة abstract
- خاصة private و ساكنة static و مجردة abstract
- تسمح جافا لأي واجهة بوراثة extends أي عدد من الواجهات .
- تسمح جافا لأي واجهة بوراثة أي عدد من الصفوف .
- تسمح جافا لأي واجهة بتحقيق implements أي عدد من الصفوف.
- تسمح جافا لأي واجهة بتحقيق implements أي عدد من الواجهات.
- تسمح جافا لأي صف بالوراثة من صف واحد على الأكثر وتحقيق implements واجهة واحدة على الأكثر .
- تسمح جافا لأي صف بالوراثة من صف واحد مع تحقيق implements أي عدد من الواجهات .
- تسمح جافا لأي صف بالوراثة من أكثر من صف واحد و تحقيق implements واحدة على الأكثر .
- لا يمكن ان تحوي الواجهة Interface أي باني بشرط ان يوسم كساكن static
- يمكن ان تحوي الواجهة أي عدد من البواني
- لا تحوي الواجهة أي باني
- يمكن ان تحوي الواجهة باني واحد على الأكثر
- وجود بنية وراثة فقط
- وجود بنية وراثة مع تعذر برمجة طريقة على الأقل في الصف الأب
- وجود بنية وراثة مع تعذر برمجة طريقة على الأقل في احد الصفوف الأبناء
- لايوجد ارتباط مباشر بين التجريد وبين الوراثة
- يشترط وجود طريقة واحدة على الأقل مجردة
- يشترط ان تكون جميع الطرق مجردة
- لا يشترط وجود أي طريقة مجردة
- جميع ما سبق خاطئ
- عامة public و نهائية final
- عامة public و نهائية final و ساكنة static
- عامة public و ساكنة static
- خاصة private و نهائية final و ساكنة static
- myClass mc=new myClass() مقبول
- myClass mc مقبول
- الإجابة الأولى والثانية خطأ لأنه لايمكن انشاء مثيل instance عن صف مجرد
- مفيد إمكانية استخدام البواني في الصفوف الأبناء
- خطأ يعترض عليه المترجم Compiler
- مضيعة للجهد نظرا لعدم امكانية انشاء أي مثيل instance عن أي صف مجرد
- خطأ يكتشف وقت التنفيذ Runtime فقط
Public class C موجود في package2 فإن ما يلي خاطئ :
- يمكن لA ان يستخدم B
- يمكن لB ان يستخدم A
- يمكن لC استخدام A
- يمكن لC استخدام B
- يمكن استخدامها مباشرة من قبل أي صف يحقق implements الواجهة Interface
- غير قابلة للوصول أبدا
- يمكن استخدامها بأن يسبق اسم الحقل باسم الواجهة في أي صف ( بغض النظر إن كان محققا للواجهة أم لا )
- قابلية الوصول من قبل الصفوف المحققة implements فقط مباشرة
- لا يمكن وراثته ولكن من الممكن تغطية override طرائقه methods
- يمكن وراثته ولكن لا يمكن تغطية override طرائقه methods
- لايمكن وراثته و طرقه نهائية final methos
- كل ما سبق خاطئ
- حصول الإبن على كل ما يملك الأب
- حصول الإبن على كل ما يملك الأب مع امكانية تعديل الموروث ومع امكانية تضييق محددات الوصول access modifiers
- حصول الإبن على كل ما يملك الأب مع امكانية تعديل الموروث والاضافة عليه ( توسيعه فقط )
- حصول الإبن على كل ما يملك الأب مع امكانية تعديل الموروث والاضافة عليه ( توسيعه فقط ) مع امكانية توسيع محددات الوصول access modifiers
- في أي طريقة يصرح فيها عن الأب كبرامتر يمكن تمرير أي ابن له عند الاستدعاء
- في أي طريقة يصرح فيها عن الابن كبرامتر يمكن تمرير أي أب له عند الاستدعاء
- كل ما سبق خاطئ
- الحقول الخاصة private لا يمكن توريثها .
- الطرق الخاصة private لا يمكن توريثها
- البواني يمكن توريثها
- عدم حدوث استثناء Exception
- حدوث استثناء
- يجري تنفيذها سواء حدث استثناء أو لم يحدث
- Abstract مقبول
- Stictfp مقبول
- Synchronized مقبول
- Final مقبول
- خاصية الكبسلة Encapsulation أو التغليف (setters & getters)
- استخدام الصفوف المجردة
- استخدام الواجهات Interfaces كنمط معطيات
- استخدام المغلفات Wrappers
- استخدام الأب الأكبر Object كنمط معطيات
Class MyClass{ public static void myField; }
حدد الجواب الخاطئ :
- MyClass.myField مقبول
- MyClass mc=null; mc.myField مقبول ولكن غير مرغوب
- MyClass mc=new MyClass(); mc.myField مقبول ولكن غير مرغوب
- MyClass mc=null; mc.myField خاطئ
- أن تكون قيمة هذا الحقل ثابتة دائما و معروفة عند انشاء الكائن
- أن تكون قيمة هذا الحقل ثابتة غالبا و معروفة عند انشاء الكائن
- أن تكون قيمة هذا الحقل ثابتة غالبا فقط
- أن تكون قيمة هذا الحقل ثابتة دائما فقط
- عامة public وساكنه static و نهائية final
- نهائية final و ساكنه static
- ساكنه static
- نهائية final
- ضمن الصف نفسه و أبنائه و من يشاركه في الحزمة فقط
- ضمن الصف نفسه فقط
- ضمن الصف نفسه و الصفوف الأبناء فقط
- يمكن لأي صف استخدامه .
- ()Father f=new Son
- () Son s=new Father
- Son s=new Son (); Father f=(Father) s; Father f2=s;
- Father f=new Son(); Son s=(Sun)f;
- نهائية final وساكنة static
- ساكنة static و خاصة private
- نهائية final و خاصة private
- نهائية final وساكنة static و خاصة private
- لايمكن سوى لغرض واحد استدعاء هذه الطريقة في نفس الوقت .
- الطريقة مقفولة و لا يمكن استدعاءها من قبل أي غرض .
- يمكن لأكثر من غرض استدعاء الطريقة في نفس الوقت .
- جميع ما سبق خاطئ
- نمط البرامترات فقط
- نمط و عدد البرامترات فقط
- نمط و عدد البرامترات و نوع الاعادة فقط
- كل ما سبق خاطئ
- كل من التوقيع ( اسمها وعدد و نوع بارامتراتها ) ونمط الاعادة متطابقين مع الطريقة المغطاة في الصف الأعلى
- الاسم و نمط الاعادة متطابقين فقط
- الاسم و عدد البرامترات و نمط الاعادة متطابقين فقط
- التوقيعين متطابقين فقط
- يقوم المفسر Interpreter بإجبار المبرمج على استخدام كتلة try-catch
- يقوم المترجم Compiler بإجبار المبرمج على رفع الاستثناء للمستوى الأعلى
- يتيح المفسر Interpreter للمبرمج الخيارين الأول و الثاني
- كل ما سبق خاطئ
- لايمكن رفعها للمستوى الأعلى
- ترفع للمستوى الأعلى بشكل افتراضي
- ترفع للمستوى الأعلى عند استخدام المبرمج للعبارة throws فقط
- يمكن تغطية طريقة موجودة في الصف نفسه
- حتى تكون هناك تغطية يجب ان يكون هناك وراثة
- لايشترط وجود وراثة مع التغطية
- كل ما سبق خاطئ
- يمكن أن تطلق نفس الاستثناء
- يمكن أن تطلق استثناء من نمط ابن للاستثناء الذي تطلقه الطريقة المغطاة الموجودة في الصف الأعلى .
- يمكن أن تطلق استثناء من نمط أكثر تحديدا .
- جميع ما سبق صحيح .
try{
int[] a=new int[5];
for(int i=0;i<=a.length;i++)a=i;
for(int i=0;i<=a.length;i++) System.out.println("a["+i+"]="+a);
}catch(IOException e){ System.out.println("Error"); }اذا علمت ان الاستثناء من النمط IndexOutOfBoundException غير مراقب أي Runtime Exception عندئذ :
- عند التنفيذ يتم اطلاق استثناء من النمط IndexOutOfBoundException وتطبع عبارة Error
- عند التنفيذ يتم اطلاق استثناء من النمط IndexOutOfBoundException وتطبع عبارة المفسر الافتراضية
- يعترض المترجم لعدم وجود عبارة تطلق استثناء من النمط IOException ويطلب ازالة الكتلة try-catch
- يعترض المترجم ويطلب اطلاق استثناء من النمط IndexOutOfBoundException أو رفعه للمستوى الأعلى .
- يكفي ان تملك الطريقة المغطية التوقيع نفسه ونمط الاعاده نفسه
- يجب ان تملك الطريقة المغطية التوقيع نفسه ونمط الاعاده نفسه ويصرح عنها انها private
- لايمكن تغطية الطرائق الخاصة اطلاقا
Public int executeUpdate(String sql) throws SQLException
فإنه عند استخدام هذه الطريقة :
- المترجم لا يجبر المبرمج على اضافة الكتلة try-catch أو رفع الاستثناء للمستوى الأعلى .
- المترجم يجبر المبرمج على اضافة الكتلة try-catch ورفع الاستثناء للمستوى الأعلى
- المترجم يجبر المبرمج على اضافة الكتلة try-catch أو رفع الاستثناء للمستوى الأعلى .
try{…….}catch(ArithmeticException e){ throw e; }- يجب اضافة العبارة throws ArithmeticException الى ترويسة تصريح الطريقة .
- لايمكن إعادة إطلاق الاستثناء بعد ان التقطناه في كتلة catch
- يمكن اعادة اطلاق الاستثناء throw e دون الحاجة الى اضافة العبارةthrows ArithmeticException الى ترويسة تصريح الطريقة .
- غرض من أحد الصفوف الجزئية من الصف Exception
- غرض أو مثيل instance من أحد الصفوف الجزئية من الصف Exception
- مثيل من أحد الصفوف الجزئية Exception
- يجب أن تكون protected
- لايمكن تغطية الحقول
- يمكن تغطية الحقول بغض النظر عن محدد الوصول .
- الأكثر تحديدا أولا .
- الأكثر عمومية (أقل تحديدا) أولا .
- ليس لترتيب كتل catch أهمية
- يمكن تغطيتها في الصف الجزئي شرط أن تكون الطريقة المغطية ساكنة .
- يمكن تغطيتها في الصف الجزئي دون أن تكون الطريقة المغطية ساكنة
- لايمكن تغطية طريقة ساكنة
