发几道关于C++基础知识的题,能不能做自己清楚就行。

发几道关于C++基础知识的题,能不能做自己清楚就行。

下面这些是基础题,“高手”们飘过!!!
我想一般公司对语言方面,总会变着方法考下面的这些问题。这只是出现的一种形式。有啥好题欢迎大家分享,下面这些是我自己YY的。看题的兄弟只需在自己心里作答就行,一定不要忘了几乎每题都有一个“ 为什么”。

 1 class  A
 2 {
 3public:
 4    ~A(){cout<<"~A"<<endl;}
 5}
;
 6
 7 class  B: public  A
 8 {
 9public:
10    ~B(){cout<<"~B"<<endl;}
11}
;
12
13 A *  p  =   new  B;
14 delete p;
1、请问上面输出什么,为什么!


 1 class  A
 2 {} ;
 3
 4 class  B
 5 {
 6   void f(){}
 7    int i;
 8}
;
 9
10 class  C
11 {
12   virtual void f(){}
13}
;
14
15 class  D: public  B, public  C
16 {}
17
18 int  n1  =   sizeof (A);
19 int  n2  =   sizeof (B);
20 int  n3  =   sizeof (C);
21 int  n4  =   sizeof (D);
22
2、n1  n2 n3 n4的值是多少,为什么!


 1 void  _MyNew( int *  p)
 2 {
 3  p = new int;
 4}

 5
 6 int * =  NULL;
 7 bool  isFailed  =   false ;
 8 _MyNew(p);
 9
10 if (p == NULL)
11   isFailed  =   true ;
3、isFailed 的值,为什么!


4、指针的函义(答案灵活,看理解程度)


1 int  f( int  a)
2 {
3   if(a>0)
4   
5      return 0
6   }

7   return a;
8}
5、不用分支语句或跳转语句,实现上面的分支执行的功能。


void  f1() {}
void  f2() {}

void  test( bool  bf)
{
   
if(bf)
     f1();
   
else
     f2();
}
6、要求与5题相同。


1 void *  p  =  NULL; p ++ ;
2 char *  q  =  NULL; q ++ ;
3 int *  r  =  NULL; r ++ ;
7、上面的语句是否合法,如果合法,p ,q,r的值分别是多少。为什么!

1 void  f( int *  p) {}
2 void  f( int  p[]) {}
3
8、如果我使用f(NULL);调用上面的函数,哪个能成功,哪个会失败,为什么。


9、构造一个简单的栈。并将 0……9的数压栈,再逆序输出。


10、你能解释float f;   int a = *(int*)&f;这句代码的含义么?


你可能感兴趣的:(发几道关于C++基础知识的题,能不能做自己清楚就行。)