一起答

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

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

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

  • 单项选择题
  • 填空题
  • 改错题
  • 完成程序题
  • 程序分析题
  • 程序设计题
部分试题预览
  1. 给出下面程序的输出结果

    #include ﹤iostream﹥

    using namespace std;

    void main( )

    {

    int a[ ]= { 10,20,30,40 } , * pa = a;

    int * &pb =pa;

    pb++;

    cout﹤﹤*pa﹤﹤endl;

  2. 在字符串类string中实现一个判断函数,该函数功能是统计某一字符串类对象(仅有单词和空格组成)有多少个单词,同时保存所有单词在字符串中的起始地址(设该字符串不超过100个单词)

    #include ﹤iostream.h﹥

    #include ﹤string﹥

    class str{

    string s; int n, a[100], j, l;

    public: str(string &a){s=a; n=0; j=0; l=0;}

    ....test(....);

    int *geta( ){return a;}

    };

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

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

    #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, b;

    a.setx(89);

    b=a;

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

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

    }

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

    #include ﹤iostream﹥

    using namespace std;

    class base

    {

    int x;

    public:

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

    int getx( ){return x;}

    };

    void main( )

    {

    int *p;

    base a;

    a.setx(15);

    p=new int(a.getx( ));

    cout﹤﹤*p;

    }

  5. 给出下列程序的输出结果

    #include ﹤iostream﹥

    #include ﹤complex﹥

    #include ﹤string﹥

    using namespace std;

    void main( )

    {

    complex ﹤int﹥ fs1 ( 5, 6) ;

    complex ﹤float﹥ fs2( 7.5, 8.5) ;

    string str1 ("real is:") ;

    string str2 (" image is:") ;

    cout﹤﹤ str1﹤﹤ fs1. real( )﹤﹤ ', ' ﹤﹤ str2﹤﹤ fs1. imag( ) ﹤﹤ endl;  cout﹤﹤ str1﹤﹤ fs2. real( ) ﹤﹤ ', '﹤﹤ str2﹤﹤ fs2. imag( ) ﹤﹤ endl;

    }

  6. 下面程序给出了一个从普通的基类派生出一个模板类的方法,在下划线处填上正确的部分(答案写在“答题纸”上)。

    #include ﹤iostream﹥

    using namespace std;

    class Base

    {

    public:

    Base(int a){x=a;}

    int Getx( ){return x;

    void showb( ){cout﹤﹤x﹤﹤endl;

    private:

    int x;

    };

    template﹤class T﹥

    class derived: public Base

    {

    public:

    derived(T a, int b): _________

    { y=a; }

    T Gety( ){ return y; }

    void showd( ){cout﹤﹤y﹤﹤" "﹤﹤Getx( )﹤﹤endl;

    private:

    _________

    };

    void main( )

    { Base A(458);

    A. showb( );

    derived ﹤char *﹥B("It is",1357);

    B.showd( );

    }

  7. 下面程序的运行结果如下:  20,22  60,22

    将下划线处缺少的部分写在“答题纸”上。源程序如下:

    #include ﹤iostream﹥

    using namespace std;

    class base

    {

    private:

    const int a;

    static const int b;

    public:

    base(int);

    void Show( );

    };

    _________=22;

    _________ : a(i){ } //初始化

    void base:: Show( )

    { cout﹤﹤a﹤﹤","﹤﹤b﹤﹤endl; }

    void main( )

    {

    base a1(20), a2(60);

    a1.Show( );

    a2.Show( );

    }

  8. 将下划线处缺少的部分写在“答题纸’’上。源程序如下:

    #include ﹤iostream﹥

    #include ﹤fstream﹥

    using namespace std;

    void main( )

    {

    _________ myf("aB.txt"); //定义输出流文件,并初始化

    _________﹤﹤"This ia a TXT file"; //向文件输入字符串

    myf.close( );

    }

  9. 在下面程序中的下划线处填上适当的程序(答案写在“答题纸”上),使程序的输出结果如下:  67,90  源程序如下:

    #include ﹤iostream﹥

    using namespace std;

    class base

    {

    pnvate:

    int x,y;

    priblic:

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

    void show(base *p);

    };

    inline void base::show( _________ )

    {

    cout﹤﹤p-﹥x﹤﹤","﹤﹤p-﹥y﹤﹤endl;

    }

    void print(base *p)

    {

    p-﹥show(p);

    }

    void main( )

    {

    base a;

    a.initxy(67,90);

    print( _________ );

    }

  10. #include ﹤iostream.h﹥

    class test{

    private: int x;

    public: test(int a){x=a;}

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

    void get( ){cout﹤﹤x﹤﹤endl;

    };

    class test1: public test{

    private: int x;

    public: test1(int a){x=a;}

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

    void get( ){cout﹤﹤x﹤﹤endl;

    };