首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能: (1)初始化m Num2的值为j,请在注释//********1********后添加适当的语句。 (2)补充全局函数f
用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能: (1)初始化m Num2的值为j,请在注释//********1********后添加适当的语句。 (2)补充全局函数f
admin
2019-06-05
51
问题
用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能:
(1)初始化m Num2的值为j,请在注释//********1********后添加适当的语句。
(2)补充全局函数fun()使之能够调用类TestClass的成员变量,请在注释//********2********后添加适当的语句。
(3)初始化静态变量,请在注释//********3********后添加适当的语句。
(4)修改注释//********4********后的语句。
使得程序输出以下内容:
m_Num1=1
m_Num2=2
m_Num3=1
m_Num1=4
m_Num2=2
m_Num3=7
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include<iostream.h>
ClasS TestClasS
{
public:
//********1********
TestClass(int i,int j)
{
m_Num1=i;
m_Num3+=i;
}
void Print()
{
cout<<"m_Num1="<<m_Num1<<endl;
cout<<"m_Num2="<<m-Num2<<endl;
cout<<"m Num3="<<m Num3<<endl;
)
void Add(int i)
{
m Num3+=i;
}
private:
int m Num1;
const int m Num2;
static int m Num3;
//********2********
};
//********3********
void fun()
{
TestClass Num(1,2);
Num.m Num1=4;
//********4********
Num.Add();
Num.Print();
}
void main()
{
TestClass Num(1,2);
Num.Print()j
fun();
return;
}
选项
答案
(1)添加语句:TestClass(int i,int j):mNum2(j) (2)添加语句:friend void fun(); (3)添加语句:int TestClass::m Num3=0; (4)将“Num.Add();”补充完整为:Num.Add(5);
解析
(1)根据“const int m_Num2;”语句知道m_Num2为类TestClass中的私有数据,另外,C++定义构造函数的初始化数据成员的方法中可以在原有函数末尾加一个冒号,然后列出参数的初始化表实现,即“TestClass(int i,int j):m_Num2(j)”。
(2)在C++中,如果在本类以外的其他地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中fun()在类TestClass以外的地方定义的,为了实现其对类TestClass中成员变量的调用,在类TestClass中补全“friend void fun();”,即声明fun()为类TestClass的友元函数。
(3)在C++中,初始化类中数据成员的格式可以是“<类型>类名class::参数=”,其中<类型>为要初始化参数的类型,“::”为作用域符号,说明参数是class中的参数,所以这里补全“int TestClass::m_Num3=0;”。
(4)函数fun()中“Num.Add();”语句应该是调用类“TestClass”中的成员函数“void Add(int i)”。其定义中存在参数int i,所以注释下修改的语句缺少参数。
主函数首先调用“Num.Print();”,即实现题目中输出的前三条语句,而“fun();”语句实现后面三条语句的输出,即“m_Num3=7”才是调用Num.Add的输出结果,即“m_Num3+=i;”的计算结果。“TestClass]Num(1,2):”中将i的值初始化为1,“m_Num3”的值在上一次“Num.Print();”调用中为1,如果计算结果为7,那么Add(int i)中i的初始化值为5,即“Num.Add(5);”。
转载请注明原文地址:https://kaotiyun.com/show/e18p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于抽象类的表述中正确的是()。A)派生类必须要实现作为基类的抽象类中的纯虚函数B)抽象类的成员函数至少有一个没实现C)抽象类不可能用来定义对象D)派生类不能成为抽象类
下列程序执行后,输出的结果是()。intx=-5,y=0;while(++x)y++;cout<<y<<end1;A)1B)2C)4D)5
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为()。A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩
下列的方法中,不属于软件调试技术的是()。A)强行排错法B)集成测试法C)回溯法D)原因排除法
执行下列语句序列:imx=1,&y=x;cout<<x<<’-’<<y<<end1;输出结果为______。
A、 B、 C、 D、 C白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
A、 B、 C、 D、 B对二叉树的访问有3种方式,其中任意的两种可惟一确定一颗二叉树。但无论是前序、后序还是中序遍历二叉树时,其区别在于访问根的先后次序不同,而访问叶结点的顺序完全相同。
C++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是()。A)coutB)cinC)cerrD)cset
有如下类定义:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{
随机试题
患者,女,25岁,主诉:近一个月发现全口牙龈增生,影响进食,有牙龈自发性出血史。其中最不可能的诊断是()
A.白色处方B.橙色处方C.淡绿色处方D.淡红色处方E.淡黄色处方
医院向准予其注册的卫生行政部门报告的正确期限应是其对吴某的行为,卫生行政部门应采取的措施是
浅表性胃炎的显微镜所见是病变主要位于黏膜浅层上三分之一。()
某企业2011年主营业务收人为12000万元,主营业务成本为7000万元,财务费用为200万元,利润总额为570万元,净利润为426万元,经营活动现金净流入量为1200万元,其资产负债表如下:根据上述资料,回答下列问题:该企业2011年的应收账款周
2015年1月1日,甲公司按面值发行按年付息、到期还本的五年期可转换公司债券1000万元,票面利率5%,发行债券时二级市场上与之类似的没有附带转换权的债券市场利率为9%,(P/A,9%,5)=3.89,(P/S,9%,5)=0.65,发行日可转债公司债券权
伊斯兰教游客用餐,以清真菜为宜,不宜安排西餐。()
若某物质在隔绝空气的情况下受热分解生成CO2和H2O,则组成该物质的元素有______、______和_____。
以下关于各类民事法律行为之间关系的表述正确的是()。
一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元格实现读取或者写入,这种总线事务方式是________。
最新回复
(
0
)