请使用VC6或使用【答题】菜单打开考生文件夹pmjl下的工程proj1,其中有枚举PetType、宠物类Pet和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: T

admin2020-06-29  43

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmjl下的工程proj1,其中有枚举PetType、宠物类Pet和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
ThereisadognamedDoggie
ThereisacatnamedMinli
ThereisanunknownanimalnamedPuPPY
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。函数strcpy(char*p,constchar*q)的作用是将q指向的字符串复制到p指向的字符数组中。
#1nclude
usingnamespacestd;
//宠物类别:狗、猫、鸟、鱼、爬行动物、昆虫、其他
enumPetType{DOG,CAT,BIRD,FISH,
REPTILE,INSECT,OTHER};
classPet{//宠物类
PetTypetype;//类别
charname[20];//名字
public:
Pet(PetTypetype,charname[]){
this->type=type;
//将参数name中的字符串复制到作为数据
成员的name数组中
//ERROR**********found**********
this->name=name;
}
//ERROR**********found**********
PetTypegetType()const{return
PetType;}
constchar*getName()const{returnname;}
constchar*getTypeString()const{
switch(type){
caseDOG:return"adog";
caseCAT:return"acat";
caseBIRD:return"abird";
caseFISH:return"afish";
caseREPTILE:return"areptile";
caseINSECT:return"aninsect";
}
//返回—个字符串,以便产生要求的输出
//ERROR**********found**********
returnOTHER;
}
voidshow()const{
cout<<"Thereis"<  }
};
intmain(){
Peta_dog(DOG,"Doggie");
Peta_cat(CAT,"Mimi");
Petan_animal(OTHER,"Puppy");
a_dog.show();
a_cat.show();
an_animal.show();
return0;
}

选项

答案(1)strcpy(this->name,name); (2)PetType getType() const {return type; } (3)return "an unknown animal";

解析 (1)主要考查字符串复制函数strcpy(),其格式为:strcpy(字符串1,字符串2)或strcpy(指向字符串1的指针,指向字符串2的指针),功能是将字符串2拷贝到字符串1中,本题使用第二种格式。
(2)主要考查考生对成员函数的掌握,根据私有成员的定义类型PetType type,可知要返回的是type。
(3)主要考查考生对switch语句的掌握,当在switch语句体中找不到相应的字段时,跳出switch语句,程序返回"an unkown animal"。
转载请注明原文地址:https://kaotiyun.com/show/gi8p777K
0

最新回复(0)