一起答
单选

有以下程序:

classDate

{public:

Date(inty,intm,intd);

{year=Y;

month=m;

day=d;}

Date(inty=2000)

{year=y;

month=10;

day=1;}

Date(Date&d)

{year=d.year;

month=d.month;

day=d.day;}

voidprint()

{cout<

day<

private:

intyear,month,day;};

Datefun(Dated)

{Datetemp;

temp=d;

returntemp;}

intmain()

{Datedatel(2000,1,1),date2(0,0,O);

Datedate3(date1);

date2=fun(date3);

return0;}

程序执行时,Date类的复制构造函数被调用的次数是(  )。

  • A.2
  • B.3
  • C.4
  • D.5
试题出自试卷《2013年9月全国计算机等级《二级C++》命题预测试卷八》
参考答案
查看试卷详情
相关试题
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。

    (1)定义私有成员变量year、month、day。分别表示年、月、日,类型为int。请在注释1后添加适当的语句。

    (2)完成构造函数,分别给year、month、day赋值,请在注释2后添加适当的语句。

    (3)完成重载符号“十=”的定义,请在注释3后添加适当的语句。

    (4)完成print打印函数,输出到屏幕和文件的格式相同,请在注释4后添加适当的语句。

    注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。

    程序正常运行,输出的结果为2008年11月813。

    试题程序:

    #include(iostream.h)

    #include(fstream)

    #include(iomanip)

    #include

    usingnamespacestd;

    voidWriteFile(intc)

    {

    ofstreamout1;

    out1.open("3.txt",ios_base::app);

    out1<

    out1.close;

    }

    voidWriteFile(char*str)

    {

    ofstreamoutl;

    out1.open("3.txt",ios_base::app);

    out1<

    out1.close;

    }

    voidClearFile

    {

    ofstreamout1;

    out1.open("3.txt");

    out1.close;

    }

    classDate

    {

    public:

    Date(inty,intm,intd)

    {

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

    }

    voidprint;

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

    {

    month+=m;

    inti=month/12:

    intj=month%12;

    if(j==0)

    {year+=(i-1);

    month=12;

    }

    else

    {

    year+=i:

    month=j;

    }

    return*this;

    }

    private:

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

    };

    voidDate::print

    {

    //********4********

    WriteFile(year):

    WriteFile("年");

    WriteFile(month);

    WriteFile("月");

    WriteFile(day);

    WriteFile("日");

    }

    intmain

    {

    ClearFile;

    DateOly_day(2008,8,8);

    Olyday+=3:

    Oly_day.print;

    return0;

    }

  2. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)用于计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。

    注意:不能修改程序的其他部分,只能补充sum函数。

    试题程序:

    #include

    doublesum(intn)

    {

    }

    voidmain()

    {

    cout<

    cout<

    cout<

    return;

    }

  3. 4种基本结构中,能简化大量程序代码行的是(  )。

    • A.顺序结构
    • B.分支结构
    • C.选择结构
    • D.重复结构
  4. 有下列程序:

    #include

    voidmain(  )

    {

    FILE*fp;inta[10]={1,2,3},i,n;

    fp=fopen("dl.dat","w");

    for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);

    fprintf(fp,”\n”);

    fclose(fp);

    fp=open("dl.dat","r")

    fscanf(fp,"%d",&n);

    fclose(fp);

    printf(”%d\n”,n);

    }

    程序的运行结果是(  )。

    • A.12300
    • B.123
    • C.1
    • D.321
  5. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行,并且使程序输出的结果为

    0K

    注意:错误的语句在//******error******的下面,修改该语句即可。

    试题程序:

    #include

    classTC

    {

    public:

    TC

    {

    a=b=0:

    }

    private:

    inta,b;

    };

    classTCl:publicTC

    {

    public:

    TC1

    {

    }

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

    virtualvoidfunc;

    };

    classTC2:publicTCl

    {

    public:

    TC2

    {

    a=0:

    b=0:

    }

    voidfunc

    {

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

    cout<<"OK"

    }

    private:

    inta;

    intb;

    };

    voidmain

    {

    TC20bj;

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

    TCl*p=(TCl*)obj;

    p->func;

    }

  6. 有下列程序段:

    charch:intk:

    ch='a';k=12;

    printf("%c,%d,",ch,ch,k);

    printf("k=%d\n",k);

    已知字符a的ASCIl十进制代码为97,则执行上述程序段后输出结果是(  )。

    • A.因变量类型与格式描述符的类型不匹配输出无定值
    • B.输出项与格式描述符个数不符,输出为零值或不定值
    • C.a,97,12k=12
    • D.a,97,k=12
  7. Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是(  )。

    Samplea[2],*p=newSample;

    • A.0
    • B.1
    • C.2
    • D.3
  8. 在数据库设计中,将E—R图转换成关系数据模型的过程属于(  )。

    • A.需求分析阶段
    • B.概念设计阶段
    • C.逻辑设计阶段
    • D.物理设计阶段
  9. 程序流程图中带有箭头的线段表示的是(  )。

    • A.图元关系
    • B.数据流
    • C.控制流
    • D.调用关系
  10. 有下列程序:

    #include

    structord

    {intx,y;}dt[2]={1,2,3,4};

    voidmain(  )

    {structord*p=dt;

    printf("%d,",++P->x);printf("%d,",++P

    ->y);

    }

    程序的运行结果是(  ).

    • A.1,2
    • B.2,3
    • C.3,4
    • D.4,1