首页 > 代码库 > C++测试题练习题1

C++测试题练习题1

1、which of the following is not automatically generated by the compiler?

      a. default constructor    b. copy constructor    c. equality operator(op==)     d. assignment operator(op=)       e. destructor

2、which of the following is not an STL collection?

      a. vector   b. list     c. map    d. tree      e. set

3、which statement is false?

      a. Destructors are called when a pointer is deleted.     

      b. Destructors are called when an object goes out of scope.

      c. Destructors are called when a reference goes out of scope.

      d. A virtual destructor should be used if the class has virtual methods.

      e. Base class destructors are called after derived class destructors.

4、what should you avoid calling from a constructor?

       a. a static method    b. an inlined method       c. a virual method      d. a const method          e. an extern method

5、which of the following C++ operators cannot be overloaded?

       a. <<           b. []             c. ++             d. ()               e. :?

6、Consider the following function:

void foo(const char* name) {      char* Name1 = name;            //Statement1      const char* Name2 = name;   //Statement2      char* const Name3 = name;   //Statement3      char const* Name4 = name;   //Statement4 } 

 which of the following is true?

    a. Statement 1 fails to compile                   b. Statement 1 and 3 fails to compile

    c. Statement 3 and 4 fails to compile          d. Statment 2 fails to compile

    e. Statment 3 and 4 fails to compile

7、Consider the following code:

struct MyStruct{      int foo(){return 1;}}; class MyClass{       int foo(){ return 2;}}; MyStruct s; MyClass c; ***** int x = s.foo();   //Statement1 int y = c.foo();    //Statement2

Circle one answer below which is true of the above code.

       a. Statement 1 will cause a compilation error                     b. Statement 2 will cause a compilation error

       c. Both statement will compilation successfully                   d. Both statement will fail to compile

8、Consider the following class:

class ClassX {     public: ClassX():C_(1),B_(2),A_(B_+C_){}      private:           int A_;           int B_;          int C_; };

 what value will the member variable A be initialized to?

       a. 0          b. 1             c. 2                d. 3                 e. None of the above

9、Name the design pattern that is implemented in the following C++ class:

class XXX {      public:     static XXX * instance()          {           static XXX x; return &x;          }       protected:       {        XXX(){}        } }; 

a. proxy b. composite c. singleton d. factory e.adapter

10 
class
Foo{public: virtual void cala() { cout << "foo"<<end1; }}class Bar : public Foo{public: void calc() { cout << "bar"<<end1; }}int main(){ Bar * b1 = new Bar(); Bar b2; Foo f1 = *b1; Foo &f2 = b2; Foo *f3 = b1; f1.calc(); f2.calc(); f3.calc(); }

which of the output of the above code?

           a. foo foo foo     b. foo bar   bar       c. foo   foo    bar       d. bar    bar   bar     e.   bar  foo bar 

C++测试题练习题1