试卷详情
-
中级软件设计师下午试题-100
-
[简答题]【说明】
设有下列关于图书借阅系统的E—R图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。假定已通过下列SQL语言建立了基本表:
CREATE TABLE Readers
(Rao CHAR(6) PRIMARY KEY,
Rname CHAR(20) NOT NULL,
Raddress CHAR(200),
Rphone CHAR(15));
CREATE TABLE Books
(Brio CHAR(6) PRIMARY KEY,
Rname CHAR(50) NOT NULL);
CREATE TABLE Administrators
(Ano CHAR(6) PRIMARY KEY,
Aname CHAR(20) NOT NULL);
CREATE TABLE Borrows
(Rno CHAR(6) NOT NULL,
Bno CHAR(15) NOT NULL,
Ano CHAR(6) NOT NULL,
Bdate DATE,
Rdate DATE,
PRIMARY KEY(Rno,Bno,Ano),
FOREGIN KEY(Rno) REFERENCE Readers(Rno),
FOREGIN KEY(Bno) REFERENCE Book(Bno)
FOREGIN KEY(Ano) REFERENCE Administrators(Ano));
CREATE TABLE Readers
(Rao CHAR(6) PRIMARY KEY,
Rname CHAR(20) NOT NULL,
Raddress CHAR(200),
Rphone CHAR(15));
CREATE TABLE Books
(Brio CHAR(6) PRIMARY KE
-
[简答题]阅读下列函数说明,将应填入 (n) 处的字句写在答卷纸的对应栏内。
【函数1说明】
函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(b1,…,bn)均为顺序表,“比较”两个顺序表A和B的大小。设A’和B’分别为A和B中除去最大共同前缀后的子表(例如,A=(y,X,X,Z,X,Z),B=(y,x,x,z,y,x,x,2),则两者中最大的共同前缀为(y,x,x,2),在两表中除去最大共同前缀后的子表分别为A’=(X,Z)和B’=(y,x,x,2))。若A’=B’=空表,则 A=B:若A’=空表,而B’≠空表,或者两者均不为空表,且A’的首元小于B,的首元,则A<B;否则A>B。
提示:算法的基本思想为:若相等,则j+1,之后继续比较后继元素:否则即可得山比较结果。显然,j的初值应为0,循环的条件是j不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有3种可能出现的情况需要区分。
【函数1】
int compare(SqList A,SqList B)
//若A<B,则返回-1;若A=B,则返回o:若A>B,则返回1
j=0;
while(j< (1) &&j<B.1ength)
if( A.elem[j] < B.elem[j] ) return(-1);
else if( A.elem[j] > B.elem[j] ) return(i);
else (2)
ff (A.length == B.length) return (0);
else fi(A.length < B.length ) return(-1);
else return(1);
//compare
//函数1的时间复杂度是 (3)
【函数2说明】
函数 exchange_L( SLink &L, int m )的功能是:用尽可能少的辅助空间将单链表中前 m个结点和后 n 个