软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷7

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
1

阅读下列函数说明,将应填入(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 个结点的互换。即将单链表(a1,a2,...,am,b1,b2,...,bn) 改变成 (b1,b2,...,bn,a1,a2,…,am)。

  【函数2】

     void exchange_L( SLink &L, int m )

     {

        if((4)&& L->next)     // 链表不空且 m!=0

      {

         p = L->next; k = 1;

         while( k< m && p )        // 查找am所在结点

       {

           p =(5); ++k;

       }

           if((6)&&p->next)    //n!=0 时才需要修改指针

       {

           ha = L->next;            // 以指针ha记a1 结点的位置

           L->next = p->next;         // 将b1结点链接在头结点之后

           p->next = NULL;          // 设am的后继为空

           q:(7);      // 令q 指向b1结点

           while(q->next)q=(8);  // 查的bn结点

           q->next =(9);     // 将a1 结点链接到bn 结点之后

       }

      }

     }

     //函数2的时间复杂度是(10)。

7

【说明】

 某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。

 在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。

 新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。每个学生可以选择不超过4门课程,同时指定2门侯选课程以备主选课程未选上。每门课程最多不能超过10人,最少不能低于3人,低于3人选课的课程将被取消。一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。

 在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。

 【用例图】

【时序图】

注释1:学生打算注册新的课程。

注释2:一张这学期可选择的课程列表。

注释3:显示一张为学生选课用的空白登记表。

在UML中,用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。请简要说明用例具有哪些的特征,并指出用例图中(1)~(3)处表示的内容。

11

【说明】

 设有下列关于图书借阅系统的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 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));

 为了答题的方便,图中的实体和属性同时给出了中英文两种名字,回答问题时只需写出英文名即可。

 【系统E-R图】

填写下列SQL程序中的(1)~(6),使它们分别完成相应的功能。

 程序1:查没有借阅过编号为111111图书的所有读者名单。

 SELECT Rno,Rname,address,phone

     FROM Readers

     WHERE Rno(1)

(SELECT(2)

           FROM Borrow

           WHERE Bno='llllll');程序2:统计在2005年1月1日借书的读者人数。

     SELECT(3)

     FROM Borrow

     WHERE(4);程序3:查借书证号为123456的读者所借过的所有图书。

     SELECT Bno,Bname

     FROM Books

     WHERE(5)

(SELECT *

         FROM Borrow

          WHERE(6)AND Rno='123456';