一起答

自考C++程序设计模拟试题及答案(五)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 编写函数模板voidchange(t&i,T&),能够实现整型数据、实型和字符串的交换,并编写测试的主函数。

  2. 给出下面程序的输出结果。

    #include

    class Test

    {int x,y;

    public:

    Test(int i,int j=0)

    {x=i;y=j;}

    int get(int i,int j)

    {return i+j;}

    };

    void main()

    {Test t1(2),t2(4,6);

    int (Test::*p)(int,int=10);

    p=Test::get;

    cout<<(t1.*p)(5)<

    Test*p1=&t2;

    cout<<(pl->*p)(7,20)<

    }

  3. 给出下面程序的输出结果。

    #include

    class A

    {public:

    A()

    Cout<<"A构造函数\n";fun();}

    virtual void fun()

    {cout<<"A::fun()函数\n";}

    };

    class B:public A

    {public:

    B()

    {cout<<"B构造函数\n";fun();}

    void fun(){cout<<"B::fun()calle函数\n";}

    };

    void main()

    {B d;}

  4. 下面程序中Base是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:

    Der1 called!

    Der2 called!

    #include

    class Base

    {public:

    ____________;

    };

    class Der1:public Base

    {public:

    void display(){cout<<"Der1 called!"<

    };

    class Der2:public Base

    {public:

    void display(){cout<<"Der2 called!"<

    };

    void fun(____________)

    {p->display();}

    void main()

    {Der1 b1;

    Der2 b2;

    Base*p= &bl;

    fun(p);

    p= &b2;

    fun(p);

    }

  5. 运行结果如下

    AAAbBB

    BB

    CCC

    程序如下:

    #include

    void main()

    {char ch[3][4]="AAA","BB","CCC",(*q)[4]=ch,*p;

    //ch是二维数组,q是指向一维数组的指针,并且一维数组每行只有4个字符

    //q取得二维数组ch首地址

    inti;

    _________

    *p='b';

    _________

    for(i=0;i<3;i++)

    cout<

    }

  6. 在下划线处填上缺少的部分。

    #include

    class A

    {int a,b;

    public:

    _________//定义构造函数,使参数i和的默认值为0

    {a=i;b=j;}在函数体中用i初始化a,用j初始化b

    };

    main()

    {A*p;

    _________;//调用带参构造函数生成由p指向的动态对象

    //使a和b成员分别被初始化为4和5

    }

  7. 下面程序运行的结果是:5+10=15。

    #include

    class Test

    {private:

    int x,y;

    Public:

    Test(){x=y=0;}

    void Setxy(int x, int y){__________}

    void show(){__________}

    };

    void main()

    {Test ptr;

    ptr.Setxy(5,10);

    ptr.show()

    }

  8. #include

    class Add

    {private:

    int sum;

    public:

    void plus(int,int);

    };

    void Add::plus(int x,int y)

    {sum=x+y;

    void main()

    {Add add;

    {add.plus(2,3);

    cout<

    }

  9. 在下面程序的横线处填上适当内容,使程序执行结果为:

    S=2

    S=5

    S=9

    #include

    void sum(int i)

    {static int s;

    ____________

    cout<<"s="<

    }

    void main(void)

    {int i;

    for(i=0;____________)

    sum(i);

    }

  10. #include

    class A

    {int i;

    public:

    virtual void fun()=0;

    A(int a)

    {i=a;}

    };

    class B: public A

    {int j;

    public:

    void fun()

    {cout<<"B::fun()\n";}

    B(int m,int n=0:j(n){};

    };

    void main()

    {A*pa; 

    B b(7);

    pa=&b;

    }

  11. #include

    class test{

    private:

    int x,y;

    public:

    void test1(int a,int b){x=a;y=b;}

    int max();

    };

    int test:max()

    {if(x>y)return x;

    else return y;}

    void main()

    test a;

    a.testl(1,3);

    cout<

    }

  12. #include

    void f(int*a,int n)

    {int i=0,j=0;

    int k=0;

    for(;i

    {k=a[i]:

    a[i]=a[n-i-1];

    a[n-i-1]=k;

    }

    }

    void show(int a[],int n)

    {for(int i=0;

    cout<

    cout<

    }

    void main()

    {int p[5];

    int i=0, n=5;

    for(;i<5;i++)

    {p[i]=i;}

    f(*p,n);

    show(p,n);

    }

  13. cout是C++中的标准输出流对象,它通常代表_________。

  14. #include

    using namespace std;

    class Date;

    class Time

    {public:

    Time(int h, int m, int s)

    {hour=h;minute=m;sec=s;}

    void show(Date& d);

    private

    int hour,minute,sec;

    };

    class Date

    {public:

    Date(int m,int d,int y)

    {month=m;day=d;year=y;}

    void Time::show(date&):

    private:

    int month,day,year;

    };

    void Time::show(Date& d)

    {cout<

    cout<

    }

    void main()

    {Time(9,23,50);

    Date d1(12,20,2010);

    t1.show(d1);

    }

  15. C++的_______允许一个派生类继承多个基类。

  16. C++语言提供的基本控制结构可以分为3种类型:顺序结构、选择结构和_______。

  17. 结构体中,没有使用private定义的成员函数,默认为_______。

  18. 在程序中执行int*a= new int之后,若a为空指针,则表明_________。

  19. this指针始终指向调用成员函数的_______。

  20. 派生类的成员一般分为两部分,一部分是_______,另一部分是自己定义的新成员。

  21. 在编译指令中,宏定义使用__________指令。

  22. 类的私有成员只能被它的成员函数和________访问。

  23. 带有纯虚函数的类称为抽象类,它只能作为_________来使用。

  24. 在C++中,利用向量类模板定义一个具有2个double的向量E,其元素均被置为0,5,实现此操作的语句是_________。

  25. 通过一个对象调用虚函数时,C++系统对该调用采用_______。

  26. 类是用户定义的类型,具有类类型的变量称作__________。

  27. 在C++中,编译时的多态性是通过________和模板体现的。

  28. 复制构造函数使用_________作为形式参数。

  29. 至少包含一个_______函数的类称为抽象类。

  30. 预处理命令以__________符号开头。

  31. 类的继承是指派生类继承基类的数据成员和_______。

  32. 对已有的运算符赋予多重含义,使同一运算符能够对不同类型的数据进行操作,称为_______。

  33. 下面程序运行结束后,k的值为_______。 

     #include

    void main() 

    {int i,j,k;for(i=0,j=10;i<=j;i++,j--) 

    k=i+j:cout<

  34. 下列不是描述类的成员函数的是()

    • A.构造函数
    • B.析构函数
    • C.友元函数
    • D.拷贝构造函数
  35. 使用输入输出操控符selw,可以控制、intmsum(,sum(20,100));()

    • A.输出精度
    • B.输出宽度
    • C.对齐方式
    • D.填充字符
  36. 假定一个类的构造函数为“A(int i=4,int j=0){a=i;b=j;}”,则执行“A x(1);"语句后,x.a和x.b的值分别为()

    • A.1和0
    • B.1和4
    • C.4和0
    • D.4和1
  37. 在C++中,源文件经编译后生成的文件扩展名为()

    • A..epp
    • B..h
    • C..lib
    • D..obj
  38. 设有函数模板templateQ Sum(Q x, Q y){ return(x)+(y);}则下列语句中对该函数模板的使用错误的是()

    • A.Sum(10,2);
    • B.um(5.0,6.7);
    • C.Sum(15.2f,16.0f);
    • D.Sum("AB", "CD");
  39. 在下列成对的表达式中,运算符“/”的意义相同的一对是()

    • A.8/3和8.0/3.0
    • B.8/3.0和8/3
    • C.8.0/3和8/3
    • D.8.0/3.0和8.0/3
  40. 下列有关继承和派生的叙述中,正确的是

    • A.派生类不能访问基类的保护成员()
    • B.作为虚基类的类不能被实例化
    • C.派生类应当向基类的构造函数传递参数
    • D.虚函数必须在派生类中重新实现
  41. 若公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()

    • A.私有成员
    • B.公有成员
    • C.保护成员
    • D.保护成员或私有成员
  42. 有如下程序段:int*p,a[7]={-5,0,4,2,7,1};p=a+6;执行该程序段后,*p的值()

    • A.4
    • B.2
    • C.1
    • D.0
  43. 对于任意一个类,析构函数的个数最多为()

    • A.0
    • B.1
    • C.2
    • D.3
  44. 类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将()

    • A.调用类A中的函数func()
    • B.调用类B中的函数func()
    • C.根据p所指的对象类型而确定调用类A中或类B中的函数func()
    • D.既调用类A中函数,也调用类B中的函数
  45. 函数调用func((exp1,exp2),(exp3,exp4,ex5))中所含实参的个数为()

    • A.1
    • B.2
    • C.4
    • D.5
  46. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()

    • A.x.a
    • B.x.a()
    • C.x->a
    • D.(*x).a()
  47. 使用函数 setprecision(int n)必须包含的头文件是()

    • A.iostream
    • B.fstream
    • C.ifstream
    • D.iomanip
  48. 下列哪个编译指令不属于条件编译指令()

    • A.#if
    • B.#else
    • C.#endif
    • D.#error
  49. 关于动态联编的描述中,错误的是()

    • A.动态联编是以虚函数为基础的
    • B.动态联编运行时确定所调用的函数代码
    • C.动态联编调用函数操作是指向对象的指针或对象引用
    • D.动态联编是在编译时确定操作函数
  50. 关于类的析构函数调用的说法正确的是()

    • A.类创建时
    • B.创建对象时
    • C.删除对象时
    • D.不自动调用
  51. 下列关于向量的叙述,不正确的是()

    • A.向量的长度可变
    • B.向量有返回无需再次分配内存就能容纳的对象个数的成员函数capacity()
    • C.如果数量已满,当增加一个元素时,向量成员函数capacity()的长度自动增加
    • D.如果数量已满,当需要增加一个元素时,capacity()的长度每次自动增加一个
  52. 设函数 void inc(int)的功能是将形参加1,如有型变量int i=10;,则执行inc(i)后,的值为()

    • A.9
    • B.10
    • C.1
    • D.12
  53. 使用下列哪个流格式控制符可设置转换基数为八进制()

    • A.dec
    • B.oct
    • C.hex
    • D.endl