zoukankan      html  css  js  c++  java
  • C++ 面试题

    标签:C++面试题(转)

    《《《《《《《《《《《《《《《《

    一、选择题
    1.下面各项不属于派生新类范畴的是( )
    A.吸收基类的成员
    B.改造基类的成员
    C.删除基类的成员
    D.添加新成员
    2.在派生新类的过程中,(  )
    A.基类的所有成员都被继承
    B.只有基类的构造函数不被继承
    C.只有基类的析构函数不被继承
    D.基类的构造函数和析构函数都不被继承
    3.下面不属于类的继承方式的是(  )
    A.public
    B.private
    C.operator
    D.protected
    4.作用域分辨符是指(  )
    A.?:
    B. ::
    C.->
    D.&&
    5.专用多态是指(  )
    A.重载多态和强制多态
    B.强制多态和包含多态
    C.包含多态和参数多态
    D.参数多态和重载多态
    6.通用多态是指( )
    A.重载多态和强制多态
    B.强制多态和包含多态
    C.包含多态和参数多态
    D.参数多态和重载多态
    7.下面各项中属于不可重载的一组运算符是(  )
    A.+、—、*、/
    B.[ ]、()
    C. ::、.、?:、sizeof、.*
    D.++、——
    8.关于类的构造函数,下面说法不正确的是(  )
    A.构造函数的作用是在对象被创建时将对象初始化为一个特定的状态
    B.构造函数的函数名与类名相同
    C.构造函数可以声明为虚函数
    D.构造函数在对象被创建时被系统自动调用
    9.在C++中,数组类型属于( )
    A.基本数据类型
    B.自定义数据类型
    C.类类型
    D.结构体类型
    10.若有语句:float array[3][5][7];则数组array的元素个数为( )
    A.3
    B.5
    C.7
    D.105
    11.关于虚基类,下面说法正确的是(  )
    A.带有虚函数的类称为虚基类
    B.带有纯虚函数的类称为虚基类
    C.虚基类不能实例化
    D.虚基类可以用来解决二义性问题
    12.关于析构函数,下面说法不正确的是(  )
    A.析构函数用来完成对象被删除前的一些清理工作
    B.析构函数可以声明为重载函数
    C.析构函数可以声明为虚函数
    D.析构函数在对象的生存期即将结束时被系统自动调用
    13.关于虚函数,下列说法不正确的是(  )
    A.虚函数是动态联编的基础
    B.虚函数的定义只能出现在类定义中的函数原形声明中
    C.类的成员函数均可声明为虚函数
    D.虚函数是用virtual关键字声明的非静态成员函数
    14.关于抽象类,下列说法不正确的是(  )
    A.抽象类不能实例化
    B.带有虚函数的类称为抽象类
    C.带有纯虚函数的类称为抽象类
    D.抽象类的作用是为一个类族建立一个公共接口
    15.下列对一维数组a的正确定义是(  )
    A.int n=5,a[n];
    B.int a(5);
    C.const int n=5;int a[n];
    D.int n;cin>>n;int a[n];
    16.下列数组定义语句中,不合法的是(  )
    A.int a[3]={0,1,2,3};
    B.int a[]={0,1,2};
    C.int a[3]={0,1,2};
    D.int a[3]={0};
    17.已知int a[10]={0,1,2,3,4,5,6,7,8,9}和*p=a,则不能表示数组a中元素的式子是(  )。
    A.*a
    B.*p
    C.a
    D.a[p-a]
    18.以下不能对二维数组a进行正确初始化的语句是(  )。
    A.int a[2][3]={0};
    B.int a[][3]={{0,1},{0}};
    C.int a{2}[3]={{0,1},{2,3},{4,5}};
    D.int a[][3]={0,1,2,3,4,5,};
    19.已知int a[][3]={{0,1},{2,3,4},{5,6};{7}};则a[2][1]的值是(  )。
    A.0
    B.2
    C.6
    D.7
    20.已知char *a[]={“fortran”,”basic”,”pascal”,”java”,”C++”};则cout<<a[3]的显示结果是()。
    A.basic
    B.pascal
    C.java
    D.javac++
    21.若用数组名作为调用函数的实参,则传递给形参的是(  )。
    A.数组存储首地址
    B.数组第一个元素的值
    C.数组元素的个数
    D.数组中全部元素的值
    22.判断字符串s1和s2是否相等的正确表达式是( )
    A.s1=s2;
    B.s1==s2;
    C.strcmp(s1,s2)==0;
    D.strcpy(s1,s2);
    23.下面选项中,不是类的成员函数的为(  )
    A.构造函数
    B.析构函数
    C.友元函数
    D.拷贝构造函数
    24.下列关于类的继承描述中,错误的是(  )。
    A.派生类可以访问基类的所有数据成员,调用基类的所有成员函数。
    B.派生类继承了基类的全部属性。
    C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法。
    D.一个基类可以有多个派生类,一个派生类可以有多个基类。
    25.当一个派生类公有继承一个基类时,基类中所有公有成员成为派生类的(  )
    A.public成员
    B.private成员
    C.protected成员
    D.友元
    26.不论派生类以何种方式继承基类,都不能使用基类的(  )
    A.public成员
    B.private成员
    C.protected成员
    D.public和protected成员
    27.在一个派生类中重新定义基类的虚函数时,应使(  )
    A.函数名相同,但参数不同;
    B.函数名相同,但函数返回值类型不同;
    C.函数名、函数返回值类型、参数个数、参数类型和顺序各不相同。
    D.函数名、函数返回值类型、参数个数、参数类型和顺序完全相同。
    28.如果把基类的析构函数声明为虚函数,则(  )
    A.各派生类的析构函数均自动为虚函数;
    B.派生类的析构函数与基类析构函数不同名,故不是虚函数;
    C.每个派生类的析构函数都必须声明为虚函数;
    D.只有基类的析构函数是虚函数。
    29.当一个派生类私有继承一个基类时,基类中所有公有成员和保护成员成为派生类的()
    A.public成员
    B.private成员
    C.protected成员
    D.友元
    30.当一个派生类保护继承一个基类时,基类中所有公有成员和保护成员成为派生类的()
    A.public成员
    B.private成员
    C.protected成员
    D.友元
    31.派生类的对象可以访问(  )。
    A.公有继承的基类的公有成员
    B.公有继承的基类的保护成员
    C.公有继承的基类的私有成员
    D.保护继承的基类的公有成员
    32.在创建派生类对象时,构造函数的执行顺序是( )
    A.对象成员构造函数、基类构造函数、派生类本身的构造函数
    B.派生类本身的构造函数、基类构造函数、对象成员构造函数
    C.基类构造函数、派生类本身的构造函数、对象成员构造函数
    D.基类构造函数、对象成员构造函数、派生类本身的构造函数
    33.在C++中,要实现动态联编,必须使用( )调用虚函数。
    A.类名
    B.对象名
    C.基类指针
    D.派生类指针
    34.下列函数中,可以作为虚函数的是(  )。
    A.普通函数
    B.构造函数
    C.成员函数
    D.析构函数
    35.下面函数原型声明中,声明fun为纯虚函数的是(  )。
    A.void fun()=0;
    B.virtual void fun()=0;
    C.virtual void fun();
    D.virtual void fun(){ };
    36.下列描述中,不正确的是( )。
    A.虚函数是没有实现的函数
    B.纯虚函数的实现在派生类中定义
    C.抽象类是具有纯虚函数的类
    D.抽象类指针可以指向不同的派生类对象
    37.一个类可以有多个构造函数,这些构造函数之间的关系是( )
    A.重载
    B.重复
    C.拷贝
    D.覆盖
    38.下列关于构造函数的说法不正确的是(  )
    A.一个类中有且仅有一个构造函数。
    B.构造函数在创建类的对象时被自动执行。
    C.构造函数没有函数类型。
    D.类的构造函数的函数名必须与该类的类名相同。
    39.下列关于析构函数的说法不正确的是(  )
    A.一个类有且仅有一个析构函数。
    B.析构函数可以有形参。
    C.析构函数没有函数类型。
    D.析构函数在类的对象消失时被自动执行。
    40.下列各项不属于类型兼容规则的是(  )
    A.基类的对象可以赋值给派生类对象
    B.派生类的对象可以赋值给基类的对象
    C.派生类的对象可以初始化基类的引用
    D.派生类对象的地址可以赋值给指向基类的指针
    41.下列对于int *pa[5]的描述,正确的是(  )。
    A.pa是一个指向数组的指针,所指向的数组是5个int型元素
    B.pa是一个指向某数组中的第5个元素的指针,该元素是int型变量
    C.pa[5]表示某个数组的第5个元素的值
    D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
    42.执行下列语句后的输出结果是( )。
    int hot=100;
    int &rad=hot;
    hot+=100;
    cout<<rad<<endl;
    A.0
    B.100
    C.200
    D.300
    43.下列对结构及其变量定义错误的是:(  )
    A.struct MyStruct{
    int num;
    char ch;
    };
    MyStruct my;
    B.struct MyStruct{
    int num;
    char ch;
    }my;
    C. struct{
    int num;
    char ch;
    }
    my;
    D.struct{
    int num;
    char ch;
    };
    struct my;
    44.下列关于指针运算的描述错误的是:(  )
    A.在一定条件下,两个指针可以相加
    B.在一定条件下,两个指针可以进行关系运算
    C.在一定条件下,指针可以为空
    D.在一定条件下,两个指针可以相互赋值
    45.下面关于类的对象的描述中,不正确的是( )
    A.一个对象只能属于一个类
    B.对象是类的实例
    C.一个类只能有一对象
    D.类和对象的关系与数据类型和变量的关系类似
    47.若有如下声明:
    class A{ int a;};
    则a是类A的(  )
    A.公有数据成员
    B.公有成员函数
    C.私有数据成员
    D.私有成员函数
    48.在类外定义成员函数时,需要在函数名前加上(  )
    A.对象名
    B.类名
    C.作用域运算符
    D.类名和作用域运算符
    49.一个类的友元函数可以访问该类的(  )
    A.私有成员
    B.公有成员
    C.保护成员
    D.私有成员、公有成员和保护成员
    50.下列关于派生类的描述中,不正确的是(  )
    A.派生类除了包含它自己的成员外,还包含基类的成员
    B.派生类中继承的基类的成员的访问权限在派生类中保持不变
    C.派生类只少有一个基类
    D.一个派生类可以作为另一个派生类的基类。

    》》》》》》》》》》》》》》》》》》

  • 相关阅读:
    遇到的相关问题总结
    AI测试相关文章
    常用模块文档地址
    09-微服务接口:怎么用Mock解决混乱的调用关系
    03-思维方式:用一个案例彻底理解接口测试的关键逻辑
    1-基础:跳出细节看全局,接口测试到底是在做什么?
    21-Python并发编程之Futures
    使用原生php读写excel文件
    在for、foreach循环体中添加数组元素
    eval函数的坑
  • 原文地址:https://www.cnblogs.com/webph/p/5544190.html
Copyright © 2011-2022 走看看