一起答

自考C++程序设计2012年10月试题及答案解析

  • 卷面总分:100分
  • 浏览次数:0
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:2次
  • 作答时间:150分钟
试卷简介

自考C++程序设计2012年10月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。

  • 单项选择题
  • 填空题
  • 改错题
  • 完成程序题
  • 程序分析题
  • 程序设计题
部分试题预览
  1. 设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。解:Bank类包括私有数据成员top(当前账指针),date(日期),money(金额),rest(余额)和sum(累计余额)。有三个成员函数bankin( )(处理存入账),bankout( )(处理取出账)和disp( )(输出明细账)请完成函数的实现。  本题程序如下:  #include ﹤stdio.h﹥

    #include ﹤string.h﹥

    #define Max 100

    class Bank

    {

    int top;

    char date[Max][10]; //日期

    int money[Max]; //金额

    int rest[Max]; //余额

    static int sum; //累计余额

    public:

    Bank( ){top=0;}

    void bankin(char d[ ],int m){…}

    void bankout(char d[ ],int m){…}

    void disp( ){…};

    } ;

  2. 写出此程序的执行结果:

    #include ﹤iostream.h﹥

    template﹤class T﹥

    T func(T x,T y){

    if(sizeof(T)==8)

    return x+y;

    else

    return x*y;

    }

    void main( ){

    cout ﹤﹤func(8,5)﹤﹤":"﹤﹤func(5.0,10.0)﹤﹤endl;

    int d; cin﹥﹥d;

    }

  3. 下面程序中A是抽象类,其输出是什么?

    #include ﹤iostream.h﹥

    class A{

    public:

    virtual void printMe( ){cout﹤﹤"This is class A printing. "﹤﹤endl;};

    } ;

    class B: public A{

    public:

    void printMe( ) {cout ﹤﹤ "This is class B printing. "﹤﹤endl;}

    } ;

    class C: public B{

    public:

    void printMe( ) {cout ﹤﹤"This is class C printing. "﹤﹤endl;}

    } ;

    void print(A a)

    {

    a.printMe( );

    }

    void main( )

    {

    B b;

    C c;

    print(b); print(c);

    }

  4. 在下面程序中的横线处填上适当内容,使程序完整

    #include﹤iostream.h﹥

    _________

    class A

    {

    int i;

    public:

    int set(B&);

    int get( ){return i;}

    A(int x){i=x;}

    } ;

    class B

    {

    int i;

    public:

    B(int x){i=x;}

    _________ A;

    } ;

    int A:: set(B&b)

    {

    return i=b.i;

    }

    void main( )

    {

    A a(1);

    B b(2);

    cout﹤﹤a.get( )﹤﹤",";

    a.set(b);

    cout﹤﹤a.get( )﹤﹤endl;

    }

  5. 在下面程序横线处填上适当内容,使程序执行结果为:  n=2,sum=2  n=3,sum=5  n=5,sum=10  程序如下:

    #include ﹤iostream.h﹥

    class Test

    {

    int n;

    static int sum;

    public:

    Test(int x){n=x;}

    void add( ){_________;}

    void disp( )

    {

    cout﹤﹤{"n="﹤﹤n﹤﹤",sum="﹤﹤sum﹤﹤endl;

    }

    } ;

    int _________=0;

    void main( )

    {

    Test a(2),b(3),c(5);

    a.add( );

    a.disp( );

    b.add( );

    b.disp( );

    c.add( );

    c.disp( );

    }

  6. 在下面程序横线处填上适当内容,使程序执行结果为:  n=30  程序如下:  #include ﹤iostream.h﹥

    template ﹤class T﹥

    class Test

    {

    T n;

    public:

    Test( ){ }

    Test(T i){n=i;}

    Test﹤T﹥_________(const Test﹤T﹥&s)

    {

    static Test﹤T﹥temp;

    _________;

    return temp;

    }

    void disp( ){cout﹤﹤"n="﹤﹤n﹤﹤endl;}

    } ;

    void main( )

    {

    Test ﹤int﹥t1(4),t2(5),t3;

    t3=t1+t2;

    t3.disp( );

    }

  7. 在下面程序横线处填上适当内容,使程序执行结果为:40:15  程序如下:  #include ﹤iostream.h﹥

    template ﹤class T﹥

    T func(T x,T y){

    if(sizeof(T)==8)

    return _________;

    else

    return _________;

    }

    void main( ){

    cout ﹤﹤func(8, 5)﹤﹤":"﹤﹤func(5.0, 10.0)﹤﹤endl;

    int d; cin ﹥﹥d;

    }

  8. 在下面程序横线处填上适当内容,使程序执行结果为:  x=0,y=0  x=1,y=2  x=10,y=20  程序如下:

    #include ﹤iostream.h﹥

    class Sample

    {

    int x, y;

    public:

    Sample( ){_________}

    Sample(_________){x=a;y=b;}

    void disp( )

    {

    cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl;

    }

    };

    void main( )

    {

    Sample s1, s2(1, 2), s3(10, 20);

    Sample *pa[3]={&s1, &s2, &s3};

    for(int i=0;i﹤3;i++)

    pa[i]-﹥disp( );

    }

  9. #include﹤iostream.h﹥

    class Student{

    int x=0,y=0;

    public:

    Student( ){

    x=1;  y=1;

    }

    Student(int a,int b){

    x=a;

    y=b;

    }

    void get( ){

    cout﹤﹤x﹤﹤" "﹤﹤y﹤﹤endl;

    }

    } ;

    int main( ){

    Student student(5,6);

    student.get( );

    }

  10. #include ﹤iostream.h﹥

    class Base{

    public:virtual void fun( )=0;

    } ;

    class Test:public Base{

    public:virtual void fun( ){cout﹤﹤"Test.fun="﹤﹤endl;}

    } ;

    void main( ){

    Base a;

    Test *p; p=&a;

    }