首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能: (1)初始化m_Num2的值为j,请在注释//********1********后添加适当的语句。 (2
用VC6打开考生文件夹下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能: (1)初始化m_Num2的值为j,请在注释//********1********后添加适当的语句。 (2
admin
2019-06-05
64
问题
用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与其他函数中的任何内容。
1 #include<iostream.h>
2 class TestClass
3 {
4 public:
5 //********1********
6
7 TestClass,(int i,int j)
8 {
9 m_Num1=i;
10 m_Num3+=i;
11 }
12 void Print()
13 {
14 cout<<’’m_Num1 = ’’<<In Num1<<endl;
15 cout<<’’m_Num2 = ’’<<m Num2<<end1;
16 cout<<’’m_Num3 = ’’<<m Num3<<end1;
17 }
18 void Add(int i)
19 {
20 m_Num3+=i;
21 }
22 private:
23 int m_Num1;
24 const int m_Num2;
25 static int m_Num3;
26 //********2********
27
28 };
29 //********3********
30 void fun()
31 {
32 TestClass Num(1,2);
33 Num.m_Num1=4;
34 //********4********
35 Num.Add();
36 Num.Print();
37 }
38 void main()
39 {
40 TestClasS Num(1,2);
40 Num.Print();
42 fun();
43 return;
44 }
选项
答案
(1)添加语句:TestClass(int i,int j):m_Num2(j) (2)添加语句:friend void fun(); (3)添加语句:int TestClass::m Num3=0; (4)将“Num.Add();”补充完整为:Num.Add(5);
解析
在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类TestClass和函数fun实现各种输出操作。
(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;”0
(4)函数fun()中“Num.Add();”语句应该是调用类“TestClass”中的成员函数“voidAdd(int i)”。其定义中存在参数int i,所以注释下修改的语句缺少参数。
主函数首先调用“Num.Print();”,即实现题目中输出的前三条语句,而“fun();”语句实现后面三条语句的输出,即“m_Num3=7”才是调用Num.Add的输出结果,即“m_Num3+=i;”的计算结果。“TestClassNum(1,2);”中将i的值初始化为1,“m_Num3”的值在上一次“Num.Print();”调用中为1,如果计算结果为7,那么Add(int i)中i的初始化值为5,即“Num.Add(5);”。
转载请注明原文地址:https://kaotiyun.com/show/r18p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
白箱法白箱测试是根据程序内部逻辑结构的分析来选取测试用例。由于测试用例对程序的逻辑覆盖程序决定了测试的完全性的程度,因此白箱测试也称为逻辑覆盖测试。
下面不属于C++的预定义的流对象是()。A)cinB)iostreamC)clogD)Celt
有如下类声明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(intn0);};
有如下定义:intb[10]={1,2,3,4,5,6,7,8,9,10},*q=b;则数值为8的表达式是()。A)*q+8B)*(q+7)C)*q+=8D)q+7
下列对于线性链表的描述中,正确的是()。A)存储空间必须连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且各元素的存储顺序是任意的C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间不一定是连续,且前件元素
C++中将两个字符串连接起来组成一个字符串的函数是______。
对软件设计的最小单位(模块或程序单元)进行的测试通常称为______测试。
若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为()。A)aB)AA.aC)a{}D)AA::a{}
负责数据库中查询操作的数据库语言是()。A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言
随机试题
职能制组织结构形式的优点是实现了()
三羧酸循环中发生底物水平磷酸化的反应是
下列关于房屋权属登记的表述中,不正确的是()。[2005年考题]
背景某水利枢纽工程,主要工程项目有大坝、泄洪闸、引水洞、发电站等,2003年2月开工,2004年6月申报文明建设工地,此时已完成全部建安工程量的45%。上级有关主管部门为加强质量管理,在工地现场成立了由省水利工程质量监督中心站以及工程项目法人、
幕墙工程中,后置埋件的验收要点有()。
教学媒体是教学内容的载体,是师生之间传递信息的工具,下列属于教学媒体的有()。
下列行为中,应当以盗窃罪定罪处罚的是()(2010年一专一第13题)
“东风不与周郎便,铜雀春深锁二乔”。这首诗的作者生活的年代与诗中所描述的历史事件发生的年代大约相隔了()。
延安整风运动最主要的任务是
To:AllstaffFrom;PersonnelDept.Date:December26th,2008Subject:AppointmentofaNewVicePresidentYouwillbepleas
最新回复
(
0
)