首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释∥********1********后添加适当的语句。 (2)定义类的友元函数fun(),请在注释∥
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释∥********1********后添加适当的语句。 (2)定义类的友元函数fun(),请在注释∥
admin
2015-07-20
38
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,请在注释∥********1********后添加适当的语句。
(2)定义类的友元函数fun(),请在注释∥********2********后添加适当的语句。
(3)定义类的友元函数main(),请在注释∥********3********后添加适当的语句。
(4)补充语句,释放内存。请在注释∥********4********后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include(iostream.h>
C1ass 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
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 with 0”<
Cin>>data;
if(data==0)break;
TestClass*P = new
TestClasS(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<
data<<””<
delete h;
∥********4********
}
return;
}
选项
答案
(1)添加语句:TestClass(intd) (2)添加语句:friend TestC3.ass*fun(TestClass*); (3)添加语句:friend void mein(); (4)添加语句:h=q;
解析
本题的功能是将键盘输入的数字建立一个链表。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类’l~estClass和函数fun实现各种输出操作。
【解题思路】
(1)题目1要求“完成构造函数的定义”。构造函数是一种特殊的成员函数,它的名字必须与类同名,所以这里的构造函数名字是TestClass。根据构造函数内的“data=d;"语句,知道构造函数TestClass中参数d为int型,即这里补全“TestClass(intd)”。
(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/V3Np777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
结构化程序设计主要强调的是______。
若有以下定义及初始化语句:inti=100;int*ip=&i;intk=*ip;并假设整型数i的地址为0x12345678,指针中的地址为0x21000000,则k的值为【】。
数据的逻辑结构有线性结构【】两大类。
汇编程序的功能是将汇编语言所编写的源程序翻译成由【】组成的目标程序。
在进行任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()。
下面程序的输出是()。#defineN3#defineM(n)((N+1)*n)#include<iostrearn.h>voidmain(){intz=2*(N+M(5+1));cout<<z<<end1;}
若语句:cout<<seffill(’>’)<<setw(5)<<3141512<<sctw(5)<<"OK!";是程序中第1个输出语句,则输出结果是()。
以下程序的执行结果是【】。#include<iostream>#definePI____3.14159constintR=10;voidmain(){doublea,b;ac2*R*PI
下列程序的输出结果是【】。#include<iostream>usingnamespacestd;classTest{public:Test(){cnt++;)~Test(){cnt--;)statici
随机试题
广泛深入地做好对群众的宣传、教育、发动和组织工作的作用是()。
急性肾炎的主要表现是
痢下赤白黏冻,白多赤少,腹痛,里急后重,纳呆脘闷,头身困重,舌淡苔白腻,脉濡缓,宜诊断为
工程质量监理的依据有()。
下列关于骨料在混凝土中的作用,错误的是()。
产品质量检验机构计量认证的内容不包括()。
某汽车制造企业为增值税一般纳税人,生产销售小汽车(消费税税率为5%),每辆不含税销售价格统一为10万元,2017年5月发生如下业务。(1)与某特约经销商签订了40辆小汽车的平销返利协议,协议规定该小汽车制造企业按含税销售额的5%支付返利并由经销商开具普通
有权根据宪法和法律制定行政法规的是()
(14年)设函数f(u)具有2阶连续导数,z=f(excosy)满足若f(0)=0,f’(0)=0,求f(u)的表达式.
A、壶里的B、干净的C、烧开的D、价格贵的B录音中说“我们要尽量喝没有受到污染的干净的水”,所以选B。
最新回复
(
0
)