- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国计算机二级c模拟卷02
上机部分
一、改错题
使用VC6打开考生文件夹下的工程kt2_1,此工程包含一个源程序文件kt2_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Vehiclemessage
Carmessage
Vehiclemessage
源程序文件kt2_1.cpp清单如下:
#includeiostream.h
classvehicle
{
intwheels;
floatweight;
public:
voidmessage(void){coutVehiclemessage\n;}
};
classcar:publicvehicle
{
intpassenger_load;
public:
voidmessage(void){coutCarmessage\n;}
};
classtruck:publicvehicle
{
intpassenger_load;
floatpayload;
public:
intpassengers(void){returnpassenger_load;}
};
voidmain()
{
vehicle*unicycle;
unicycle=newvehicle;
unicycle.message();
deleteunicycle;
unicycle=newcar;
unicycle-message();
deleteunicycle;
unicycle=newtruck;
unicycle-message();
deleteunicycle;
}
【参考答案】
(1)将void message(void){ coutVehicle message\n;}
改为:virtual void message(void){ coutVehicle message\n;}
(2)将void message (void){coutCar message\n;}
改为:void message (void){coutCar message\n;}
(3)将unicycle.message();
改为:unicycle-message();
【试题解析】
(1)主要考查对虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;
(2)主要考查对流输出操作的掌握,该处错误的使用了流输入操作;
(3)主要考查对象和对象指针的概念,对象指针使用-调用成员函数,而对象使用.调用成员函数。
二、简单应用题
编写类AA的成员函数intCompare(AAb),该函数用于比较*this与b的大小,若两者含有元素的个数n相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。注意:用数组方式及for循环来实现该函数。输出结果如下:
a=b
ac
注意:部分源程序已存在文件kt2_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数Compare的花括号中填写若干语句。
文件kt2_2.cpp的内容如下:
#includeiostream.h
#includestdlib.h
classAA{
int*a;
intn;
intMS;
public:
voidInitAA(intaa[],intnn,intms)
{
??? if(nnms)
{\coutError!endl;
exit(1);}
MS=ms;
n=nn;
a=newint[MS];
for(inti=0;in;i++)a[i]=aa[i];
}
intCompare(AAb);
};
intAA::Compare(AAb)
{
}
voidmain()
{AAa,b,c;
intx[]={1,2,3,4,5};
inty[]={1,2,3,6,7};
intz[]={1,2,5,7,9};
a.InitAA(x,3,5);
b.InitAA(y,3,5);
c.InitAA(z,3,5);
if(a.Compare(b))
couta=bendl;
else
coutabendl;
if(a.Compare(c))
couta=cendl;
else
coutacendl;}
【参考答案】
int AA::Compare(AA b)
{if(n!=b.n) retu
文档评论(0)