【校园招聘】2011年百度校园招聘笔试题及参考答案

一、选择题

   1. 下列关于对象初始化的叙述中,正确的是(    )

           A定义对象的时候不能对对象进行初始化

           B定义对象之后可以显式地调用构造函数进行初始化

            C定义对象时将自动调用构造函数进行初始化

            D在一个类中必须显式地定义构造函数实现初始化

    2. 下列关于基类和派生类关系的叙述中,正确的是(    )

          A每个类最多只能有一个直接基类

          B派生类中的成员可以访问基类中的任何成员

         C基类的构造函数必须在派生类的构造函数体中调用

          D派生类除了继承基类的成员,还可以定义新的成员 

    3.下列关于赋值运算符 “=” 重载的叙述中,正确的是(    )

           A赋值运算符只能作为类的成员函数重载

           B默认的赋值运算符实现了深层复制功能

              C重载的赋值运算符函数有两个本类对象作为形参

              D如果己经定义了复制(拷贝) 构造函数,就不能重载赋值运算符

    4.下列选项中,正确的C++标识符是(    )

              A6_group      Bgroup~6      Cage+3      D _group_6

     5下列循环语句中有语法错误的是(    )

           A int i; for( i=1; i<10; i++)cout<<‘*‘;

           B int i,j; for(i=1, j=0; i<10; i++, j++)cout<<‘*‘;

           C int i=0; for(; i<10; i++)cout<<‘*‘;

           D for(1)cout<<‘*‘;

     6下列定义语句中,错误的是(    )

           A int px*;                        Bchar *acp[10];

           Cchar(*pac)[10];     Dint(*p)();

     7若MyClass为一个类,执行“MyClass a[4], *p[5];”语句时会自动调用该类构造函数的次数是(    )

           A 2         B 5          C4           D9

     8有如下程序:      
#include<iostream>
#include<cmath>
using std::cout;

class Point{
    public:
        friend double distance(const Point &p); //p距原点的距离
        Point(int xx=0,int yy=0):x (xx),Y(YY){}//①
    private:
        int x, Y;
};

double distance(const Point &p) { //②
    return sqrt(p.x*p.x+p.Y*p.Y);  
}

int main(){
    Point p1(3,4);
    cout<<distance(p1); //③
    return 0;  
}   
          下列叙述中正确的是(    )
          A程序编译正确                   B程序编译时语句①出错
          C程序编译时语句②出错   D程序编译时语句③出错
    9下列哪两个是等同的(    )
          int b;

          A. const int *a =&b;                B. const* int a = &b;

    C. const int *const a = &b;  D. int const* const a = &b;

    10有如下语句序列:char str[10]; cin>>st; 当从键盘输入“I love this game”时,str中的字符串是(    )

             A"I love this game"         B "I love thi"    

             C"I love"                           D "I"

    11有函数模板声明和一些变量定义如下:

             template<class Tl, class T2, class T3>T1 sum(T2, T3);

             double dl, d2;

            则下列调用中,错误的是(    )

            Asum<double, double, double>(dl, d2);  

            Bsum<double, double>(d1, d2);

            Csum<double>(d1, d2);  

            Dsum(d1, d2);

    12以下程序段完全正确的是(    )

            A int*p; scanf("%d",&p);               B int *p; scanf(“%d”, p);

            C int k, *p=&k; scanf("%d",p);      D int k,*p:; *p= &k; scanf(“%d”, p);

     13有定义语句:int *p[4]; 以下选项中与此语句等价的是(    )
             Aint p[4];     Bint **p;       Cint *(p[4]);      Dint (*p)[4];
    14若要重载+、=、<<、=和[ ]运算符,则必须作为类成员重载的运算符是(    )
             A +和=         B=和<<       C==和<<            D=和[ ]
     15下列说法正确的是(    )
       A内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
       B内联函数在编译时是将该函数的目标代码插入每个调用该函数的地
      
C类的内联函数必须在类体内定义
              D类的内联函数必须在类体外通过加关键字inline定义
    
16. 下面对于友元函数描述正确的是(    )
              A友元函数的实现必须在类的内部定义
              B友元函数是类的成员函数
              C友元函数破坏了类的封装性和隐藏性
              D友元函数不能访问类的私有成员
      17在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(    )
              A派生类的对象可以赋给基类的对象
              B派生类的对象可以初始化基类的引用
              C派生类的对象可以直接访问基类中的成员
            D派生类的对象的地址可以赋给指向基类的指针
       18下列关于多态性的描述,错误的是(    )
              AC++语言的多态性分为编译时的多态性和运行时的多态性
              B编译时的多态性可通过函数重载实现
              C运行时的多态性可通过模板和虚函数实现
              D实现运行时多态性的机制称为动态绑定
       19如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是(    )
               A一元运算符        B二元运算符           C选项A 和选项B 都可能         D重载错误
       20在下列关于C++函数的叙述中,正确的是(    )
               A每个函数至少要有一个参数           B每个函数都必须返回一个值
               C函数在被调用之前必须先声明       D函数不能自己调用自己

        21如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是(    )

                Ae3、e1、e4、e2        Be2、e4、e3、e1      Ce3、e4、e1、e2        D任意顺序
        22下面关于模板的描述,错误的是(    )
                A函数模板和类模板的参数可以是任意的数据类型
                B类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象
                C函数模板不能直接使用,需要实例化为模板函数后才能使用
                D类模板的成员函数都是模板函数
        23下面对静态数据成员的描述中,正确的是(    )
                A静态数据成员可以在类体内进行初始化
                B静态数据成员不可以被类的对象调用
                C静态数据成员不受private控制符的作用
                D静态数据成员可以直接用类名调用
        24对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(    )

                A公有类型        B私有类型       C保护类型          D友元类型

        25.抽象基类是指(    )

                A嵌套类            B派生类     C含有纯虚函数     D多继承类
        26.如果已定义了一个C++类CMyList并有以下语句:CMyList list(3); 以下说法正确的是(    )
                A该语句会创建一个CMyList类的一个对象
                B该语句会创建一个CMyList类的3个对象
                C必须为类CMyList定义一个构造函数
                D必须为类CMyList定义一个析构函数
                E必须定义函数CMyList list(int)
       
27以下说法正确的是(    )
                A内联(inline)函数改善了函数调用的执行效率
                B类A的友元(friend)函数可以访问类A的私有成员
                C类A的友元(friend)类B可以访问类A的私有成员
                D类A的静态数据成员为类A的所有对象所共享
                E类A的静态成员函数没有传递this 指针作为参数
        28.类B从类A派生,则类B可以访问类A中的(    )成员。
                Apublic成员    Bprivate成员     Cprotected成员     D数据成员     E函数成员
        29面向对象的程序设计语言具有(    )等共同特性。
                A封装性           B多态性              C.  简单性              D.  复杂性        E.  继承性
          30现有一个程序如下:
class A{
public:
    void f(){
        cout<<"A::f().."<<endl;
    }
};
class B{
public:
   void f(){
        cout<<"B::f().."<<endl;
    }
    void g(){
        cout<<"B::g().."<<endl;
    }
};
class C:public A,public B{
public :
    void g(){
        cout<<"C::g().."<<endl;
    }
    void h(){
        cout<<"C::h().."<<endl;
        f();// 语句1
    }
};
int main(){
    C obj;
    obj.f();//语句2
    obj.A::f();//语句3
    obj.B::f();//语句4
    obj.g();  //语句5
    system("pause");
    return 0;
}                


       则编译时会产生错误的语句有(    )
                     A. 语句1     B.  语句2    C.  语句3    D.  语句4    E.  语句5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值