选择题:阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】 C++语言本身不提供对数组

  • 题目分类:软考中级
  • 题目类型:选择题
  • 查看权限:VIP
题目内容:
阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。

【说明】

C++语言本身不提供对数组下标越界的判断。为了解决这一问题,在程序6中定义了相应的类模板,使得对厂任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。

include<iostream.h>

template <class T> class Array;

template <class T> class ArrayBody {

friend (1)

T* tpBody;

int iRows, iColumns, iCurrentRow;

ArrayBody (int iRsz, int iCsz) {

tpBody =(2)

iRows = iRsz; iColumns =iCsz; iCurrentRow =-1;

}

public:

T& operator[] (int j) {

bool row_error, column_error;

row_error=column_error=false;

try{

if (iCurrentRow < 0 || iCurrentRow >=iRows)

row_error=true;

if (j < 0 || j >=iColumns)

column_error=true;

if ( row_error==true || column_error == true)

(3)

}

catch (char) {

if (row_error==true)

cerr << "行下标越界[" << iCurrentRow << "] ";

if (column_error== true )

cerr << "列下标越界[" <<j << "]";

cout << "\n";

}

return tpBody[iCurrentRow * iColumns +j];

};

~ArrayBody ( ) { delete[] tpBody; }

};

template <class T> class Array {

ArrayBody<T> tBody;

public:

ArrayBody<T> & operator[] (int i) {

(4)

return tBody;

}

Array (int iRsz, int iCsz) :(5) {}

};

void main()

{ Array<int>a1(10,20);

Array<double>a2(3,5);

int b1;

double b2;

b1=a1[-5][10]; //有越界提示:行下标越界[-5]

b1=a1[10][15]; //有越界提示:行下标越界[10]

b1=a1[1][4]; //没有越界提示

b2=a2[2][6]; //有越界提示:列下标越界[6]

b2=s2[10][20]; //有越界提示:行下标越界[10]列下标越界[20]

b2=a2[1][4]; //没有越界提示

}




参考答案:

下列药材属于菊科的是

下列药材属于菊科的是A.砂仁 B.青蒿 C.牵牛子 D.牛蒡子 E.益智仁

查看答案

阅读下列说明,回答问题1至问题3。[说明] 基本路径法设计出的测试用例能够保证在测试中程序的每一

阅读下列说明,回答问题1至问题3。[说明] 基本路径法设计出的测试用例能够保证在测试中程序的每一

查看答案

下列矿物类药材中属于铁化合物类的有

下列矿物类药材中属于铁化合物类的有A.磁石 B.炉甘石 C.赭石 D.雄黄 E.自然铜

查看答案

使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

查看答案

黄酮类化合物的分类依据是

黄酮类化合物的分类依据是A. 4位是否具有羰基 B. B环联接位置 C. 三碳链是否构成环 D. 苯环取代的羟基个数 E. 中央三碳链的氧化程度

查看答案