2016计算机二级《C++》上机练习题及答案
一、基本操作题
1请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“/pic/p>
There is a white dog named Hoh0. There is a blaCk dog named Haha. There is a motley dog named Hihi. 注意:只修改每个/pic/p>
#inClude using namespaCe std; /pic/p>
enum DOGCOLOR{BLACK,WHITE,YELLOW,BROWN,PIEBALD,OTHER}; Class Dog{/pic/p>
DOGCOLOR Color; Char name[20]; statiC int Count; publiC:
Dog(Char nalTle[],DOGCOLOR Color){ strCpy(this一>name,name);
/pic/p>
strCpy(this一>Color,Color);
} 1 DOGCOLOR getColor()Const{retum Color;}
/pic/p>
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(){
/pic/p>
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的定义。请在程序中“/pic/p>
办公室房间号:308
办公室长度:5.6
办公室宽度:4.8
办公室面积:26.88
办公室所属部门:会计科
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/pic/料料found••料”。
#include
using namespaee std;
class Room{ /pic/p>
int room_n0;/pic/p>
double length;/pic/p>
double width;/pic/p>
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;}
/pic/p>
double theLength()const{return length;}/pic/p>
double theWidth()const{return width;}/pic/p>
/pic/p>
double theArea()const{_______________}/pic/p>
};
class Office:public Room{/pic/p>
char*depart;/pic/p>
public:
Office(int the_room_n0,double the_length,double the_width,eonst char木the_depart)
/pic/p>
:_______________{
depart=new char[strlen(the depart)+1];
/pic/p>
strcpy(_______________);
}
~Office(){delete[]depart;}
const char*theDepartment()const{return depart;}/pic/p>
};
int main(){
/pic/p>
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字节。
要求:
补充编制的内容写在“/pic/pic/p>
注意:程序最后已将结果输出到文件0ut.dat中,输出函数writeToFile已经给出并且调用。
/pic/p>
#include
#include
#include
using namespace std;
class doc
{
private:
char*sir;/pic/p>
int length;/pic/p>
public:
/pic/p>
doc(char*filename);
void reverse();/pic/p>
一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(){
/pic/p>
/pic/p>
/pic/p>
/pic/p>
}
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;/pic/p>
for(i=0,j=length一1;i
chartemp=str[i];
/pic/p>
str[i]=str[j];
/pic/p>
str[j]=temp;
/pic/p>
}
【考点分析】
本题主要考查的是doc类、构造函数、成员函数和析构函数。
【解题思路】
题目要求将myDoc中的字符序列反转,在main函数中我们看到myDoc是doc类,根据doc类的定义可以知道它是把读取文件的字符串存到str动态数组中。reverse函数实现将数组str中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换,依次类推。使用变量i和J,分别表示第一个字符和最后一个字符的下标,定义temp作为中间变量进行交换。
【计算机二级《C++》上机练习题及答案】相关文章:
计算机二级《C++》上机试题及答案12-31
2016计算机二级《C++》上机练习题02-03
2016计算机二级C++上机试题及答案11-25
全国计算机二级《C++》上机试题及答案12-06
全国计算机二级《C++》上机试题附答案01-15
二级C++上机冲刺题及答案解析12-15