首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
admin
2017-02-21
35
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
Name:sonny Type:dog
Name:John Type:dog
Name:Danny Type:cat
Name:John Type:dog
注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。
#include<lostream>
using namespace std;
enum Pets_type{dog,cat,bird,
fish};
class Pets{
private:
char * name;
Pets_type type;
public:
Pets(const char * name="
sonny",Pets_type type=dog);
Pets & operator=(const Pets&s);
~Pets();
void show()const;
};
Pets∷Pets(const char * name,
Pets_type type)
//构造函数
{
this->name = new char[strlen(name)+1];
strcpy(this->name,name);
//ERROR *******found*******
type=type;
}
Pets∷~Pets()//析构函数,释放
name所指向的字符串
{
//ERROR *******found*******
name=’/0’;
}
Pets&Pets∷operator=(const
Pets&S)
{
if(&s==this)//确保不要向自身赋值
return * this;
delete[]name;
name = new char[strlen(s.name)+1];
//ERROR*******found*******
strcpy(this->name,name);
type=s.type;
return * this;
}
void Pets∷show()const
{
cout<<"Name: "<<name<<"Type:”,
switch(type)
{
case dog:cout<<"dog";break;
case cat: cout<<"cat"; break;
case bird:cout<<"bird";break;
case fish:cout<<"fish";break;
}
cout<<end1;
}
int main()
{
Pets mypet1,mypet2("John",dog);
Pets youpet("Danny",cat);
mypet1.show();
mypet2.show();
youpet.show();
youpet=mypet2;
youpet.show();
return 0;
}
选项
答案
(1)this->type=type; (2)delete[]name; (3)strcpy(this->name,s.name);
解析
(1)主要考查考生对构造函数的掌握情况,因为形参名和类的私有成员名称都是type,为了避免混淆,所以规定类的私有成员使用this指针调用,即:this->type=type;。
(2)主要考查考生对析构函数的掌握情况,题目中要求,释放name所指向的字符串。要释放name指针用delete语句,即delete[]name;。
(3)主要考查考生对sineW函数的掌握情况,strcpy函数的形参为两个字符串,而name为指向字符串的指针,因此使用语句:strcpy(this->name,s.name);。
转载请注明原文地址:https://kaotiyun.com/show/F6Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的运行结果是#include<iostream.h>voidsub(intx,inty,int*z){*z=y-x;}voidmain(){int
若执行下面的程序时,从键盘上输入5和2,则输出结果是#include<iostream.h>voidmain(){inta,b,k;cin>>a>>b;
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
若有说明语句chara[]="Itismine";char*p="Itismille";则以下不正确的叙述是()。
下列函数的运行结果是()。#include<iostream.h>intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)
下面程序错误的语句是#include“iostream.h”①voidmain()②{③intA=0;④int&B;⑤B=A;⑥cout<<B;
计算斐波那契数列第n项的函数定义如下:intfib(intn){if(n==0)return1;elseif(n==1)return2;elsereturnfib(n-1)+ilb(n-2);}若执行函数调用表达式fib(
在最坏情况下,冒泡排序所需要的比较次数为
数据结构分为逻辑结构和存储结构,循环队列属于______结构。
下面关于函数模板的表述中不正确的是()。A)类模板的成员函数都是模板函数B)类模板本身在编译过程中不会产生任何代码C)类模板只能有虚拟类型的参数D)用类模板定义一个对象时,实参不能省略
随机试题
产品质量特性是指
负责征收关税预算收入的征收机关是()
A.Nooneshouldblindhimselftothewell-knownfact.B.Heavyenquirieswitnessthequalityofourproducts.C.Weconfirmcab
求y”+2y’+y=2ex的通解.
在社会主义初级阶段,坚持公有制为主体,多种所有制经济共同发展的基本经济制度。我国坚持这一基本经济制度,具体说是由()。①我国现阶段的分配制度决定的②我国的社会主义性质决定的③我国初级阶段的国情决定的④社会主义的政治制度决定的
甲公司与孤儿院的孤儿乙签订赠与合同,决定捐赠给乙1万元,乙的监护人对此表示同意。但甲公司在捐赠3000元后,因法定代表人更换不愿继续履行赠与合同。对此,下列哪些选项是错误的?
亚太经合组织逐步形成了自己独特的合作方式,即“APEC”方式,这一合作方式的内容是()。①承认多样性②强调协商一致③强调互惠互利④强调自主自愿⑤强调灵活性⑥提倡自由贸易
“苟利国家生死以,岂因祸福避趋之”;“报国之心,死而后已”;“位卑不敢忘忧国”等名言,都体现了中华民族爱国主义优良传统中的()
用户的电子邮件地址中必须包括(56)才算是完整的。
Moviemakersfearedforawhilethattheymightbeputoutofbusinessbytelevision.Recently,【C1】______,moreandmorepeople
最新回复
(
0
)