首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果: num:0 num:1 num:10 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果: num:0 num:1 num:10 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//
admin
2018-10-23
48
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,请修改程序中的错误,使程序能得出正确的结果:
num:0
num:1
num:10
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1 #include<iostream.h>
2 int i=10;
3 class TeStClass
4 {
5 public:
6 TestClass(int i)
7 {
8 cout<<’’num:’’<<i<<end1;
9 //********error********
10 i=i+1;
11 }
12 void Print()const
13 {
14 cout<<’’num:’’<<i<<end1;
15 }
16 private:
17 int i;
18 };
19 void main()
20 {
21 //********error********
22 TestClass print;
23 int i(0);
24 print.Print();
25 //********error********
26 cout<<’’num:’’<<i.<<end1;
27 return;
28 }
选项
答案
(1)this->i=i+1;或TestClass::i=i+1;或(*this).i=i+l; (2)TestClass print(0); (3)cout<<’’num:’’<<::i<<end1;
解析
程序要求输出member的值为0,1,10。从已定源程序的main主函数开始入手,可以看出程序首先通过类TestClass中的TestClass构造函数的调用实现第一次num值的输出;然后通过调用类Testclass中的成员函数Print实现第二次num值的输出;最后通过输出函数cout实现第三次num值的输出。
(1)打开modi1.clap,调试程序,显示错误提示为第二标识下“modi1.cpp(22):error C2512:TestClass’:no appropriate default constructor available”,主函数中首先调用的就是第2个标识下的TestClassprint函数,构造函数的名字和类的名字是一样的,而程序中给出的“TestClass print;”没有给出参数,所以程序调试时无法确定调用的函数。根据TestClass构造函数“TestClass(int i)”的定义,应该存在int型参数,并且题目要求第一次输出的值为“0”,所以第2个标识正确的调用函数为“TestClass print(0);”。
(2)运行,发现第一次的输出正确,但是第二次的输出值为“-858993460”,并不是题目中要求的“1”。在主函数中,可知第二次输出调用的是“print.Print();”,即类TestClass的成员函数“Print()”。成员函数Print的定义“void Print()const”中的输出语句为“cout<<’’num"”<<i<<end1;”,而第二次的输出值为“-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<<end1;”语句实现第三次输出,第三次的输出值为“0”,并不是题目中要求的“10”。程序中存在“int i=10;”定义,这里应该是调用“int i=10;”中的“i”值。通过域定义符引用这个“i”,所以修改为“cout<<’’num:’’<<::i<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/LwAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
__[12]__是一系列相关函数的模型或样板,这些函数的__[13]__形式相同,只是所针对的__[14]__不同。
内联函数是通过______来实现的,因此内联函数是真正的函数。
在面向对象方法中,类之间共享属性和操作的机制称为______。
下列程序的执行结果是()。#inClude<iostream.h)#include(stdlib.h)classTestClass{public:intx,y;TestClass(){x=
下列程序输出的结果是()。#include<stdio.h>un1(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}
下列定义中p指向的地址可更改,但*p不能够更改的是()。
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原是()。#include<iostream.h>voidmain(){int*p,*q,a,b;p=&a;eout<<"inputa:";
请将下列类定义补充完整。classBase{public:voidfun(){cout<<"Base∷fun"<<end1;}};c1assDehVed:publicBase{public:
随机试题
《左传》最擅长的是叙写()
患者,女,68岁。因“晕厥1次”入院。心电图:心率38次/分,P波与QRS波各自独立,互不相干,心房率快,QRS波形态及时限正常,R-R间期相等。患者最有可能的诊断是
药毒引起皮肤发疹的主要原因是
雷丸与雷公藤的共有功效是()。
初产妇,孕39周,规律宫缩已19小时,宫颈口扩张3cm,胎心136次/分,产妇一般情况良好,宫缩持续30秒,间歇10~12分钟,宫缩高峰时子宫不硬,检查无头盆不对称及骨盆狭窄。正确的处理是()
以某企业全体职工为总体,了解职工的性别和年龄构成,则下列各项中属于品质标志是()。
甲公司于2017年1月1日动工兴建一栋办公楼,工程采用出包方式。工程于2018年6月30日完工,达到预定可使用状态。相关资料如下。(1)专门借款:公司为建造办公楼于2017年1月1日取得专门借款6000万元,借款期限为3年,年利率为5%,按年支付利息。
若固定资产预计弃置费用为100万元,则应将其计入固定资产价值,借记“固定资产100万元”,贷记“预计负债100万元”。()
结合材料,回答问题:今天,我们迎来了一个更加注重精细品质和独特体验的时代。“我真的是希望工匠精神可以变成我的墓志铭。”不久前,一位生产智能电器的企业家如是感慨。企业对高精尖、炫彩酷的不懈追求,同工匠精神不谋而合。像手工匠人一样雕琢技艺、精致产品
Chronicinsomniaisamajorpublichealthproblem.Andtoomanypeopleareusing【C1】______therapies,evenwhilethereareafew
最新回复
(
0
)