首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 二级考试 >

2013年计算机二级C++上机模拟试题五(附答案)(1)

2013-03-02 

  一、改错题

  使用VC6打开考生文件夹下的工程kt10_1,此工程包含一个源程序文件kt10_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:

  classBase

  classD1

  classD2

  classD3

  finBase

  源程序文件kt10_1.cpp清单如下:

  #include

  classBase

  { public:

  Base(){cout<<"classBase"<  voidf(){cout<<"finBase"<  classD1:virtualpublicBase

  { public:

  D1(){cout<<"classD1"<  voidf(){cout<<"finD1"<  /**********found**********/

  classD2:publicBase

  { public:

  D2(){cout<<"classD2"<  /**********found**********/

  classD3::publicD1,publicD2

  { public:

  D3(){cout<<"classD3"<  voidmain()

  { D3d;

  /**********found**********/

  d.f(); }

  二、简单应用题

  请编写一个函数inlinelongsum(intn),用递归函数完成运算:sum(n)=1*1+2*2+???+n*n,递归表达式为sum(n)=sum(n-1)+n2。

  注意:部分源程序已存在文件kt10_2.cpp中。

  请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

  文件kt10_2.cpp的内容如下:

  #include

  inlinelongsum(intn)

  {

  }

  voidmain()

  { intn;

  cout<<"输入n:";

  cin>>n;

  cout<<"结果为:"<

  三、综合应用题

  使用VC6打开考生文件夹下的工程kt10_3,此工程包含一个源程序文件kt10_3.cpp,其中定义了用于表示雇员信息的CEmployee类与表示公司信息的Company类,但这两个类的定义并不完整。请按要求完成下列操作。

  (1)定义Cemployee类的私有数据成员name(大小为50的字符数组)和pay(double型数据),分别用于记录雇员姓名和月薪。请在注释“//**1**”之后添加适当的语句。

  (2)完成Company类默认构造函数的定义,该构造函数将n值赋值给私有成员num,并完成指针emp所指的n个Cemployee对象空间的申请,请在注释“//**2**”之后添加适当的语句。

  (3)完成Company类成员函数voidCompany::add(intcode,charname[50],doublepay)的定义,该函数将某一雇员的编号code、姓名name及月薪pay输入到公司信息中。请在注释“//**3**”之后添加适当的语句。

  (4)完成Company类成员函数voidCompany::print()的定义,使其以"_ispaid_RMBforonemonth"的格式输出公司内所有员工的月薪信息。请在注释“//**4**”之后添加适当的语句。

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

  源程序清单如下:

  #include

  #include

  classCEmployee

  { public:

  voidputname(charn[50]){strcpy(name,n);}

  voidgetname(charn[50]){strcpy(n,name);}

  voidputpay(doubled){pay=d;}

  doublegetpay(){returnpay;}

  private:

  //**1** };

  classCompany

  { private:

  CEmployee*emp;

  intnum;

  public:

  Company(intn);

  voidadd(intcode,charname[50],doublepay);

  voidprint(); };

  Company::Company(intn)

  { //**2** }

  voidCompany::add(intcode,charname[50],doublepay)

  { //**3** }

  voidCompany::print()

  { //**4**

  for(inti=0;i  { (emp+i)->getname(c);

  money=(emp+i)->getpay();

  cout<  "RMBforonemonth"<  voidmain()

  { Companycom(2);

  com.add(0,"Jack",200);

  com.add(1,"Lee",300);

  com.print(); }

热点排行