首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,实现一个自定义的字符串类MyString,重载取下标操作符([]),使类的对象能够通过下标取字符串的某位元素。如果下标越界,则返回第一个元素的值。 请在程序中//**********found*
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,实现一个自定义的字符串类MyString,重载取下标操作符([]),使类的对象能够通过下标取字符串的某位元素。如果下标越界,则返回第一个元素的值。 请在程序中//**********found*
admin
2016-06-12
25
问题
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,实现一个自定义的字符串类MyString,重载取下标操作符([]),使类的对象能够通过下标取字符串的某位元素。如果下标越界,则返回第一个元素的值。
请在程序中//**********found**********之下一行的横线处填写适当的代码,并删除横线,使程序完整、正确。
输出结果为:
S
t
#include
#include
using namespace std;
class MyString
{
private:
char*str;
public:
MyString(char*s)
{
//**********found**********
str。new——;
strcpy(str,s);
)
一MyString()
{
//**********found**********
_________;
}
char&operator[](int i);
};
char&MyString::operator[](int i)
{
//**********found**********
if(_________:;
return str
;
//**********found**********
return__________;
}
int main()
{
MyString test(“test string”),
cout<
cout<
return 0;
}:
选项
答案
(1)char[strlen(s)+1] (2)delete[]str (3)i
解析
本题考查MyString类,涉及构造函数、析构函数、动态内存的分配与释放、字符串长度函数。
【解题思路】
(1)主要考查构造函数中成员变量的赋值、动态内存的分配和字符串长度函数的使用,成员变量str是字符串指针,赋值时使用new[]分配内存空间,为了存放字符串尾部的空字符,需要分配的容量为字符串str长度+1,另外使用strlen获取str的长度。
(2)主要考查考生对析构函数定义的掌握和动态内存的释放,MyString类的成员str是在构造函数中使用new[]分配的,所以在析构函数中需要使用delete[]释放。
(3)主要考查考生对字符串库函数调用的掌握,使用strlen获取str的长度,判断下标i是否越界。
(4)如果下标i越界,根据题意返回第一个元素8tr[0]。
转载请注明原文地址:https://kaotiyun.com/show/RiNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<iostream>usingnamespacestd;intmain(){intintone;int&rInt=intone;intone=
有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass();~MyClass();v
下面是类MyClass的定义,对定义中各种语句描述正确的是()。classMyClass{publiC:voidMyClass(inta)//①{x=a;
设有以下变量定义,并已赋确定的值:charw;intx;floaty;doublez;则表达式:w*x+z-y所求得的数据类型为()。
执行下列语句后,c3中的值为【】 intc1=1,c2=2,c3;c3=1.0/c2*c1;
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
下列叙述中,不属于结构化程序设计方法的主要原则的是
下面叙述错误的是()。
以下哪个不是C++语言中的有效标识符()。
下列哪个是C++语言的有效标识符?
随机试题
甲肝的预防措施主要有
周期性交流量,循环一次所需的时间叫做频率。()
A.轻度烧伤B.中度烧伤C.重度烧伤D.深度烧伤E.特重度烧伤女,30岁,家中火灾烧伤,咳嗽,咳出炭末痰,呼吸困难,面、颈、口鼻深Ⅱ度烧伤,声音嘶哑。患者的烧伤严重性分度为
下列关于风险管理与商业银行经营的关系的说法中,正确的有()。
某城市准备在公园里建一个矩形的花园,长比宽多40米,同时在花园周围建一条等宽的环路。路的外周长为280米,路的面积为1300平方米,则路的宽度为多少米?
殚精竭虑:处心积虑
下列哪一项是数据库系统的核心和基础?
下面不属于使用视图的优点的是
设有下面的程序段:x=InputBox("请输入一个整数")ReDima(x)Fork=xTo0Step-1a(k)=kNextk一般,在这段程序之前应先进行数组a的定义
Artisbothcreationandrecreation.【R1】______MuchasIappreciateallformsofimmortalcreativework,Ithinkthespiritoft
最新回复
(
0
)