一起答

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

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

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

  • 单项选择题
  • 填空题
  • 改错题
  • 完成程序题
  • 程序分析题
  • 程序设计题
部分试题预览
  1. 给定两个字符串对象S,P(P的长度小于S),实现一判断函数find,检测S是否完全包含P(串P是S的子串),若包含则返回P第一个字符在串S中的起始地址,否则返回-1。

    #include ﹤ iostream.h ﹥

    #include ﹤string﹥

    class str{

    string s,p;

    public:

    str(string&a,string&b){s=a;p=b;}

    ...find(...);

    };

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

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

    #include ﹤ iostream﹥

    using namespace std;

    class point{

    int num;

    public:

    point(int n)

    {cout﹤﹤"Initializing"﹤﹤n﹤﹤endl; num=n; }

    } ;

    void main( )

    {

    point A(88);

    cout﹤﹤"Entering main"﹤﹤endl;

    }

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

    #include ﹤ iostream﹥

    using namespace std;

    void fun( )

    {

    static int n=25;

    n--;

    cout﹤﹤"n="﹤﹤n﹤﹤endl;

    }

    void main( )

    {

    for(int i=0;i﹤=2;i++)fun( );

    }

  4. 在下面程序的下划线处填上正确的语句,使其得到下面的输出结果。202122a[0]=20a[1]=21a[2]=22程序清单如下:

    #include ﹤ iostream ﹥

    using namespace std;

    class base{

    private:

    int x;public:

    void setx(int a){x=a;}

    int getx( ){return x;}

    } ;

    void main( )

    {

    base a[3],*p;a[0].setx(20);

    a[1].setx(21);

    a[2].setx(22);

    for(p=a; p﹤a+3; p++)

    _________

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

    _________

    }

  5. 在下面程序中的下划线处填上适当的程序,使程序的输出结果如下:x=2,y=3源程序如下:

    #include ﹤ iostream.h ﹥

    class Sample{

    int x,y;

    public:

    Sample( ){x=y=0;}

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

    void disp( )

    {

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

    }

    } ;

    void main( )

    {

    Sample s(2,3), _________

    p-﹥disp( );

    }

  6. 完成下面类中成员函数的定义。

    class test

    {

    private:

    int n1;

    float f1;

    public:

    test(int,float f);

    test(test&);

    };

    test::test( _________ )

    {n1=n; f1=f;}

    test:: test(test&t)

    {n1=t.n1;

    f1=_________; }

  7. 在下面程序中的下划线处填上适当的程序,使程序的输出结果如下:x=1,y=2x=30,y=40源程序如下:

    #include ﹤ iostream﹥

    class Sample{

    int x,y;

    public:

    Sample( ){x=y=0;}

    Sample(int i,int j){x=i;y=j;}

    void copy(Sample & s);

    void setxy(int i,int j){x=i;y=j;}

    void print( ){cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl;

    };

    void Sample::copy ( _________ )

    {

    x=s.x; y=s.y;

    }

    void func( _________ )

    {

    s1.setxy(10,20);

    s2.setxy(30,40);

    }

    void main( )

    {

    Sample p(1,2),q;

    q.copy(p);

    func(p,q);

    p.print( );

    q.print( );

    }

    Sample&s

    }

  8. 在下面程序中的下划线处填上适当的语句,使程序的输出结果如下:11,7711,77源程序如下:

    #include ﹤ iostream﹥

    using namespace std;

    class base{

    private:

    int x,y;

    public:

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

    void show( )

    { _________ }

    } ;

    void main( )

    {

    base a,b;

    _________

    a.show( );

    b=a;b.show( );

    }

  9. #include ﹤ iostream. h ﹥

    class point{

    int x;public: void init ( int a) { x = a; }

    int getx( ){ return x;}

    void setx ( int a) { x = a; }

    };

    void main( ){point a;

    a. init (20,30) ;

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

    }

  10. #include ﹤ iostream. h ﹥

    class f{

    private: float x, y;

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

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

    void move(float a,float b){x =x +a; y =y-b;}

    void get ( ) { cout ﹤﹤ x ﹤﹤' '﹤﹤ y ﹤﹤ endl; }

    };

    void main( ){

    f *p,a;

    a. f1(1.6,3.8) ;

    p=&a;p. get( ) ;

    }