请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.epp,其中定义了Array类。 在C++程序中访问数组元素时,如果索引值(下标)小于0或者大于元素个数减1,就会产生越界访问错误。Array是

admin2015-06-27  12

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.epp,其中定义了Array类。
在C++程序中访问数组元素时,如果索引值(下标)小于0或者大于元素个数减1,就会产生越界访问错误。Array是一个带有检查越界访问功能的数组类,其成员列表如下:
公有成员函数功能
GetValue获取指定元素的值
SetValue将指定元素设置为指定值
GetLength获取元素个数
私有成员函数功能
IsOutOfRange检查索引是否越界
私有数据成员功能
_p指向动态分配的整型数组的指针
size存放元素个数
Array类的构造函数会动态分配一个int类型数组,以存储给定数量的元素。在公有成员函数GetValue和SetValue中,首先调用私有成员函数IsOutOfRange检查用于访问数组元素的索引是否越界,只有当索引值在有效范围内时,才能进行元素访问操作。
请在横线处填写适当的代码,然后删除横线,以实现Array类的功能。此程序的正确输出结果应为:
1,2,3,4,5,6,7,8,9,10
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//proj2.cpp
#include
usingnamespacestd;
classArray{
public:
Array(intsize)//构造函数
{
//********found********
下列语句动态分配一个int类型数组
_p=________;
size=size;
}
~Array(){delete[]_p;)//析构函数
voidSetValue(intindex,intvalue)//设置指定元素的值
{
if(IsOutOfRange(index)){
ceEE<<"Indexoutofrange!"<reLurn;
}
//********found********
________;
}
intGetValue(intindex)const//获取指定元素的值
{
if(IsOutOfRange(index)){
cerE<<"Indexoutofrange!"<return-1;
}
//********fOUnd********
________;
}
intGetLength()const{return_size;)//获取元素个数
private:
int*p;
intsize;
boolIsOutOfRange(intindex)const
//检查索引是否越界
{
//********found********
if(index<0||________)
returntrue;
elsereturnfalse;
}
};
intmain()
{
Arraya(10);
for(inti=0;ia.SetValue(i,i+1);
for(intj=0;jtout<cout<return0;
}

选项

答案(1)new int [size] (2)_p[index] = value (3)return _p[index] (4)index > _size

解析 (1)主要考查考生对动态分配的掌握,题目要求分配一个int类型数组,数组长度为size,应使用new语句分配空间,因此为new int[size]。
(2)主要考查考生对成员函数的掌握,先看函数功能:设置指定元素的值。index为指定的下标,value为指定的值,因此使用语句: _p[index] = value;。
(3)主要考查考生对成员函数的掌握,函数功能为获取指定元素的值,index为要求返回的元素的下标,直接使用return语句返回数组元素即可。
(4)主要考查考生对if语句的掌握,函数功能是检查索引是否越界,当index<0或者index> size时,index越界,返回true。
转载请注明原文地址:https://jikaoti.com/ti/5HXiFFFM
0

最新回复(0)