一起答

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

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

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

  • 单项选择题
  • 填空题
  • 改错题
  • 完成程序题
  • 程序分析题
  • 程序设计题
部分试题预览
  1. 定义队列类模板queue(先进先出),队列的大小由使用者确定。要求该类模板对外提供如下二种基本操作:(1)inser(入队列)(2)front(出队列),用数组来实现

    #include ﹤ iostream ﹥

    using namespace std;

    template ﹤ class T, int size ﹥

    class queue {

    T x [ size ] ;

    int current, front, rear;

    public:

    queue ( ) { current = 0; front = 0; rear = 0;}

    ....insert(....);

    ....front(....);

    };

    请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

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

    #include ﹤ iostream ﹥

    using namespace std;

    template ﹤ class T ﹥

    T F(T x)

    {

    return x ﹥ 5;

    }

    void main( )

    {

    int a = 15;

    cout ﹤﹤ F(a) ﹤﹤"\n";

    double b = - 5.8976;

    cout ﹤﹤ F(b) ﹤﹤" \n";

    cout ﹤﹤ F(5) ﹤﹤" \n";

    }

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

    #include ﹤ iostream ﹥

    using namespace std;

    class A

    {

    private: int X, Y;

    public: A ( int myx, int myy) { X = myx; Y = myy ;}

    void show ( ) { cout ﹤﹤ "X =" ﹤﹤ X ﹤﹤ " Y = " ﹤﹤ Y ﹤﹤ endl;}

    };

    class B : public A

    {

    private : int H, W;

    public: B( int myx,int myy,int myh,int myw): A( myx, myy)[H=myh;W=myw;}

    void show ( ) { cout ﹤﹤ "H = " ﹤﹤ H ﹤﹤ " ; W = " ﹤﹤ W ﹤﹤ endl; }

    };

    void main( )

    {

    B d(1,2,3,4) ;

    d. show ( ) ;

    }

  4. 下列程序将x,y,z按从小到大的顺序排列并将结果返回给实参,在横线处填入正确的内容。template ﹤ class T ﹥

    void order(_________)

    {

    _________;

    if(x ﹥y) {a =x;x =y;y =a;}

    if(y ﹥z) {a =y;y =z;z =a;}

    if(x ﹥y) {a =x;x =y;y =a;}

    }

  5. 在下面程序的下划线处填上正确的语句。

    #include ﹤ iostream ﹥

    using namespace std;

    template ﹤ class T ﹥

    T f( T&a, T&b, int n)

    {

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

    a[i] =a[i] +b[i];

    return a ;

    }

    void main( )

    {

    int a[5] ={1,2,3,4,5};

    int b[5] = { 100,200,3,4,51 , * p;

    for(int i =0; i ﹤2; i ++)p=_________ //调用函数f

    for( ; p ﹤a +5; p ++ )

    cout﹤﹤_________﹤﹤endl;

    }

  6. 完成下面程序中的show函数的定义,使其运行结果如下:In baseIn derived程序清单如下:

    #include ﹤ iostream ﹥

    using namespace std;

    class base

    {

    pubhc :

    virtual void print( )

    {

    cout ﹤﹤ "In base" ﹤﹤ endl;

    }

    };

    class derived: public base

    {

    public :

    void print( ) { cout ﹤﹤ "In derived" ﹤﹤ endl; }

    };

    void show(base * pb, void (base:: * pf) ( ) )

    {

    _________

    }void main( )

    {

    base b;

    derived d;

    show ( &b, base::print);

    show ( &d, base::print);

    }

  7. 在下面程序的下划线处填上正确的数据类型,保证程序具有如下输出结果:

    0

    17

    17,17,17

    源程序如下:

    #include ﹤ iostream ﹥

    using namespace std;

    class base{

    public:

    ______________num;

    base ( ) { }

    };

    int base::num = 0;

    void main( ){

    cout ﹤﹤ base::num ﹤﹤ endl;

    _______________* p=&base::num;

    *p=17;

    cout ﹤﹤ base::num ﹤﹤ end1;

    base a,b;

    cout ﹤﹤ *p﹤﹤"," ﹤﹤ a. num ﹤﹤ "," ﹤﹤b. num;

    }

  8. 在下面横线处填上正确的内容,完成类的定义。

    class Base

    {

    int x;

    static const int b;

    public:Base( int, int);

    const int &a;

    };

    ______________b =15;

    Base::Base(int i,int j): ___________{ }

  9. #include ﹤ iostream. h ﹥

    void main( ) {

    string str1 (" we are here" );

    cout ﹤﹤ str1 ﹤﹤ endl;

    }

  10. #include ﹤ iostream. h ﹥

    class point

    {

    private: float x, y ;

    public: f( float a, float b) { x = a; y = b ; }

    f( ) {x=0; y=0;}

    void getx( ) { cout ﹤﹤ x ﹤﹤ endl; }

    void gety ( ) { cout ﹤﹤ y ﹤﹤ endl ; }

    }

    class pointl

    {

    private: float x, y;

    public: f( float a, float b) { x = a; y = b ; }

    f( ){x=1; y=1;}

    void getx( ) {cout ﹤﹤x ﹤﹤endl;}

    void gety( ) {cout ﹤﹤y ﹤﹤endl;}

    };

    main( ) {

    point a;

    a.f( );

    a. getx( );

    a. gety( );

    }