软题库 学习课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷年份2004年上半年
试题题型【分析简答题】
试题内容

试题六
11、[程序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”;
}
return tpBody[iCurrentRow * iColumns+j];
}
~ArrayBody(){delere[]tpBody;}
};
template<class T>class Array {
ArrayBody<T> tBody;
public:
ArrayBody<T> & operator[](int i){
(4)  ;
return tBody;
};


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=a2[10][20];         / * 有越界提示:行下标越界[10]列下标越界[20] * /
b2=a2[1][4];           / * 没有越界提示 * /
}

查看答案

相关试题

3题:

试题三
阅读下列说明以及图4-4和图4-5,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下。
1.浏览客户信息:任何使用因特网的用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。
2.登录:电话公司授予每个客户一个账号。拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。
3.修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
4.删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。系统采用面向对象方法进行开发,在开发过程中确定的类如表4-3所示。
表4-3  开发过程中确定的类


[问题1]
在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图4-4所示。指出图中的A,B,C和D分别是哪个用例?


[问题2]
在UML中,重复度(multiplicity)定义了某个类的一个实例可以与另一个类的多个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如,图4-5中的类InternetClient和CustomerList,InternetClient端的“0...*”表示:1个 CustomerList的实例可以与0个或多个InternetClient的实例相关联;CustomerList端的“1”表示:1个InternetClient的实例只能与1个CustomerList的实例相关。
指出图4-5中(1)~(4)处的重复度分别为多少?


[问题3]
类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了4种关系:依赖(dependency)、概括(generaliza tion)、关联(association)和聚集(aggregation)。分别说明这4种关系的含义,并说明关联和聚集之间的主要区别。



答案解析与讨论:www.cnitpm.com/st/2451120874.html

4题:

9、[程序4]

START

PRUGBC    LD       GR0,DATA

LEA      GR1,0

LEA      GR3,48

LOOP1     CPL      GR0,WDT,GR1

JP2      LOOP2

ST       GR3,BTASC,GR1

LEA      GR1,1,GR1

LEA      GR2,-4,GR1

JN2      LOOP1

(1)

LOOP2     LEA      GR2,48

LOOP3     CPL      GR0,WDT,GR1

JMI      NEXT

(2)

LEA      GR2,1,GR2

JMP      LOOP3

NEXT (3)

LEA      GR1,1,GR1

LEA      GR2,-4,GR1

JNZ       LOOP2

LAST (4) ;处理个位数

(5)

EXIT

C48      DC        48

WDT      DC        10000

DC    1000

DC   100

DC   10

BTASC   DS    5

DATA   DC    #FA59H

END

答案解析与讨论:www.cnitpm.com/st/2451221337.html

5题:

10、[函数5]
int DeleteNode(Bitree *r,int e){
Bitree p=* r,pp,s,c;
while(  (1)  ){/ * 从树根结点出发查找键值为e的结点 * /
pp=p;
if(e<p->data) p=p->Lchild;
else p=p->Rchild
}
if(! p)return-1;/ * 查找失败 * /
if(p->Lchild && p->Rchild){/ * 处理情况③ * /
s=  (2)  ;pp=p;
while(  (3)  ){pp=s;s=s->Rchild;}
p->dara=s->data;P=s;
}
/ * 处理情况①、② * /
if(  (4)  )c=p->Lchild;
else c=p->Rchild
if(p==*r)  *r=c;
else if(  (5)  )pp->Lchild=c;
else pp->Rchild=c;
free(p);
return 0;
}

答案解析与讨论:www.cnitpm.com/st/2451318276.html