试题

计算机二级《C++》上机练习题及答案

时间:2025-02-23 21:46:01 试题 我要投稿
  • 相关推荐

2016计算机二级《C++》上机练习题及答案

  一、基本操作题

  1请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR ****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:

  There is a white dog named Hoh0. There is a blaCk dog named Haha. There is a motley dog named Hihi. 注意:只修改每个//ERROR****found****女料下的那一行,不要改动程序中的其他内容。

  #inClude using namespaCe std; //狗的颜色:黑、白、黄、褐、花、其他

  enum DOGCOLOR{BLACK,WHITE,YELLOW,BROWN,PIEBALD,OTHER}; Class Dog{//狗类

  DOGCOLOR Color; Char name[20]; statiC int Count; publiC:

  Dog(Char nalTle[],DOGCOLOR Color){ strCpy(this一>name,name);

  //ERROR**********found**********、

  strCpy(this一>Color,Color);

  } 1 DOGCOLOR getColor()Const{retum Color;}

  //ERROR**********found**********

  Const Char * 9etName()Const{return*finin9;} Const Char * 9etColorString()Const{

  switCh(Color){

  Case BLACK:return”blaCk“; Case WHITE:return”white”:

  Case YELLOW:return’"yellow”: Case BROWN:return”brown”; ease PIEBALD:return”piebald”:

  }

  return”motley”;

  }

  void show()Const{ . Cout<<”There is a”<

  } }; int main(){

  //ERROR**********found**********

  Dog dogl(”Hoh0”,WHITE),dog2(”Haha”,BLACK);d0g3(”Hihi”,0THER); d091.show();

  dos2.show(); dos3.show(); return 0;

  }

  参考解析:

  (1)this->color=color:

  (2)consL char getName()eonst{return*name;}

  (3)Dog dogl(”Hoho”,WHITE)。dog2(”Haha”,

  BLACK),dog3(”Hihi”,OTHER);

  二、简单应用题

  2请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有“房间”类Room及其派生出的“办公室”类0ffice的定义,还有主函数main的定义。请在程序中“//****found****”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:

  办公室房间号:308

  办公室长度:5.6

  办公室宽度:4.8

  办公室面积:26.88

  办公室所属部门:会计科

  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“///料料found••料”。

  #include

  using namespaee std;

  class Room{ //“房间”类

  int room_n0;//房间号

  double length;//房间长度(m)

  double width;//房间宽度(n1)

  public:

  Room(int the—room—n0,double the~length,double the—width):loom—no(the—room—no),length(the—

  length),width(the—width){}

  int theRoomNo()eonst{return iDonl—n0;}

  //返回房间号

  double theLength()const{return length;}//返回房间长度

  double theWidth()const{return width;}//返回房间宽度

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

  double theArea()const{_______________}//返回房间面积(矩形面积)

  };

  class Office:public Room{//“办公室”类

  char*depart;//所属部门

  public:

  Office(int the_room_n0,double the_length,double the_width,eonst char木the_depart)

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

  :_______________{

  depart=new char[strlen(the depart)+1];

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

  strcpy(_______________);

  }

  ~Office(){delete[]depart;}

  const char*theDepartment()const{return depart;}//返回所属部门

  };

  int main(){

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

  Office_______________;

  cout<<”办公室房间号:”<

  <<”办公室长度:”<

  <<”办公室宽度:”<

  <<”办公室面积:”<

  <<”办公室所属部门:”<

  return 0;

  }

  参考解析:

  (1)returtl length*width;

  (2)Room(the_room_no,the_lengih,the_width)

  (3)depart,the_depart

  (4)an_office(308,5.6,4.8,”会汁科”)

  三、综合应用题

  43请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,补充编制c++程序proj3.cpp,其功能是读取文本文件in.dat中的全部内容,将文本存放到doc类的对象myDoc中。然后将myDoc中的字符序列反转,并输出到文件out.dat中。文件in.dat的长度不大于1000字节。

  要求:

  补充编制的内容写在“//**********”与“//**********”两行之间。实现将myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。

  注意:程序最后已将结果输出到文件0ut.dat中,输出函数writeToFile已经给出并且调用。

  //proj3.cpp

  #include

  #include

  #include

  using namespace std;

  class doc

  {

  private:

  char*sir;//文本字符串首地址

  int length;//文本字符个数

  public:

  //构造函数,读取文件内容,用于初始化新对象,filename是文件名字符串首地址

  doc(char*filename);

  void reverse();//将字符序列反转

  一doc();

  void writeToFile(char*filename);

  };

  doc::doc(char}filename)

  {

  ifstream myFile(filename);

  int len=1001,tmp;

  atr=new char[1en];

  length=0;

  while((trap=myFile.get())!=EOF)

  {

  str[1ength++]=trap;

  }

  str[1ength]=‘\0’;

  myFile.close();

  }

  void doc::reverse(){

  //将数组atr中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个

  //字符交换……

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

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

  }

  doc::~doe()

  {

  delete[]str;

  }

  void doc::writeToFile(char*filename)

  {

  Ofstream outFile(filename);

  outFile<

  outFile.close();

  }

  void main()

  {

  doc myDoc(”in.dat”);

  myDoc.reveme();

  myDoc.writeToFile(”out.dat”);

  }

  参考解析:

  int j,J;//定义两个整数l临时变量i.j.

  for(i=0,j=length一1;i

  chartemp=str[i];

  //把str[i]中的值保存在临时变量temp

  str[i]=str[j];

  //把Str[j]值赋给Str[i],实现字符前后替换

  str[j]=temp;

  //把保存在临时变量temp中的值再赋值给Str[j]

  }

  【考点分析】

  本题主要考查的是doc类、构造函数、成员函数和析构函数。

  【解题思路】

  题目要求将myDoc中的字符序列反转,在main函数中我们看到myDoc是doc类,根据doc类的定义可以知道它是把读取文件的字符串存到str动态数组中。reverse函数实现将数组str中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换,依次类推。使用变量i和J,分别表示第一个字符和最后一个字符的下标,定义temp作为中间变量进行交换。

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

计算机二级《C++》上机试题及答案08-12

2016计算机二级《C++》上机练习题06-09

2016计算机二级C++上机试题及答案08-02

2016计算机二级《C++》上机强化练习题10-21

全国计算机二级《C++》上机试题及答案08-15

2016计算机二级C++上机模拟试题及答案07-16

二级C++上机冲刺题及答案解析10-10

2017计算机二级《C++》上机模拟题及答案08-16

全国计算机二级《C++》上机试题附答案09-16