首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果: num:0 num:1 num:10 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******eror******
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果: num:0 num:1 num:10 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******eror******
admin
2019-05-14
66
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果:
num:0
num:1
num:10
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******eror******的下面。
#include<iostream.h>
int i=10;
class TestClasS
{
public:
TestClasS(int i)
{
cout<<"num:"<<i<<endl;
//********error********
i=i+1;
}
void Print()const
(
cout<<"num:"<<i<<endl;
}
private:
int i;
};
void main()
{
//********error*******
TestClass print;
int i(0);
print.Print();
//********error********
cout<<"num:"<<i<<endl;
return;
}
选项
答案
(1)this->i=i+1;或TestClass::i=i+1:或(*this).i=i+1; (2)TestClass print(0); (3)cout<<"num:"<<::i<<endl;
解析
(1)打开modi1,cpp,调试程序,显示错误提示为第二标识下“modi1.cpp(22):error C2512:’TestClass’:no appropriate default constiuctor available”,主函数中首先调用的就是第2个标识下的TestClass print函数,构造函数的名字和类的名字是一样的,而程序中给出的“TestClass print;”没有给出参数,所以程序调试时无法确定调用的函数。根据TestClass构造函数“TestClass(int i)”的定义,应该存在int型参数,并且题目要求第一次输出的值为“0”,所以第2个标识正确的调用函数为“TestClass print(0);”。
(2)运行,发现第一次的输出正确,但是第二次的输出值为“-858993460”,并不是题目中要求的“1”。在主函数中,可知第二次输出调用的是“print.Print();”,即类TestClass的成员函数“Print()”。成员函数Print的定义“voidPrint()const”中的输出语句为“cout<<"num:"<<i<<endl;”,而第二次的输出值为“-858993460”说明“i”的赋值错误。第1个标识下的“i=i+1;”语句是获得num的值为“1”,因为“i”还存在着“int i=10;”的定义,这里应该是调用成员函数自身的值,而不是上面的“int i=10;”,所以修改为“this->i=i+1;”或“TestClass::i=i+1;”或“(*this).i=i+1;”。
(3)主函数中通过“cout<<"num:"<<i<<endl:”语句实现第三次输出,第三次的输出值为“0”,并不是题目中要求的“10”。程序中存在“int i=10;”定义,这里应该是调用“int i=10;”中的“i”值。通过域定义符引用这个“i”,所以修改为“cout<<"num:"<<::i<<endl:”。
转载请注明原文地址:https://kaotiyun.com/show/ZE8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
符合结构化原则的三种基本控制结构是:选择结构、循环结构和______。
在下面的类定义中,横线处应填入的内容是()。classFred{public:voidprint(){cout<<data<<end1;}voidsetData(doubled}{data
运算符函数调用格式的表达式“y/x++”与表达式“y.operator/(operator++(x,0))”的含义相同,由此可看出()。
在下面的4个关键字中用来说明虚函数的是()。
下列说法中错误的是()。
有如下程序:#include<iostream>usingnamespacestd;voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={
在数据库系统的组织结构中,下列()映射把用户数据库与概念数据库联系了起来。
程序中有如下语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组DATA的前5个元素。由此可知,变量p的定义及初始化语句是______。
有如下程序:#include<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};fun(a[1],a
已知枚举类型定义语句为:enumToken{NUMBER,PLUS=5,MINUS,PRINT=10};则下列叙述中错误的是()。
随机试题
劳动安全基准制度的主要内容包括_________、_________、_________。
“贵方某先生的问题提得很好,我曾经在某一份资料上看过有关这一问题的记载,就记忆所及,大概是……”。这种答复谈判对手的技巧是()
孕满28周至不满37周者称为( )。
设计合同履行过程中,发包人的责任包括()。
下列关于企业对外提供的财务报表的表述中,正确的有()。
除合伙协议另有约定外,普通合伙人转变为有限合伙人,或者有限合伙人转变为普通合伙人,应当()。
企业可聘请有资质、信誉好、风险管理专业能力强的中介机构对企业全面风险管理工作进行评价,出具风险管理评估和建议专项报告。报告中的实施情况、存在缺陷和改进建议存在于()。
甲公司为上市公司。2×15年甲公司由于为与其有业务往来的乙公司银行贷款提供担保而确认了相应的预计负债,计入了当年度的营业外支出。该担保与甲公司取得应纳税收入相关。2×17年,担保责任实际履行完毕,甲公司在2×17年企业所得税汇算清缴期间向主管税务机关申请了
历史人物在社会发展中起着特殊的作用,主要表现在:历史人物()。
目前流行的Pentium(奔腾)微机的字长是
最新回复
(
0
)