更多"[说明]
C++语言本身不提供对数组下标越界的判断。为了解决这一问"的相关试题:
[简答题][说明]
C++语言本身不提供对数组下标越界的判断。为了解决这一问题,在以下[C++程序]中定义了相应的类模板,使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。
[C++程序]
#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 = tr
[多项选择]【说明】
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";
<
[简答题]【说明】
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[]
[填空题]运行异常经常有算术异常、空指针异常、 【10】 、数组负下标异常和数组索引越界异常。
[单项选择]在使用Dim语句定义数组时,在缺省情况卜数组下标的下限为( )。
A. 0
B. 1
C. F
D. 必须指定下标
[填空题]在使用Dim语句定义数组时,在默认情况下数组下标的下限为 【10】 。
[单项选择]以下子例行程序用于实现向一维数组下标为P的数组元素处插入一个整数X
SUBROUTINE INSERT(B,N,P,X)
INTEGER B(N),X,P
DO 20 K=N-1,P,-1
B(K+1)=______
20 CONTINUE
B(P)=X
END
为使程序完整,应在______处放入()。
A. X
B. K
C. B(P)
D. B(K)
[填空题]以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数中,n存放a数组中数据的个数。请填空。
#include<stdio.h>
void fun(int s[],int *n,int k,int x)
int i;
for(i=*n-1;i>=k;i--)s______=s[i];
s[k]=x;
*n=*n+______;
main( )
int a[20]=1,2,3,4,5,6,7,8,9,10,11,i,x=0,k=6,n=11;
fun(a,&n,k,x);
for(i=0,i<n,i++)printf("%4d",a[i]);printf("/n");
[填空题]本题中定义了长度为20的一维整型数组a,并将数组元素的下标值赋给数组元素,最后打印输出数组中下标为奇数的元素。
public class java1
public static void main(String[] args)
int a[]=______;
int i;
for(______; i++)
a[i]=i;
for(i=0; i<20; i++)
if(______)
System. out. print("a["+i+"]="+a[i]+",");
[填空题]在使用Dim语句定义数组时,在缺省情况下数组下标的下限为______。