一、选择题
1. C++语言属于( C   )
A 自然语言    B 机器语言      C)面向对象语言      D 汇编语言
2. 下面选项中不属于面向对象程序设计特征的是(C)
A)继承性  B)多态性  C)相似性 D)封装性
3. 可用作C++语言用户标识符的一组标识符是( B )
A void    define    +WORD            B a3_b3    _123    YN
C for      -abc      Case            D 2a      DO      sizeof
4. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
A 0      B 4      C 8      D 6
5. 下列情况中,哪一种情况不会调用拷贝构造函数   B   ?
A)用派生类的对象去初始化基类对象时
B)将类的一个对象赋值给该类的另一个对象时
C)函数的形参是类的对象,调用函数进行形参和实参结合时
D)函数的返回值是类的对象,函数执行返回调用者时
6. 以下哪一关键字可用于重载函数的区分(  C   
Aextern        Bstatic        Cconst        Dvirtual
7. 下列有关数组的叙述中,正确的是(   B  
AC++中数组的存储方式为列优先存储
B)数组名可以作为实参赋值给指针类型的形参
C)数组下标索引从1开始,至数组长度n结束
D)数组指针的语法形式为:类型名 *数组名[下标表达式];
8. 下列有关继承和派生的叙述中,正确的是( C  )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
9. 实现运行时多态的机制是(    A
A)虚函数        B)重载函数        C)静态函数        D)模版函数
10. 若有下面的函数调用:
fun(a+b, 3, max(n-1, b));
其中实参的个数是( A   
A3        B4        C5        D6
11. 下列关于this指针的说法正确的是(  B   
Athis指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
Cthis指针是指向虚函数表的指针
Dthis指针是指向类的函数成员的指针
12. 在下列关于C++函数的叙述中,正确的是(  C   
A)每个函数至少要有一个参数    B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明    D)函数不能自己调用自己
13. 下列运算符中,不能重载的是   C   
A&&        B!=        C.        D->
14. 下面程序的输出结果是(  B 
#include <iostream>
using namespace std;
int i = 0;
int fun(int n)
{
    static int a = 2;
    a++;
    return a+n;
}
void main()
{
    int k = 5;
    {
        int i = 2;
        k += fun(i);
    }
    k += fun(i);
    cout << k;
}
A13        B14        C15        D16
15. 下面的程序段的运行结果为(  D   
char str[] = "job", *p = str;
cout << *(p+2) << endl;
A98      B)无输出结果    C)字符’b’的地址    D)字符’b
16. 下面程序的输出结果是( 
#include <iostream>
using namespace std;
class A
{
析构函数的定义  public:
      A (int i) { x = i; }
      void dispa () { cout << x << ,; }
  private :
      int x ;
};
class B : public A
{
  public:
      B(int i) : A(i+10) { x = i; }
      void dispb() { dispa(); cout << x << endl; }
  private :
      int x ;
};
void main()
{
    B b(2);
    b.dispb();
}
A10,2        B12,10        C12,2        D2,2
17. 下面程序的输出结果是(  C  ?
#include <iostream>
using namespace std;
class Base
{
  public:
      Base(int i) { cout << i; }
      ~Base () { }
};
class Base1: virtual public Base
{
  public:
      Base1(int i, int j=0) : Base(j) { cout << i; }
      ~Base1() {}
};
class Base2: virtual public Base
{
  public:
      Base2(int i, int j=0) : Base(j) { cout << i; }
      ~Base2() {}
};
class Derived : public Base2, public Base1
{
  public:
      Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a)
    { cout << b; }
  private:
      Base2 mem2;
      Base1 mem1;
};
void main() { Derived objD (1, 2, 3, 4); }
A134122        B123412        C14302012        D143212
18. 下面程序的输出结果是(  C   
#include <iostream>
using namespace std;
class Base
{

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。