首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。 程序中位于每个“//ERROR ****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is a whi
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。 程序中位于每个“//ERROR ****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is a whi
admin
2019-08-23
42
问题
请打开考生文件夹下的解决方案文件proj1,其中有枚举DOGCOLOR、狗类Dog和主函数main的定义。
程序中位于每个“//ERROR ****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:
There is a white dog named Hoho.
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 nanle[20];
static int count;
public:
Dog(char name[],DOGCOLOR color){
strcpy(this一>nalTle,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 PIEBALD:return’’piebald’’;
}
return’’motley’’;
}
void show()const{
cout<<’’There is a’’<
}
};
int main(){
//ERROR **********found**********
Dog dog1(’’Hoho’’,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 dog1(’’Hoho’’,WHITE),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 char getName()const{:return:*name;}。
(3)语法错误,定义变量时,变量之间应使用“,”分开。
转载请注明原文地址:https://jikaoti.com/ti/ziA0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序: #include<iostream> Using namespace std; Class Amount{ int amount; public; Amount(int n=0)
以下程序的输出结果是()。min(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}
数据库系统的核心是
在下面程序中,编译时出现错误的是______。ClassA//(1){public://(2)A(){f();//(3)}voidB(){
按数据流的类型,结构化设计方法有两种设计策略,它们是【】和事务分析设计。
定义如下枚举类型:enumNumber{one=l,tow=2,four=4,eight=8},则下列语句正确的是()。
重载的流运算符函数经常定义为类的【】函数。
A、 B、 C、 D、 D“*”是一个二元运算符,在作为成员函数重载时参数表中只有一个参数,对应于第二个操作数,而第一个操作数就是对象本身,仅以this指针的形式隐藏在参数表中。
在I/O类库中,头文件iostream.h包括了______。
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为______ 的。
随机试题
____,themostpopularsportinEnglandaswellasinEurope,hasitstraditionalhomeinEnglandwhereitwasdevelopedinthe
若自旋回波序列中,一成像参数为TR=20000msTE=90ms:此最可能是
患者女,20岁。因误服安眠药中毒,意识模糊不清,呼吸微弱,浅而慢,不易观察,护士应采取的测量方法是
(2012年)氯化锂电阻湿度计使用组合传感器,是为了()。
在确定工程施工开展程序时,在保证()的前提下,实行分期分批建设可以使项目迅速建成,尽早投入使用。
电力起爆系统的组成包括()。
对“法律责任”理解不正确的是()。
以下叙述中正确的是
Whattimeisitnow?
metalandleather空格前为madeof,推测应当填入表示材质的名词。录音原文中的wereproduced是题目theproductionof的同义替换。故空格处填入metalandleather。
最新回复
(
0
)