首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fun(),请在注释
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fun(),请在注释
admin
2019-06-05
64
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,请在注释//********1********后添加适当的语句。
(2)定义类的友元函数fun(),请在注释//********2********后添加适当的语句。
(3)定义类的友元函数main(),请在注释//********3********后添加适当的语句。
(4)补充语句,释放内存。请在注释//********4********后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include<iostream.h>
class TestClass
{
public:
//********1********
{
data=d;
next=NULL;
}
void SetNext(TestClass* p)
{
next=p;
}
private:
int data;
TestClass* next;
//********2********
//********3********
};
TestClass* fun(TestClass* h)
{
TestClasS *t,*s,*u,*v;
s=h->next;
h->next=NULL;
while(s!=NULL)
{
for(t=s,v=h;v!=NULL
&&v->data<t->data;u=v,v=v->next);
s=s->next;
if(v==h)
h=t;
else
u->next=v;
t->next=v;
}
return h;
}
void main()
{
TestClass* h=NULL;
TestClass* q=NULL;
do{
int data;
cout<<"please input a number,and end with0"<<endl;
cin>>data;
if(data==0)break;
TestClass* p=newTestClass(data);
if(h==NULL)
{
h=q=p;
}
else
{
q->SetNext(p);
q=p;
}
}while(1);
h=fun(h);
for(;h!=NULL;)
{
q=h->next;
cout<<h->data<<" "<<endl;
delete h;
//********4********
}
return;
}
选项
答案
(1)添加语句:TestClass(int d) (2)添加语句:friend TestClass* fun(TestClass*); (3)添加语句:friend void main(); (4)添加语句:h=q;
解析
(1)题目1要求“完成构造函数的定义”。构造函数是一种特殊的成员函数,它的名字必须与类同名,所以这里的构造函数名字是TestClass。根据构造函数内的“data=d;”语句,知道构造函数TestClass中参数d为int型,即这里补全“TestClass(int d)”。
(2)题目2要求“定义类的友元函数fun()”。在C++中,如果在本类以外的其它地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中fun()在类TestClass以外的地方定义的,为了其实现对类TestClass中程序变量的调用,在类TestClass中补全“friend TestClass*fun(TestClass*);”。
(3)题目3要求“定义类的友元函数main()。”同(2),这里补全“friend void main();”。
(4)题目4要求“补充语句,释放内存。”为了防止内存泄漏,在指针使用后要将其释放。第四个标识前面的“delete h;”语句已经将指针h释放了,所以要释放指针q,只要将其指向h就可以了,即“h=q;”。
转载请注明原文地址:https://kaotiyun.com/show/q18p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序执行后,输出的结果是()。intx=-5,y=0;while(++x)y++;cout<<y<<end1;A)1B)2C)4D)5
有如下定义: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
C++中通常和一个运算符连用,构成一个运算符函数名的C++关键字为______。
A、 B、 C、 D、 D选项A)、B)、C)叙述的都是链式存储结构具有的特点,顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。因此其插入、删除运算操作木方便,需移动大量的结点。
A、 B、 C、 D、 A要对线性表进行二分法查找,对线性表有两个要求:第一,要求线性表是按顺序方式存储的;第二,要求线性表中的元素是按照从小到大的顺序排好序。
下列程序的输出结果为-5/8-3/4,请将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classFraction{//"分数"类public:Fractio
有如下语句序列:intx=-10;while(++x){}运行时while循环体的执行次数为______。
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。A)任何B)公有或保护C)保护或私有D)私有
常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD),则应采用______方法。
随机试题
简述合同解除的特征。
外伤性皿胸已一周,右胸叩诊为实音,呼吸音低,气管向对侧移位,血压14.7/9.3kPa(110/70mmHg),心率108次/分,体温38℃,经胸腔引流出血性胸液约700mL,但呼吸音及气管移位好转不明显,胸片示右胸2/3为大片密度增高阴影,最恰当的处理应
泌尿系统结石,在MR表现上是
属于会计信息质量要求的有()。
甲借用朋友乙的电脑数月。期间,甲因急需用钱,向同事丙借1000元,并就该电脑设定质押,但丙不知此电脑非甲所有。后甲逾期未偿还债务,丙即变卖该电脑实现债权。根据《物权法》的规定,下列表述中,正确的有()。
某彩票设有一等奖和二等奖,其玩法为从10个数字中选出4个,如果当期开奖的4个数字组合与所选数字有3个相同则中二等奖,奖金为投注金额的3倍,4个数字完全相同则中一等奖。为了保证彩票理论中奖金额与投注金额之比符合国家50%的规定,则一等奖的奖金应为二等奖的多少
2014年,第二届青年奥林匹克运动会(简称青奥会)在南京举行,青奥会是国际奥委会专门为青少年人设计的综合运动会,是在时任国际奥委会主席罗格的倡议下,国际奥委会于2007年决定创办的。以下关于青奥会的说法错误的是()。
下列关于股票的说法错误的是()。
1999年10月2日,A市甲商贸公司将盖有本单位公章的介绍信和空白合同书以及10万元定金交给公司职员楚某,委托其到相邻B市的乙商场购买空调100台,声明每台定价不得超过4000元。10月3日,楚某找到乙商场,出具了甲商贸公司的已填上购买空调内容的介绍信
Whatisthemangoingtodoverysoon?
最新回复
(
0
)