首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的工程test31_3。此工程包含一个test31_3.cpp,其中定义了可以动态分配的字符串类,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义类tstring的私有数据成员length和p,它们分
使用VC6打开考生文件夹下的工程test31_3。此工程包含一个test31_3.cpp,其中定义了可以动态分配的字符串类,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义类tstring的私有数据成员length和p,它们分
admin
2010-02-08
13
问题
使用VC6打开考生文件夹下的工程test31_3。此工程包含一个test31_3.cpp,其中定义了可以动态分配的字符串类,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类tstring的私有数据成员length和p,它们分别是血型的数据和字符型的指针,其中length表示一个字符串的长度。请在注释“//**1**”之后添加适当的语句。
(2)完成类tstring的构造函数,使length等于字符串m的长度,并申请由指针p指向的length长的字符型空间,将m所指的字符串复制到该空间。请在注释“//**2**”之后添加适当的语句。
(3)完成类tstring的成员函数strcopy(tstringn)的定义,该函数将对象n的值(包括字符串长度和字符串本身)复制给调用该函数的对象(对象n的字符串长度任意)。请在注释“//**3**”之后添加适当的语句。
(4)完成类tstring的友元函数strlink(tstring m,tstring n)的定义,该函数将可动态分配的字符串类对象m和n的字符串成员连接在一起(对象m和n的字符串长度任意),并返回该串。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
程序输出结果如下:
hello the world!
源程序文件test31_3.cpp清单如下:
#include<iostream.h>
#include<conio.h>
#include <string.h>
class tstring
{
public:
//** 1 **
tstring(char *m)
{
//** 2 **
strcpy(p,m);
}
void strcopy(tstring n);
friend char *strlink(tstring m,tstring n);
};
void tstring::strcopy(tstring n)
{
//** 3 **
char *q;
q=new char[length];
strcpy(q,tstring::p);
q=strcat(tstring::p,n.p);
tstring::p=q;
tstring::length=strlen(tstring::p);
}
char *strlink(tstring m, tstring n)
{
int length=strlen(m.p)+strlen(n.p);
char *p;
//** 4 **
strcpy(p,m.p);
p=strcat(p,n.p);
return p;
}
void main ( )
{
tstring a("hello ");
tstring b("the world");
tstring c("!");
a.strcopy(b);
cout<<strlink(a,c)<<end1;
}
选项
答案
(1) int length; char *p; (2) length=strlen(m); p=new char[length]; (3) int length=strlen(tstung::p)+strlen(n.p); (4) p=new char[length];
解析
本题是对类与字符串常用函数的综合考查。字符串常用函数strcpy、strcat和strlen的调用格式和调用限制是需要熟练掌握的。程序中通过申请新的空间和改变指针指向解决了原有字符串函数strcpy的目标字符串空间必须足够大的问题。根据实际情况利用以有类建立新类的能力是需要培养的。
转载请注明原文地址:https://kaotiyun.com/show/37ID777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列改革内容不是在《天朝天亩制度》中提出的一项是()
如果依据统计方法的功能进行分类的话,统计学可以分为()
下列哪种数据才可以运用卡方检验进行统计分析?()
已知某次学业成就测验的平均分数是80,标准差为4。如果某考生得分为92,则该分数转换为标准分后是()
一位教师计算了全班20个同学考试成绩的均值、中数和众数,发现大部分同学的考试成绩集中于高分段。下列哪句话不可能是正确的?()
关于教育目的各组成部分,下列表述正确的是
关于教育目的确立的依据,下列说法错误的是
下列说法错误的是
随机试题
呼吸中枢的化学感受器在何处?其适宜的刺激是什么?
下列属于辛凉解表剂的是()
假定S代表“4城市指数”,P1、P2、P3、P4分别代表城镇体系人口规模前4位的城市,P1>P2>P3>P4,以下方法中计算4城市指数的正确方法是()。
关于鉴定,下列说法正确的有()。
在某一会计期间,当企业取得收人和发生费用时,会计基本等式就转化为“资产=负债+所有者权益+(收入一费用)”。()(1.4)
认为用组织愿景和“做正确的事情”来激励下属的领导理论有()。
关于执行劳动条件和最低工资标准的说法,正确的是()。
要杜绝令人深恶痛绝的“黑哨”,必须对其课以罚款,或者永久性地取消其裁判资格,或者追究其刑事责任。事实证明,罚款的手段在这里难以完全奏效,因为在一些大型赛事中高额的贿金往往足以抵消被罚款的损失。因此,如果不永久性地取消“黑哨”的裁判资格就不可能杜绝令人深恶痛
有人曾提出要“让学校的每一面墙壁都开口说话”,这充分运用了()的德育方法。
在计算机系统性能评价中,对性能评价项目进行识别和设置是进行性能评价的基础工作。请写出计算机系统性能评价的4个项目名称。计算机系统性能评价的结果通常有峰值性能和()两个指标,后者最能体现系统的实际性能。
最新回复
(
0
)