أسئلة دورات 2011-2012

من ويكي الهندسة المعلوماتية
اذهب إلى: تصفح، ابحث

السؤال الاول

ما خرج الـ Code التالي :

int x = -3,y = 2;
void legal(int &c,static int d){
   static int g = 2;
   for(int i=1;i<=d;i=i+d){
      if(d%2 == 1) d++; else --d;
      if(d > 0){g = c/d; c = ++g;}
   }
}
int main(){
   int x = 3,y = -2;
   legal(2,-x);
   legal(x,-y+4);
   cout<<x+y;
   return 0;
}

1. يطبع القيمة 1.

2. يطبع القيمة 6.

3. يطبع القيمة 11.

4. خطأ املائي .. لا يمكن وضع static في ترويسة التابع.

5. كل الإجابات السابقة خاطئة.

السؤال الثاني

اختر الإجابة الصحيحة:

العبارة الأولى : لا يمكن تعريف متحول من النمط static int داخل الـ private ضمن صف.

العبارة الثانية : التعليمات التالية صحيحة :

    int *Ptr; Ptr = NULL; *Ptr = NULL;

العبارة الثالثة : يمكن تعريف متحول من الشكل :



int y = 128;
const int x = y;

4. العبارات الثلاث السابقة صحيحة.


5. جميع العبارات خاظئة.

السؤال الثالث

1- قد يختلف حجم متحول من نمط long integer إلى shor integer ..

2-بفرض أن المتحولات m,a,b,c من نمط صحيح , لا يوجد خطأ في التعبير:

max=a>b?a>c:a:c:b>c?b:c


3-تستخدم countinue في الخلقات ولا تستخدم ضمن الـ Switch..

4-العبارات الثلاثة السابقة صحيحة..

5-جميع العبارات خاطئة..




class B {public: virtual int salary(){return 1;}};
 
class C :public B {public: virtual int salary(){return 2;}};
 
class D :public C {public: virtual int salary(){return 3;}};

السؤال الرابع

B * PB = new B() ;
   C * PC = new C() ;
   D * PD = new D() ;
   C * pc = static_cast<C*>(PC) ;
   if (pc != 0) cout << pc->salary() ;


أختر احد الإجابات التالية أعتمادا على ما سبق :

1) Compiler error

2)ينفذ و يطبع 3.

3)ينفذ و لا يطبع شيء.

4)لا ينفذ حيث لا يمكن قصر كلاس أب على كلاس ابن.

5)جميع الإجابات خاطئة.

السؤال الخامس

 B * PB = new B() ;
   C * PC = new C() ;
   D * PD = new D() ;
   C * pc = NULL ;
   pc = PD;
   pc = PB;
   pc = static_cast<C*>(pc);
   if (pc !=0) cout << pc->salary();

أختر احد الإجابات التالية أعتمادا على ما سبق :

1) Compiler error

2)ينفذ و يطبع 3.

3)ينفذ و لا يطبع شيء.

4)لا ينفذ حيث لا يمكن قصر كلاس أب على كلاس ابن.

5)جميع الإجابات خاطئة.




من أجل الترميز التالي أجب عن الأسئلة التالية:


Tamplet<class T>
 
T sumlist(const std::list<T>&l)
{
   std::list<T>::Const_iterator Countitr;
   T sum=0;
   for(countitr=l.begin();countitr!=l.end();countitr++)
   sum=sum+*countitr;
   return 0;
}


السؤال السادس

من أجل الترميز أعلاه عند استدعاء التابع main الموضح كما يلي  :


void main()
{
   std::list<int> ls;
   for(i=2;i>0;--i)
    for(j=1;j<4;j++)
     {
      ls.push_front(i+j);
      ls,push_back(i-j);
     }
   ls.push_front(5);
   cout<<sumlist(ls)<<"\n";
}

فإن الناتج يكون

1- 23 ..

2- 21 ..

3- 19 ..

4- 17 ..

5- جميع الإجابات خاطئة..

السؤال السابع

من أجل الترميز أعلاه عند استدعاء التابع main الموضح كما يلي:

    void main()
    {
       std::list<int> ls;
       std::list<int>::iterator itr1,itr2;
       for(i=2;i>0;--i)
        for(j=1;j<4;j++)
         {
          ls.push_front(i+j);
          ls,push_back(i-j);
         }
       ls.push_front(5);
       itr1=ls.begin()++;++itr1;
       itr2=ls.end();--itr2;--itr2;
       ls.erase(itr1,itr2);
       cout<<sumlist(ls)<<"\n";
    }

فإن الناتج يكون:

1- 1 ..

2- 2 ..

3- 3 ..

4- 4 ..

5-جميع الإجابات خاطئة ..

السؤال الثامن

ماذا يرد التابع التالي :


   int x;
int& f (bool b){
  if (b)
   x++;
   else 
   x--;
return x;
}
 
int main(){
x=2;
cout <<f(3);
return 0;
}

الخيارات :

1- يطبع 1.

2- يطبع 2.

3-يطبع 3.

4-يطبع عنوان x .

5- الجواب غير ما سبق .


السؤال التاسع

ماذا يرد التابع التالي:


  Int f(int)
{
a>20?return(10):return(20);
}
Int main()
{
Int b;
b=f(20);
cout<<b<<endl;
}

الخيارات:

1- 10 ..

2- 20 ..

3- 0 ..

4-خطأ إملائي..

5-كافة الأجوبة السابقة خاطئة..


السؤال العاشر

ماخرج البرنامج التالي:


 Char sptr[]=”spngur”;
Sptr[0]=’k’;
Cout<<sptr<<endl;
Sptr=”kpngur”;
Cout<<sptr+1;

الخيارات :

1- Spngur,kpngur..

2- Spngur,spngur..

3- Spngur,a..

4- خطأ املائي..

5- جميع الاجابات خاطئة..

السؤال الحادي عشر

ما خرج الـ Code التالي :

typedef int arr[5]
int main(){
 
arr iarr={1,2,3,4,5;}
for(int i=0 ;i<4;i++
{
cout << iarr[i]]<< ','
}
return 0;
}

1- 1,2,3,4,5..

2- 1,2,3,4..

3- لايمكننا تعريف مصفوفة ضمن typedef..

4- الاجابة الصحيحة غير ذلك..


السؤال الثاني عشر

ما هو خرج التابع main التالي :


void f(){
int *ip= new int[5]
for(int i=0 ;i <5;i++)
ip[i =i;]
}
int main(){
f();
int ip=new int [4]
cout<<ip[1]<< ip[3;]
return 0;
}

1- القيمتين 1 و 3 ..

2- القيمة 1 وقيمة عشوائية..

3- قيمتين عشوائيتين..

4- لن يطبع شيء..

5- الاجابة الصحيحة غير ذلك..

السؤال الثالث عشر

ماهو خرج البرنامج التالي:


int main()
{
enum day {mon=1,tuh,teh=6,..all week days};
cout<<++mon<<tuh<<all week days<<...;
return 0}


1- (0,-1,1,6,7,8,9)..

2-يوجد خطا املائي , لن ينفذ..

3-الجواب الصحيح مختلف عما سبق ..


السؤال الرابع عشر

int main(){
int a[3][4];
fun(a);
return 0;}

أي من الإستدعاءات التالية صحيحة:


 1- fun(int p[][4]);
    fun(int *p [][4]);
    fun (int(*p[]);
    fun(int *p[3][4]
    كل ما سبق صحيح


السؤال الخامس عشر

ما الخطأ في البرنامج التالي:

class b{};
calss c:public b{};
class d:public c{};
int main(){
d *pd=new d;//1
b *pb=dynamic_cast(b*)(pd);//2
c *pc=dynamic_cast(*c)(pd);//3


1-السطر الأول..

2-السؤال الثاني..

3-السؤال الثالث..

4-السؤال الثاني والثالث..

5-كل الاسطر خطأ..

6-كل الاسطر صحيحه..

السؤال السادس عشر

ما خرج الـ Code التالي :


int main()
{
char str1[] = "Hello";
char str2[] = "Hello";
if (str1==str2)
cout<<"Equal";
else
cout<<"NtEqual";
return 0;
}

1-Equal..

2-NtEqual..

3-NtEqual Equal..

4-compile error..

السؤال السابع عشر

ما خرج الـ Code التالي :


int main()
{
void swap (char* , char*);
char *ptr1[2] = {"Hello","bye"};
 
return 0;
}
void swap (char* p1, char* p2){char* temp ; temp = p1 ; p1 = p2; p2 = temp;}


الخرج من الشكل : Hello,Bye-1..

Bye,Hello-2..

3-H,B..

4-الإجابات جميعها خاطئة..

السؤال الثامن عشر

ما خرج الـ Code التالي :


typedef int arr[5]
int main(){
 
arr iarr={1,2,3,4,5;}
for(int i=0 ;i<4;i++
{
cout << iarr[i]]<< ','
}
return 0;
}


1- 1,2,3,4,5..

2- 1,2,3,4,..

3- لايمكننا تعريف مصفوفة ضمن typedef..

4- الاجابة الصحيحة غير ذلك..

السؤال التاسع عشر

ما خرج الـ Code التالي :


void f(){
int *ip= new int[5]
for(int i=0 ;i <5;i++)
ip[i =i;]
}
int main(){
f();
int ip=new int [4]
cout<<ip[1]<< ip[3;]
return 0;
}


1- القيمتين 1 و 3..

2- القيمة 1 وقيمة عشوائية..

3- قيمتين عشوائيتين..

4- لن يطبع شيء..

5- الاجابة الصحيحة غير ذلك..

السؤال العشرون

ما خرج الـ Code التالي :

int f(int*,int*)
int main()
{
int i=5,int j=2;
f(&i,&j)
cout<<i<<j;
return 0;
 
}
int f(int *i,int*j)
return *i=*i**i,*j=*j**j
}


أولاً:5,2

ثانياً:2,5

ثالثاً:10,4

رابعاً:25,4

خامساً:لا شيئ مما سبق.