报名 百分网手机站

计算机二级《C++》上级考试试题及答案(2)

时间:2020-11-02 08:29:37 报名 我要投稿

计算机二级《C++》上级考试试题及答案2017

  三、综合应用题

  3请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过l00。程序文件包括pmj3.h、proj3.cpp、writeToFile.obj。补充完成重载赋值运算符函数,完成深复制功能。

  屏幕上输出的正确结果应该是:

  Hello!

  Happy new year!

  补充编制的内容写在“//**********333**********”与“//**********666**********”两行之间。

  不得修改程序的其他部分。

  注意:

  程序最后调用writeToFil。函数,使用另一组不同的测试数据,将不同的运行结果输出到文件0ut•dat中。

  输出函数writeToFile已经编译为obj文件。

  //proj3.h

  #include

  #include

  using namespace std;

  class MiniString

  {

  pubhc:

  friend。8tream&operator<<(oatream&output,const MiniString&s)//重载流插入运算符

  { output<

  friend istream&operator>>(istream&input,MiniString&8)//重载流提取运算符

  { char temp[100];//用于输入的临时数组

  temp[0]=’\0’://初始为空字符串

  input>>setw(100)>>temp;

  int inLen=strlen(temp);//输入字符串长度

  if(inLen!=0)

  }

  s.1ength=inLen;//赋长度

  if(s.sPtr!=0)delete[]s.sPtr;//避免内存泄漏

  s.sPtr=Hew char[s.1ength+1];

  strcpy(s.sPtr,temp);//如果8不是空指针,则复制内容

  }

  else s.sPtr[0]=’\0’;//如果s是空指针,则为空字符串

  retum input;

  }

  void modString(const char}string2)//更改字符串内容

  {

  if(strin92 1=0)//如果strin92不是空指针,则复制内容

  {

  if(strlen(strin92)!=length)

  {

  length=strlen(strin92);

  delete[]sPtr;

  sPtr=new char[1ength+1];//分配内存

  }

  strcpy(sPtr,strin92);

  }

  else sPtr[0]=’\0’;//如果string2是空指针,则为空字符串

  }

  MiniString&operator=f const MiniString&otherString);

  MiniString(corot char*s=""):lengtll((s!=0)?strlen(s):0)//构造函数

  {

  sPtT=0:

  if(1ength[=0)

  setString(S);

  }

  ~MiniString()//析构函数

  {delete[]sPtr;}

  private:

  int length;//字符串长度

  char*sPtr;//指向字符串起始位置

  void setString(const char*string2)//辅助函数

  {

  sPtr=Dew char[str|en(string2)+1];//分配内存

  if(stnIl92!=0)strcpy(sPtr,string2);//如果string2不是空指针,则复制内容

  else slur[0]='\0';//如果string2是空指针,则为空字符串

  }

  };

  //pwj3.cpp

  #'include

  #include

  using namespace std;

  #include”proj3.h”

  MiniString&MiniStrin9::0perator=(const MiniString&otherString)

  {//重载赋值运算符函数。提示:可以调用辅助函数setString

  //*************333**********

  //*************666**********

  }

  int main()

  {

  MiniSu'ing strl(”Heuo!”),str2;

  void writeToFile(const char*);

  sir2=strl;//使用重载的赋值运算符

  str2.modString("Happy new year!");

  cout<

  cout<

  writeToFile("");

  return 0;

  }

  参考解析:

  length=otherString.1ength; //把对象字符串0therString的长度赋值给变量length setString(otherString.sPtr); //调用函数setstring,实现给类变量sptr分配空间,以及逐个把对象0therstring字符串的值复制到sptr中 return}this: //返回被赋值的对象


更多计算机二级C++相关试题分享:

1.2017年3月计算机二级C++考前练习题及答案

2.2017计算机二级C++模拟题及答案

4.2017年3月计算机二级C++练习题及答案

5.2017计算机二级C++基础习题及答案

6.2017计算机二级C++考点习题及答案

7.2017年12月计算机二级C++考前练习题及答案

8.2017计算机二级C++强化习题及答案

9.2017计算机二级C++强化习题及答案

10.计算机二级考试C++练习及答案

【计算机二级《C++》上级考试试题及答案2017】相关文章:

1.计算机二级考试C++试题及答案

2.计算机二级C++考试试题及答案

3.计算机二级c++试题及答案

4.计算机二级考试C++上机考试试题及答案

5.计算机二级C++强化试题及答案

6.计算机二级《C++》上机试题及答案

7.计算机二级考试C++备考练习试题及答案

8.全国计算机二级考试C++强化试题及答案