阅读下列说明和C++程序,将应填入横线处的语句写在答题纸的对应栏内
[程序6说明]
C++语言本身不提供对数组下标越界的判断。为了解决这一问题,在程序6中定义了相应的类模板,使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。
[程序6]
#include<ioStream.h>
template<class T>class Array;
template<class T>class ArrayBody{
friend (1) ;
T* tpBody;
int iRows,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=;
if(j<0|| j≥iColumns
column_error=;
if(row_error==true || column_error==true)
(3) ;
}
eatch(char) {
if(row error==true)
cerr<<“行下标越界[“<<iCurrentRow<<”]”;
if(column error==true)
cerr<<“列下标越界[“<<j<<”]”;
cout<<“/n&rdquo
试题四
阅读以下说明和C程序代码,将应填入___(n)___处的语句写在答题纸的对应栏内。
[说明]
函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:
# define MAXSIZE 32
typedef struct
int * elem; /* 栈的存储区 */
int max; /* 栈的容量,即栈中最多能存放的元素个数 */
int top; /* 栈顶指针 */
Stack;
[C代码]
int InitStack(Stack * S,int n) / * 创建容量为n的空栈 */
S->elem=(int *)malloc(n * sizeof(int));
if(S->elem==NULL)return-1;
S->max=n; (1) =O;return 0;
int Push(Stack * S,int item) / * 将整数item压入栈顶 * /
if(S->top==S->max) printf(“Stack is full! /n”);return-1;
(2) =item;return 0;
int StackEmpty(StackS) return (! S.top) 1:0; / * 判断栈是否为空 * /
int Pop(Stack *S ) / * 栈顶元素出栈 * /
if(! S->top)printf(“Pop an empty stack! /n”);return-1;
return (3) ;
void MultibaseOutput(long n,int B)
编译过程中,对高级语言程序语句的翻译主要考虑声明语句和可执行语句。对声明语句,主要是将需要的信息正确地填入合理组织的(19)中;对可执行语句,则是(20)。
(19)处填()。我来回答: