一起答

2013年9月全国计算机等级《二级C++》考前冲刺试卷三

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

2013年9月全国计算机等级《二级C++》考前冲刺试卷三:本试卷总分100分;共有4类型题目

  • 选择题
  • 程序改错题
  • 简单应用题
  • 综合应用题
部分试题预览
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示矩形的CRect类,但类CRect的定义并不完整。请按要求完成下列操作,将类CRect的定义补充完整。

    (1)定义私有数据成员leftPoint、topPoint、rightPoint、bottomPoint,分别用于表示矩形左上角及右下角的点的坐标,它们都是double型的数据。请在注释1之后添加适当的语句。

    (2)完成默认构造函数CRect的定义,指定默认实参为0,它们都是double型的数据。请在注释2之后添加适当的语句。

    (3)定义函数体为空的析构函数。请在注释3之后添加适当的语句。

    (4)在main函数中定义GReet类的实例rect2,并把re-

    ct1的值赋给rect2。请在注释4之后添加适当的语句。

    注意:除在指定位置添加语句之外,不要改动程序中的其他内容。

    试题程序:

    #include

    classCRect

    {

    private:

    //********1********

    public:

    //********2********

    //********3********

    voidSetPoints(double,double,double,double);

    voidSetLeftPoint(doublem){leftPoint=m;}

    voidSetRightPoint(doublem){rightPoint=m;}

    voidSetTopPoint(doublem){topPoint=m;}

    voidSetBottomPoint(doublem){bottomPoint=m;}

    voidDisplay();

    };

    CReet::CRect(double1,doublet,doubler,doubleb)

    {

    leftPoint=1;topPoint=t;

    rightPoint=r;bottomPoint=b;

    }

    voidCRect::Setpoints(double1,doublet,doubler,doubleb)

    {

    leftPoint=1;topPoint=t;

    rightPoint=n;bottomPoint=b;

    }

    voidCRect::Display()

    {

    cout<<"left-toppointis("<

    Point<<")"<<'\n';

    cout<<"right-bottompointis("<

    <}

    voidmain()

    {

    CRectrect0;

    rect0.Display();

    rect0.SetPoints(20,20.6,30,40);

    rect0.Display();

    CRectrectl(0,0,150,150);

    rect1.SetTopPoint(10.5);

    rect1.SetLeftPoint(10.5);

    //********4******** rect2.Display( );}

  2. 使用VC++6.o打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。

    例如:

    str1为“asdfsfdfg”

    str2为“sf”则返回1

    str2为“df”则返回3

    注意:不能修改函数的其他部分。

    试题程序:

    #include

    //注意只能使用int类型,不能类型转换

    intfun(char*str1,char*str2)

    {

    }

    voidmain()

    {

    charstr1[1024];

    charstr2[256];

    cout<<"pleaseinputastring:"<

    cin.getline(str1,1024);

    cout<<"pleaseinputotherstring;"<

    cin.getline(str2,256);

    cout<

    cout<

    return;

    }

  3. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:

    sizeof(S1)=5

    sizeof(s2)=10

    sizeof(s3)=1

    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

    (1)不能删除assert()语句。

    (2)只能修改后面的数字。

    提示:assert函数如果为假,则会产生一个中断异常。

    试题程序:

    #include

    #include

    voidmain()

    {

    char*s1="abc":

    //********error********

    assert(sizeof(s1)==3):

    cout<<"sizeof(s1)=5"<

    chars2[10]="ab":

    //********error********

    assert(sizeof(s2)==2);

    cout<<"sizeof(s2)=10"<

    chars3=23:

    //********error********

    assert(sizeof(s3)==4);

    cout<<"sizeof(s3)=1"<

    return;

    }

  4. 若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test,txt文件的是(  )。

    • A.ifstreamfin;fin.open("d:\\test.txt",iso_base::in);
    • B.fstreamfi0;ri0.open("d:\\test.txt",is0_base::out);
    • C.ofstream。fort;lout.open("d:\\test.txt",ios_base::out);
    • D.ofstreamfout;fout.open("d:\\test.txt",is0_base::app);
  5. 数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是(  )。

    • A.DB包括DBS和DBMS
    • B.DBMS包括DB和DBS
    • C.DBS包括DB和DBMS
    • D.没有任务关系
  6. 下列是重载为非成员函数的运算符函数原型,其中错误的是(  )。

    • A.Fractionoperator+(Fraction,Fraction);
    • B.Fractionoperator-(Fraction);
    • C.Fraction&operator=(Fraction&,Fraction);
    • D.Fraction&operator+=(Fraction&,Fraction):
  7. 下列关于函数模板的描述中,正确的是(  )。

    • A.函数模板是一个实例函数
    • B.使用函数模板定义的函数没有返回类型
    • C.函数模板的类型参数与函数的参数相同
    • D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数
  8. 若有如下程序:

    #include

    usingnamespacestd;

    classTestClassl

    {

    private:

    inta;

    public:

    TestClassl(inti)

    {

    • a=i:    }    voiddisp(  )    {
    • cout<}    };
    • classTestClass2    {    private:
    • intb:    public:    TestClass2(intj)    {
    • b=j;    }    voiddisp()    {
    • cout<}    };
    • classTestClass3:publicTestClass2,publicTestClassl    {    private:
    • intc;    public:    TestClass3(intk):TestClass1(k-2),TestClass2(k+2)    {
    • c=k:    }    voiddisp()    {    TestClasssl::disp();    TestClasss2::disp();
    • cout<
  9. 下列各类函数中,不是类的成员函数的是(  )。

    • A.构造函数
    • B.抽象类
    • C.派生类
    • D.以上都不对
  10. 下面关于break语句的描述中,不正确的是(  )。

    • A.break可以用于循环体内
    • B.break语句可以在for循环语句中出现多次
    • C.break语句可以在switch语句中出现多次
    • D.break语句可用于if条件判断语句内