首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR **** found ****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR **** found ****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is
admin
2020-04-07
66
问题
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。程序中位于每个“//ERROR **** found ****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:
There is a white dog named Hobo.
There is a black dog named Haha.
There is a motley dog named Hihi.
注意:只修改每个“//ERROR **** found ****”下的那一行,不要改动程序中的其他内容。
#include<iostream>
using namespace std;
//狗的颜色:黑、白、黄、褐、花、其他
enum DOGCOLOR {BLACK, WHITE,YELLOW, BROWN, PIEBALD,OTHER};
class Dog(//狗类
DOGCOLOR color;
char FIame[2 0];
static int count;
public:
Dog(char flame[],DOGCOLOR color){
strcpy(this一>name,name);
//ERROR ******* found *******
strcpy(this一>color,color);
}
DOGCOLOR getColor()const {return color;}
//ERROR ******* found *******
const char * getName()
const{ return * name;)
const char * getColorString()const{
switch(color){
case BLACK: return"black";
case WHITE: return"white";
case YELLOW: return"yellow";
case BROWN: return"brown";
case PTEBALD: return"piebald";
}
return"motley";
}
void show()const {
cout<<"There is a"<<getColorString() <<"dog named"<<name<<’.’<<endl;
}
};
int main(){
//ERROR ******* found *******
Dog dogl("Hobo",WHITE),dog2("Haha",BLACK); dog3("Hihi",OTHER);
dog1.show();
dog2.show();
dog3.show();
return 0;
}
选项
答案
(1)this一>color=color; (2)const char getName()const{return *name;} (3)Dog dogl("Hoho",WHTTE),dog2("Haha",BLACK),dog3("Hihi",OTHER);
解析
(1)主要考查考生对strcpy函数的掌握,如果看到上一条语句strcpy(this—>name,name);,就以为本条语句也要用strcpy函数来赋值,这是错误的。Strcpy函数只能复制字符串,根据类的私有成员声明可知,color是DOGCOLOR型的,这里直接使用赋值语句“=”即可。
(2)主要考查考生对函数返回值的掌握,先解读语句const char * getName()const{return * name;},要返回的是一个const的字符指针,同时函数内的值不能改变,name在类的私有成员声明中是个字符数组,* name代表字符数组而不是字符指针,问题就出来了,需要修改返回类型:const,chat getName()const{retum name;}。
(3)语法错误,定义变量时,变量之间应使用“,”分开。
转载请注明原文地址:https://kaotiyun.com/show/qw8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下语句序列intarr[2][2]={{9,8),{7,6}};int*p=arr[0]+1;cout<<*p<<end1;运行时的输出结果是______。
下列程序的输出结果是#include<iostream.h>intmin(inta,intb){if(a<b)returna;elsereturnb;return0;
下面关于类概念的描述中()是错误的。
如下程序执行后的输出结果是【】。#include<iostream>usingnamespacestd;classBase{public:Base(intx,inty)
从工程管理的角度来看,软件设计分两步来完成。首先是概要设计,然后是【】。
设x,y,t均为int型变量,执行语句:x=y=3;t=++x||++y;,完成后,y的值为( )。
下面关于break语句的描述中,不正确的是
有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。若在一个重载的运算符函数的定义中成功地使用了this指针,说明它是作为【13】重载的
在C++中,编译时的多态性是通过模板或函数【12】实现的。
随机试题
______rightnow,shewouldgetthereonSunday.
最易引起尿路感染的细菌是()
发布房地产广告,应当具有或者提的证明文件包括()
某商业银行2012年第二季度吸收存款3000万元,取得贷款利息收入200万元。从事贴现业务收入15万元,从事信托贷款取得服务费10万元,办理结算业务取得手续费收入4万元;本期受托贷款业务,收到该业务贷款利息100万元,并收取受托贷款的服务费10万元。则该商
盈利是银行经营的根本目的和动力。
某公司对顾客投诉数据进行分析与整理,找出服务质量存在的主要问题,最适宜的分析工具是()。[2007年真题]
奥运会期间看游泳比赛的记忆属于()。
“手舞足蹈,摩拳擦掌”属于()
Evidenceofthebenefitsthatvolunteeringcanbringolderpeoplecontinuestorollin."Volunteershaveimprovedphysicalands
AIDSAcquiredImmunodeficiencySyndrome(AIDS),isakindofhumanviraldisease(病毒病)thatdamagestheimmunesystem,weake
最新回复
(
0
)