首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
admin
2019-06-05
33
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,请在注释//********1********后添加适当的语句。
(2)定义类的友元函数fun(),请在注释//********2********后添加适当的语句。
(3)定义类的友元函数main(),请在注释//********3********后添加适当的语句。
(4)补充语句,释放内存。请在注释//********4********后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1 #include<iostream.h>
2 class TestClass
3 {
4 public:
5 //********1********
6
7 {
8 data=d;
9 next=NULL;
10 }
11 void SetNext(TestClass* p)
12 {
13 next=p;
14 }
15 private:
16 int data;
17 TestClass* next;
18 //********2********
19
20 //********3********
21
22 };
23 TestClass* fun(TestClass* h)
24 {
25 TestClass *t,*s,*u,*v;
26 s=h一>next;
27 h->next=NULL;
28 while(s!=NULL)
29 {
30 for(t=s,v=h;v!=NULL&&v->data<t->data;u=v,v=v一>next);
31 s=s一>next;
32 if(v==h)
33 h=t;
34 else
35 u->next=v;
36 t一>next=v;
37 }
38 return h;
39 }
40 void main()
41 {
42 TestClass* h=NULL;
43 TestClass* q=NULL,
44 do {
45 int data;
46 cout<<’’please input a number,and end with 0’’<<end1;
47 cin>>data;
48 if(data==0)break,
49 TestClass* p = new TestClass(data);
50 if(h==NULL)
51 {
52 h=q=p;
53 }
54 else
55 {
56 q一>SetNext(p);
57 q=p;
58 }
59 }while(1);
60 h=fun(h);
61
62 for(;h!=NULL,)
63 {
64 q=h一>next;
65 cout<<h一>data<<’’ ’’<<end1;
66 delete h;
67 //********4********
68 }
69 return;
70 }
选项
答案
(1)添加语句:Testclass(int d) (2)添加语句:friend TestClass*fun(TestClass*); (3)添加语句:friend void main(); (4)添加语句:h=q;
解析
本题的功能是将键盘输入的数字建立一个链表。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类TestClass和函数fun实现各种输出操作。
(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/Em8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。#include<iostream>usingnamespacestd;classA{public:A(){cout<<’A’;}
A、 B、 C、 D、 C结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
A、 B、 C、 D、 D选项A)、B)、C)叙述的都是链式存储结构具有的特点,顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。因此其插入、删除运算操作木方便,需移动大量的结点。
下列程序的输出结果为12.324.6,请将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classBase{public:Base(intA):id
有如下语句序列:intx=-10;while(++x){}运行时while循环体的执行次数为______。
下列关于函数模板的描述中,正确的是()。A)函数模板是一个实例函数B)使用函数模板定义的函数没有返回类型C)函数模板的类型参数与函数的参数相同D)通过使用不同的类型参数,可以从函数模板得到不同的实例函数
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。A)任何B)公有或保护C)保护或私有D)私有
己知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是()。A)f(v1,v2);B)f(v1,&v2);C)f(&v1,v2);D)f(
在C++语言中,打开一个文件就是将这个文件与一个什么建立关联?
随机试题
1分子葡萄糖酵解时净生成多少个ATP?
(2010年)Windows的设备管理功能部分支持即插即用功能,下面四条后继说明中有错误的一条是()。
经计算结构跨中截面的截面惯矩为Ic=2.3741×10-2m4,截面面积Ac=0.4309m2。汽车荷载的冲击系数值与下列______项数值最为接近?假定不计受压钢筋面积,如图所示,h0=67.5cm,并设跨中计算弯矩为MGk=631.40kN·m
会计分录
多式联运单据
金属晶体中金属原子有三种常见的堆积方式:六方堆积、面心立方堆积和体心立方堆积。图中a、b、c分别代表这三种堆积方式的晶胞结构。a、b、c三种晶胞内金属原子个数比为()。
宰相必起于州部,猛将必发于卒伍。对这一句话,以下选项理解正确的是()。
想知道人如何感受、思考、判断,但又无法看到大脑怎样作业,大脑就成了一个无法打开的黑箱。给这个黑箱输入一个刺激,通过分析输出的变化来推测其内部工作的过程,这便是利用黑箱方法从事研究的基本逻辑。它至今在心理和行为研究中占统治性地位。其应用的极端形式是把人脑和计
某公司欲开发一个在线交易系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景。其中“当系统面临断电故障后,需要在1小时内切换至备份站点并恢复正常运行”主要与(54)质量属性相关,通常可采用(55)架构策略实现该属性;“在并发用户数量为1000人时,
(Nowonder)that(man’s)greatdreamhasbeensomedaytocontroltheweather.Thefirststeptowardcontrolis,ofcourse,knowl
最新回复
(
0
)